|
14 | 14 |
|
15 | 15 | import os |
16 | 16 |
|
17 | | -from opentelemetry import _logs as logs |
18 | 17 | from opentelemetry import _events as events |
| 18 | +from opentelemetry import _logs as logs |
19 | 19 | from opentelemetry import metrics, trace |
20 | 20 | from opentelemetry.exporter.otlp.proto.http._log_exporter import OTLPLogExporter |
21 | 21 | from opentelemetry.exporter.otlp.proto.http.metric_exporter import OTLPMetricExporter |
22 | 22 | from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter |
23 | | -from opentelemetry.sdk._logs import LoggerProvider |
24 | 23 | from opentelemetry.sdk._events import EventLoggerProvider |
| 24 | +from opentelemetry.sdk._logs import LoggerProvider |
25 | 25 | from opentelemetry.sdk._logs.export import BatchLogRecordProcessor |
26 | 26 | from opentelemetry.sdk.metrics import MeterProvider |
27 | 27 | from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader |
|
31 | 31 |
|
32 | 32 |
|
33 | 33 | # [START opentelemetry_instrumentation_setup_opentelemetry] |
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 | | - } |
40 | | -) |
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) |
| 34 | +def setup_opentelemetry() -> None: |
| 35 | + resource = Resource.create( |
| 36 | + attributes={ |
| 37 | + # Use the PID as the service.instance.id to avoid duplicate timeseries |
| 38 | + # from different Gunicorn worker processes. |
| 39 | + SERVICE_INSTANCE_ID: f"worker-{os.getpid()}", |
| 40 | + } |
| 41 | + ) |
| 42 | + |
| 43 | + # Set up OpenTelemetry Python SDK |
| 44 | + tracer_provider = TracerProvider(resource=resource) |
| 45 | + tracer_provider.add_span_processor(BatchSpanProcessor(OTLPSpanExporter())) |
| 46 | + trace.set_tracer_provider(tracer_provider) |
| 47 | + |
| 48 | + logger_provider = LoggerProvider(resource=resource) |
| 49 | + logger_provider.add_log_record_processor(BatchLogRecordProcessor(OTLPLogExporter())) |
| 50 | + logs.set_logger_provider(logger_provider) |
| 51 | + |
| 52 | + event_logger_provider = EventLoggerProvider(logger_provider) |
| 53 | + events.set_event_logger_provider(event_logger_provider) |
| 54 | + |
| 55 | + reader = PeriodicExportingMetricReader(OTLPMetricExporter()) |
| 56 | + meter_provider = MeterProvider(metric_readers=[reader], resource=resource) |
| 57 | + metrics.set_meter_provider(meter_provider) |
| 58 | + |
| 59 | + |
57 | 60 | # [END opentelemetry_instrumentation_setup_opentelemetry] |
0 commit comments