|
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