Skip to content

Commit 86a1728

Browse files
committed
Correctly sets OTel trace provider.
1 parent 5f8e109 commit 86a1728

3 files changed

Lines changed: 44 additions & 28 deletions

File tree

tests/observability/core/test_execute_tool_scope.py

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,17 @@
1111
AgentDetails,
1212
ExecutionType,
1313
ExecuteToolScope,
14-
OpenTelemetryScope,
1514
Request,
1615
SourceMetadata,
1716
TenantDetails,
1817
ToolCallDetails,
1918
configure,
19+
get_tracer_provider,
2020
)
2121
from microsoft_agents_a365.observability.core.constants import (
2222
GEN_AI_EXECUTION_SOURCE_DESCRIPTION_KEY,
2323
GEN_AI_EXECUTION_SOURCE_NAME_KEY,
2424
)
25-
from opentelemetry import trace
26-
from opentelemetry.sdk.trace import TracerProvider
2725
from opentelemetry.sdk.trace.export import SimpleSpanProcessor
2826
from opentelemetry.sdk.trace.export.in_memory_span_exporter import InMemorySpanExporter
2927

@@ -37,12 +35,6 @@ def setUpClass(cls):
3735
# Configure Microsoft Agent 365 for testing
3836
os.environ["ENABLE_A365_OBSERVABILITY"] = "true"
3937

40-
# Set up tracer to capture spans
41-
cls.span_exporter = InMemorySpanExporter()
42-
tracer_provider = TracerProvider()
43-
tracer_provider.add_span_processor(SimpleSpanProcessor(cls.span_exporter))
44-
trace.set_tracer_provider(tracer_provider)
45-
4638
configure(
4739
service_name="test-execute-tool-service",
4840
service_namespace="test-namespace",
@@ -61,6 +53,19 @@ def setUpClass(cls):
6153
description="Get current weather information for a location",
6254
)
6355

56+
def setUp(self):
57+
super().setUp()
58+
59+
# Set up tracer to capture spans
60+
self.span_exporter = InMemorySpanExporter()
61+
tracer_provider = get_tracer_provider()
62+
tracer_provider.add_span_processor(SimpleSpanProcessor(self.span_exporter))
63+
64+
def tearDown(self):
65+
super().tearDown()
66+
67+
self.span_exporter.clear()
68+
6469
def test_record_response_method_exists(self):
6570
"""Test that record_response method exists on ExecuteToolScope."""
6671
scope = ExecuteToolScope.start(self.tool_details, self.agent_details, self.tenant_details)

tests/observability/core/test_inference_scope.py

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,17 @@
1212
InferenceCallDetails,
1313
InferenceOperationType,
1414
InferenceScope,
15-
OpenTelemetryScope,
1615
Request,
1716
SourceMetadata,
1817
TenantDetails,
1918
configure,
19+
get_tracer_provider,
2020
)
2121
from microsoft_agents_a365.observability.core.agent_details import AgentDetails
2222
from microsoft_agents_a365.observability.core.constants import (
2323
GEN_AI_EXECUTION_SOURCE_DESCRIPTION_KEY,
2424
GEN_AI_EXECUTION_SOURCE_NAME_KEY,
2525
)
26-
from opentelemetry import trace
27-
from opentelemetry.sdk.trace import TracerProvider
2826
from opentelemetry.sdk.trace.export import SimpleSpanProcessor
2927
from opentelemetry.sdk.trace.export.in_memory_span_exporter import InMemorySpanExporter
3028

@@ -38,12 +36,6 @@ def setUpClass(cls):
3836
# Configure Microsoft Agent 365 for testing
3937
os.environ["ENABLE_A365_OBSERVABILITY"] = "true"
4038

41-
# Set up tracer to capture spans
42-
cls.span_exporter = InMemorySpanExporter()
43-
tracer_provider = TracerProvider()
44-
tracer_provider.add_span_processor(SimpleSpanProcessor(cls.span_exporter))
45-
trace.set_tracer_provider(tracer_provider)
46-
4739
configure(
4840
service_name="test-inference-service",
4941
service_namespace="test-namespace",
@@ -52,6 +44,20 @@ def setUpClass(cls):
5244
cls.agent_details = AgentDetails(agent_id="test-inference-agent")
5345
cls.tenant_details = TenantDetails(tenant_id="12345678-1234-5678-1234-567812345678")
5446

47+
def setUp(self):
48+
super().setUp()
49+
50+
# Set up tracer to capture spans
51+
self.span_exporter = InMemorySpanExporter()
52+
tracer_provider = get_tracer_provider()
53+
tracer_provider.add_span_processor(SimpleSpanProcessor(self.span_exporter))
54+
# trace.set_tracer_provider(tracer_provider)
55+
56+
def tearDown(self):
57+
super().tearDown()
58+
59+
self.span_exporter.clear()
60+
5561
def test_inference_operation_type_enum(self):
5662
"""Test InferenceOperationType enum values."""
5763
# Test enum values exist

tests/observability/core/test_invoke_agent_scope.py

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
SourceMetadata,
1818
TenantDetails,
1919
configure,
20+
get_tracer_provider,
2021
)
2122
from microsoft_agents_a365.observability.core.constants import (
2223
GEN_AI_CALLER_AGENT_USER_CLIENT_IP,
@@ -26,8 +27,6 @@
2627
GEN_AI_INPUT_MESSAGES_KEY,
2728
)
2829
from microsoft_agents_a365.observability.core.models.caller_details import CallerDetails
29-
from opentelemetry import trace
30-
from opentelemetry.sdk.trace import TracerProvider
3130
from opentelemetry.sdk.trace.export import SimpleSpanProcessor
3231
from opentelemetry.sdk.trace.export.in_memory_span_exporter import InMemorySpanExporter
3332

@@ -41,12 +40,6 @@ def setUpClass(cls):
4140
# Configure Microsoft Agent 365 for testing
4241
os.environ["ENABLE_A365_OBSERVABILITY"] = "true"
4342

44-
# Set up tracer to capture spans
45-
cls.span_exporter = InMemorySpanExporter()
46-
tracer_provider = TracerProvider()
47-
tracer_provider.add_span_processor(SimpleSpanProcessor(cls.span_exporter))
48-
trace.set_tracer_provider(tracer_provider)
49-
5043
configure(
5144
service_name="test-invoke-agent-service",
5245
service_namespace="test-namespace",
@@ -101,6 +94,19 @@ def setUpClass(cls):
10194
agent_client_ip="192.168.1.100",
10295
)
10396

97+
def setUp(self):
98+
super().setUp()
99+
100+
# Set up tracer to capture spans
101+
self.span_exporter = InMemorySpanExporter()
102+
tracer_provider = get_tracer_provider()
103+
tracer_provider.add_span_processor(SimpleSpanProcessor(self.span_exporter))
104+
105+
def tearDown(self):
106+
super().tearDown()
107+
108+
self.span_exporter.clear()
109+
104110
def test_record_response_method_exists(self):
105111
"""Test that record_response method exists on InvokeAgentScope."""
106112
scope = InvokeAgentScope.start(self.invoke_details, self.tenant_details)
@@ -185,9 +191,8 @@ def test_caller_agent_client_ip_in_scope(self):
185191
"""Test that caller agent client IP is properly handled when creating InvokeAgentScope."""
186192
# Set up tracer to capture spans
187193
span_exporter = InMemorySpanExporter()
188-
tracer_provider = TracerProvider()
194+
tracer_provider = get_tracer_provider()
189195
tracer_provider.add_span_processor(SimpleSpanProcessor(span_exporter))
190-
trace.set_tracer_provider(tracer_provider)
191196

192197
# Create scope with caller agent details that include client IP
193198
scope = InvokeAgentScope.start(

0 commit comments

Comments
 (0)