Skip to content

Commit 57c015b

Browse files
authored
Merge pull request #247 from microsoft/aochengwang/log-doc
feat: add log setup code
2 parents c2d1ec9 + cf6ebf7 commit 57c015b

1 file changed

Lines changed: 75 additions & 6 deletions

File tree

doc/tracing.md

Lines changed: 75 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,15 @@ import os
4848
os.environ["AZURE_TRACING_GEN_AI_CONTENT_RECORDING_ENABLED"] = "true"
4949
os.environ["AZURE_SDK_TRACING_IMPLEMENTATION"] = "opentelemetry"
5050

51+
from opentelemetry import trace, _events
5152
from opentelemetry.sdk.resources import Resource
5253
from opentelemetry.sdk.trace import TracerProvider
5354
from opentelemetry.sdk.trace.export import BatchSpanProcessor
55+
from opentelemetry.sdk._logs import LoggerProvider
56+
from opentelemetry.sdk._logs.export import BatchLogRecordProcessor
5457
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
58+
from opentelemetry.sdk._events import EventLoggerProvider
59+
from opentelemetry.exporter.otlp.proto.http._log_exporter import OTLPLogExporter
5560

5661
resource = Resource(attributes={
5762
"service.name": "opentelemetry-instrumentation-azure-ai-agents"
@@ -64,6 +69,12 @@ processor = BatchSpanProcessor(otlp_exporter)
6469
provider.add_span_processor(processor)
6570
trace.set_tracer_provider(provider)
6671

72+
logger_provider = LoggerProvider(resource=resource)
73+
logger_provider.add_log_record_processor(
74+
BatchLogRecordProcessor(OTLPLogExporter(endpoint="http://localhost:4318/v1/logs"))
75+
)
76+
_events.set_event_logger_provider(EventLoggerProvider(logger_provider))
77+
6778
from azure.ai.inference.tracing import AIInferenceInstrumentor
6879
AIInferenceInstrumentor().instrument(True)
6980
```
@@ -124,10 +135,15 @@ import os
124135
os.environ["AZURE_TRACING_GEN_AI_CONTENT_RECORDING_ENABLED"] = "true"
125136
os.environ["AZURE_SDK_TRACING_IMPLEMENTATION"] = "opentelemetry"
126137

138+
from opentelemetry import trace, _events
127139
from opentelemetry.sdk.resources import Resource
128140
from opentelemetry.sdk.trace import TracerProvider
129141
from opentelemetry.sdk.trace.export import BatchSpanProcessor
142+
from opentelemetry.sdk._logs import LoggerProvider
143+
from opentelemetry.sdk._logs.export import BatchLogRecordProcessor
130144
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
145+
from opentelemetry.sdk._events import EventLoggerProvider
146+
from opentelemetry.exporter.otlp.proto.http._log_exporter import OTLPLogExporter
131147

132148
resource = Resource(attributes={
133149
"service.name": "opentelemetry-instrumentation-azure-ai-agents"
@@ -140,6 +156,12 @@ processor = BatchSpanProcessor(otlp_exporter)
140156
provider.add_span_processor(processor)
141157
trace.set_tracer_provider(provider)
142158

159+
logger_provider = LoggerProvider(resource=resource)
160+
logger_provider.add_log_record_processor(
161+
BatchLogRecordProcessor(OTLPLogExporter(endpoint="http://localhost:4318/v1/logs"))
162+
)
163+
_events.set_event_logger_provider(EventLoggerProvider(logger_provider))
164+
143165
from azure.ai.agents.telemetry import AIAgentsInstrumentor
144166
AIAgentsInstrumentor().instrument(True)
145167
```
@@ -195,11 +217,15 @@ pip install opentelemetry-sdk opentelemetry-exporter-otlp-proto-http opentelemet
195217

196218
**Setup:**
197219
```python
198-
from opentelemetry import trace
220+
from opentelemetry import trace, _events
199221
from opentelemetry.sdk.resources import Resource
200222
from opentelemetry.sdk.trace import TracerProvider
201223
from opentelemetry.sdk.trace.export import BatchSpanProcessor
224+
from opentelemetry.sdk._logs import LoggerProvider
225+
from opentelemetry.sdk._logs.export import BatchLogRecordProcessor
202226
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
227+
from opentelemetry.sdk._events import EventLoggerProvider
228+
from opentelemetry.exporter.otlp.proto.http._log_exporter import OTLPLogExporter
203229

204230
resource = Resource(attributes={
205231
"service.name": "opentelemetry-instrumentation-anthropic-traceloop"
@@ -212,6 +238,12 @@ processor = BatchSpanProcessor(otlp_exporter)
212238
provider.add_span_processor(processor)
213239
trace.set_tracer_provider(provider)
214240

241+
logger_provider = LoggerProvider(resource=resource)
242+
logger_provider.add_log_record_processor(
243+
BatchLogRecordProcessor(OTLPLogExporter(endpoint="http://localhost:4318/v1/logs"))
244+
)
245+
_events.set_event_logger_provider(EventLoggerProvider(logger_provider))
246+
215247
from opentelemetry.instrumentation.anthropic import AnthropicInstrumentor
216248
AnthropicInstrumentor().instrument()
217249
```
@@ -248,11 +280,15 @@ pip install opentelemetry-sdk opentelemetry-exporter-otlp-proto-http opentelemet
248280

249281
**Setup:**
250282
```python
251-
from opentelemetry import trace
283+
from opentelemetry import trace, _events
252284
from opentelemetry.sdk.resources import Resource
253285
from opentelemetry.sdk.trace import TracerProvider
254286
from opentelemetry.sdk.trace.export import BatchSpanProcessor
287+
from opentelemetry.sdk._logs import LoggerProvider
288+
from opentelemetry.sdk._logs.export import BatchLogRecordProcessor
255289
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
290+
from opentelemetry.sdk._events import EventLoggerProvider
291+
from opentelemetry.exporter.otlp.proto.http._log_exporter import OTLPLogExporter
256292

257293
resource = Resource(attributes={
258294
"service.name": "opentelemetry-instrumentation-google-genai"
@@ -265,6 +301,12 @@ processor = BatchSpanProcessor(otlp_exporter)
265301
provider.add_span_processor(processor)
266302
trace.set_tracer_provider(provider)
267303

304+
logger_provider = LoggerProvider(resource=resource)
305+
logger_provider.add_log_record_processor(
306+
BatchLogRecordProcessor(OTLPLogExporter(endpoint="http://localhost:4318/v1/logs"))
307+
)
308+
_events.set_event_logger_provider(EventLoggerProvider(logger_provider))
309+
268310
from opentelemetry.instrumentation.google_genai import GoogleGenAiSdkInstrumentor
269311
GoogleGenAiSdkInstrumentor().instrument(enable_content_recording=True)
270312
```
@@ -316,14 +358,24 @@ pip install opentelemetry-sdk opentelemetry-exporter-otlp-proto-http opentelemet
316358

317359
**Setup:**
318360
```python
319-
from opentelemetry import trace
320-
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
361+
from opentelemetry import trace, _events
362+
from opentelemetry.sdk.resources import Resource
321363
from opentelemetry.sdk.trace import TracerProvider
322364
from opentelemetry.sdk.trace.export import BatchSpanProcessor
365+
from opentelemetry.sdk._logs import LoggerProvider
366+
from opentelemetry.sdk._logs.export import BatchLogRecordProcessor
367+
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
368+
from opentelemetry.sdk._events import EventLoggerProvider
369+
from opentelemetry.exporter.otlp.proto.http._log_exporter import OTLPLogExporter
323370
from opentelemetry.instrumentation.openai_v2 import OpenAIInstrumentor
324371

372+
# Set up resource
373+
resource = Resource(attributes={
374+
"service.name": "opentelemetry-instrumentation-openai"
375+
})
376+
325377
# Set up tracer provider
326-
trace.set_tracer_provider(TracerProvider())
378+
trace.set_tracer_provider(TracerProvider(resource=resource))
327379

328380
# Configure OTLP exporter
329381
otlp_exporter = OTLPSpanExporter(
@@ -335,6 +387,13 @@ trace.get_tracer_provider().add_span_processor(
335387
BatchSpanProcessor(otlp_exporter)
336388
)
337389

390+
# Set up logger provider
391+
logger_provider = LoggerProvider(resource=resource)
392+
logger_provider.add_log_record_processor(
393+
BatchLogRecordProcessor(OTLPLogExporter(endpoint="http://localhost:4318/v1/logs"))
394+
)
395+
_events.set_event_logger_provider(EventLoggerProvider(logger_provider))
396+
338397
# Enable OpenAI instrumentation
339398
OpenAIInstrumentor().instrument()
340399
```
@@ -437,11 +496,15 @@ import os
437496
os.environ["AZURE_TRACING_GEN_AI_CONTENT_RECORDING_ENABLED"] = "true"
438497
os.environ["AZURE_SDK_TRACING_IMPLEMENTATION"] = "opentelemetry"
439498

440-
from opentelemetry import trace
499+
from opentelemetry import trace, _events
441500
from opentelemetry.sdk.resources import Resource
442501
from opentelemetry.sdk.trace import TracerProvider
443502
from opentelemetry.sdk.trace.export import BatchSpanProcessor
503+
from opentelemetry.sdk._logs import LoggerProvider
504+
from opentelemetry.sdk._logs.export import BatchLogRecordProcessor
444505
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
506+
from opentelemetry.sdk._events import EventLoggerProvider
507+
from opentelemetry.exporter.otlp.proto.http._log_exporter import OTLPLogExporter
445508

446509
github_token = os.environ["GITHUB_TOKEN"]
447510

@@ -456,6 +519,12 @@ processor = BatchSpanProcessor(otlp_exporter)
456519
provider.add_span_processor(processor)
457520
trace.set_tracer_provider(provider)
458521

522+
logger_provider = LoggerProvider(resource=resource)
523+
logger_provider.add_log_record_processor(
524+
BatchLogRecordProcessor(OTLPLogExporter(endpoint="http://localhost:4318/v1/logs"))
525+
)
526+
_events.set_event_logger_provider(EventLoggerProvider(logger_provider))
527+
459528
from azure.ai.inference.tracing import AIInferenceInstrumentor
460529
AIInferenceInstrumentor().instrument()
461530
### Set up for OpenTelemetry tracing ###

0 commit comments

Comments
 (0)