Skip to content

Commit c282b98

Browse files
authored
Setup OTel logs and events in quickstart (#397)
1 parent 582b1c1 commit c282b98

File tree

1 file changed

+33
-22
lines changed

1 file changed

+33
-22
lines changed

samples/instrumentation-quickstart/setup_opentelemetry.py

Lines changed: 33 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -14,33 +14,44 @@
1414

1515
import os
1616

17-
from opentelemetry.sdk.resources import SERVICE_INSTANCE_ID, SERVICE_NAME, Resource
18-
19-
from opentelemetry import trace
17+
from opentelemetry import _logs as logs
18+
from opentelemetry import _events as events
19+
from opentelemetry import metrics, trace
20+
from opentelemetry.exporter.otlp.proto.http._log_exporter import OTLPLogExporter
21+
from opentelemetry.exporter.otlp.proto.http.metric_exporter import OTLPMetricExporter
2022
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
23+
from opentelemetry.sdk._logs import LoggerProvider
24+
from opentelemetry.sdk._events import EventLoggerProvider
25+
from opentelemetry.sdk._logs.export import BatchLogRecordProcessor
26+
from opentelemetry.sdk.metrics import MeterProvider
27+
from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader
28+
from opentelemetry.sdk.resources import SERVICE_INSTANCE_ID, Resource
2129
from opentelemetry.sdk.trace import TracerProvider
2230
from opentelemetry.sdk.trace.export import BatchSpanProcessor
2331

24-
from opentelemetry import metrics
25-
from opentelemetry.exporter.otlp.proto.http.metric_exporter import OTLPMetricExporter
26-
from opentelemetry.sdk.metrics import MeterProvider
27-
from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader
2832

2933
# [START opentelemetry_instrumentation_setup_opentelemetry]
30-
resource = Resource.create(attributes={
31-
# Use the PID as the service.instance.id to avoid duplicate timeseries
32-
# from different Gunicorn worker processes.
33-
SERVICE_INSTANCE_ID: f"worker-{os.getpid()}",
34-
})
35-
36-
traceProvider = TracerProvider(resource=resource)
37-
processor = BatchSpanProcessor(OTLPSpanExporter())
38-
traceProvider.add_span_processor(processor)
39-
trace.set_tracer_provider(traceProvider)
40-
41-
reader = PeriodicExportingMetricReader(
42-
OTLPMetricExporter()
34+
resource = Resource.create(
35+
attributes={
36+
# Use the PID as the service.instance.id to avoid duplicate timeseries
37+
# from different Gunicorn worker processes.
38+
SERVICE_INSTANCE_ID: f"worker-{os.getpid()}",
39+
}
4340
)
44-
meterProvider = MeterProvider(metric_readers=[reader], resource=resource)
45-
metrics.set_meter_provider(meterProvider)
41+
42+
# Set up OpenTelemetry Python SDK
43+
tracer_provider = TracerProvider(resource=resource)
44+
tracer_provider.add_span_processor(BatchSpanProcessor(OTLPSpanExporter()))
45+
trace.set_tracer_provider(tracer_provider)
46+
47+
logger_provider = LoggerProvider(resource=resource)
48+
logger_provider.add_log_record_processor(BatchLogRecordProcessor(OTLPLogExporter()))
49+
logs.set_logger_provider(logger_provider)
50+
51+
event_logger_provider = EventLoggerProvider(logger_provider)
52+
events.set_event_logger_provider(event_logger_provider)
53+
54+
reader = PeriodicExportingMetricReader(OTLPMetricExporter())
55+
meter_provider = MeterProvider(metric_readers=[reader], resource=resource)
56+
metrics.set_meter_provider(meter_provider)
4657
# [END opentelemetry_instrumentation_setup_opentelemetry]

0 commit comments

Comments
 (0)