From cf6ebf700fa12c058dc4de205ecc1e5103d1c3df Mon Sep 17 00:00:00 2001 From: Aocheng Wang Date: Thu, 24 Jul 2025 13:53:08 +0800 Subject: [PATCH] feat: add log setup code --- doc/tracing.md | 81 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 75 insertions(+), 6 deletions(-) diff --git a/doc/tracing.md b/doc/tracing.md index 1f6bc12..869d9b4 100644 --- a/doc/tracing.md +++ b/doc/tracing.md @@ -48,10 +48,15 @@ import os os.environ["AZURE_TRACING_GEN_AI_CONTENT_RECORDING_ENABLED"] = "true" os.environ["AZURE_SDK_TRACING_IMPLEMENTATION"] = "opentelemetry" +from opentelemetry import trace, _events from opentelemetry.sdk.resources import Resource from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import BatchSpanProcessor +from opentelemetry.sdk._logs import LoggerProvider +from opentelemetry.sdk._logs.export import BatchLogRecordProcessor from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter +from opentelemetry.sdk._events import EventLoggerProvider +from opentelemetry.exporter.otlp.proto.http._log_exporter import OTLPLogExporter resource = Resource(attributes={ "service.name": "opentelemetry-instrumentation-azure-ai-agents" @@ -64,6 +69,12 @@ processor = BatchSpanProcessor(otlp_exporter) provider.add_span_processor(processor) trace.set_tracer_provider(provider) +logger_provider = LoggerProvider(resource=resource) +logger_provider.add_log_record_processor( + BatchLogRecordProcessor(OTLPLogExporter(endpoint="http://localhost:4318/v1/logs")) +) +_events.set_event_logger_provider(EventLoggerProvider(logger_provider)) + from azure.ai.inference.tracing import AIInferenceInstrumentor AIInferenceInstrumentor().instrument(True) ``` @@ -124,10 +135,15 @@ import os os.environ["AZURE_TRACING_GEN_AI_CONTENT_RECORDING_ENABLED"] = "true" os.environ["AZURE_SDK_TRACING_IMPLEMENTATION"] = "opentelemetry" +from opentelemetry import trace, _events from opentelemetry.sdk.resources import Resource from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import BatchSpanProcessor +from opentelemetry.sdk._logs import LoggerProvider +from opentelemetry.sdk._logs.export import BatchLogRecordProcessor from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter +from opentelemetry.sdk._events import EventLoggerProvider +from opentelemetry.exporter.otlp.proto.http._log_exporter import OTLPLogExporter resource = Resource(attributes={ "service.name": "opentelemetry-instrumentation-azure-ai-agents" @@ -140,6 +156,12 @@ processor = BatchSpanProcessor(otlp_exporter) provider.add_span_processor(processor) trace.set_tracer_provider(provider) +logger_provider = LoggerProvider(resource=resource) +logger_provider.add_log_record_processor( + BatchLogRecordProcessor(OTLPLogExporter(endpoint="http://localhost:4318/v1/logs")) +) +_events.set_event_logger_provider(EventLoggerProvider(logger_provider)) + from azure.ai.agents.telemetry import AIAgentsInstrumentor AIAgentsInstrumentor().instrument(True) ``` @@ -195,11 +217,15 @@ pip install opentelemetry-sdk opentelemetry-exporter-otlp-proto-http opentelemet **Setup:** ```python -from opentelemetry import trace +from opentelemetry import trace, _events from opentelemetry.sdk.resources import Resource from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import BatchSpanProcessor +from opentelemetry.sdk._logs import LoggerProvider +from opentelemetry.sdk._logs.export import BatchLogRecordProcessor from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter +from opentelemetry.sdk._events import EventLoggerProvider +from opentelemetry.exporter.otlp.proto.http._log_exporter import OTLPLogExporter resource = Resource(attributes={ "service.name": "opentelemetry-instrumentation-anthropic-traceloop" @@ -212,6 +238,12 @@ processor = BatchSpanProcessor(otlp_exporter) provider.add_span_processor(processor) trace.set_tracer_provider(provider) +logger_provider = LoggerProvider(resource=resource) +logger_provider.add_log_record_processor( + BatchLogRecordProcessor(OTLPLogExporter(endpoint="http://localhost:4318/v1/logs")) +) +_events.set_event_logger_provider(EventLoggerProvider(logger_provider)) + from opentelemetry.instrumentation.anthropic import AnthropicInstrumentor AnthropicInstrumentor().instrument() ``` @@ -248,11 +280,15 @@ pip install opentelemetry-sdk opentelemetry-exporter-otlp-proto-http opentelemet **Setup:** ```python -from opentelemetry import trace +from opentelemetry import trace, _events from opentelemetry.sdk.resources import Resource from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import BatchSpanProcessor +from opentelemetry.sdk._logs import LoggerProvider +from opentelemetry.sdk._logs.export import BatchLogRecordProcessor from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter +from opentelemetry.sdk._events import EventLoggerProvider +from opentelemetry.exporter.otlp.proto.http._log_exporter import OTLPLogExporter resource = Resource(attributes={ "service.name": "opentelemetry-instrumentation-google-genai" @@ -265,6 +301,12 @@ processor = BatchSpanProcessor(otlp_exporter) provider.add_span_processor(processor) trace.set_tracer_provider(provider) +logger_provider = LoggerProvider(resource=resource) +logger_provider.add_log_record_processor( + BatchLogRecordProcessor(OTLPLogExporter(endpoint="http://localhost:4318/v1/logs")) +) +_events.set_event_logger_provider(EventLoggerProvider(logger_provider)) + from opentelemetry.instrumentation.google_genai import GoogleGenAiSdkInstrumentor GoogleGenAiSdkInstrumentor().instrument(enable_content_recording=True) ``` @@ -316,14 +358,24 @@ pip install opentelemetry-sdk opentelemetry-exporter-otlp-proto-http opentelemet **Setup:** ```python -from opentelemetry import trace -from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter +from opentelemetry import trace, _events +from opentelemetry.sdk.resources import Resource from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import BatchSpanProcessor +from opentelemetry.sdk._logs import LoggerProvider +from opentelemetry.sdk._logs.export import BatchLogRecordProcessor +from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter +from opentelemetry.sdk._events import EventLoggerProvider +from opentelemetry.exporter.otlp.proto.http._log_exporter import OTLPLogExporter from opentelemetry.instrumentation.openai_v2 import OpenAIInstrumentor +# Set up resource +resource = Resource(attributes={ + "service.name": "opentelemetry-instrumentation-openai" +}) + # Set up tracer provider -trace.set_tracer_provider(TracerProvider()) +trace.set_tracer_provider(TracerProvider(resource=resource)) # Configure OTLP exporter otlp_exporter = OTLPSpanExporter( @@ -335,6 +387,13 @@ trace.get_tracer_provider().add_span_processor( BatchSpanProcessor(otlp_exporter) ) +# Set up logger provider +logger_provider = LoggerProvider(resource=resource) +logger_provider.add_log_record_processor( + BatchLogRecordProcessor(OTLPLogExporter(endpoint="http://localhost:4318/v1/logs")) +) +_events.set_event_logger_provider(EventLoggerProvider(logger_provider)) + # Enable OpenAI instrumentation OpenAIInstrumentor().instrument() ``` @@ -437,11 +496,15 @@ import os os.environ["AZURE_TRACING_GEN_AI_CONTENT_RECORDING_ENABLED"] = "true" os.environ["AZURE_SDK_TRACING_IMPLEMENTATION"] = "opentelemetry" -from opentelemetry import trace +from opentelemetry import trace, _events from opentelemetry.sdk.resources import Resource from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import BatchSpanProcessor +from opentelemetry.sdk._logs import LoggerProvider +from opentelemetry.sdk._logs.export import BatchLogRecordProcessor from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter +from opentelemetry.sdk._events import EventLoggerProvider +from opentelemetry.exporter.otlp.proto.http._log_exporter import OTLPLogExporter github_token = os.environ["GITHUB_TOKEN"] @@ -456,6 +519,12 @@ processor = BatchSpanProcessor(otlp_exporter) provider.add_span_processor(processor) trace.set_tracer_provider(provider) +logger_provider = LoggerProvider(resource=resource) +logger_provider.add_log_record_processor( + BatchLogRecordProcessor(OTLPLogExporter(endpoint="http://localhost:4318/v1/logs")) +) +_events.set_event_logger_provider(EventLoggerProvider(logger_provider)) + from azure.ai.inference.tracing import AIInferenceInstrumentor AIInferenceInstrumentor().instrument() ### Set up for OpenTelemetry tracing ###