|
14 | 14 |
|
15 | 15 | import os
|
16 | 16 |
|
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 |
20 | 22 | 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 |
21 | 29 | from opentelemetry.sdk.trace import TracerProvider
|
22 | 30 | from opentelemetry.sdk.trace.export import BatchSpanProcessor
|
23 | 31 |
|
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 |
28 | 32 |
|
29 | 33 | # [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 | + } |
43 | 40 | )
|
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) |
46 | 57 | # [END opentelemetry_instrumentation_setup_opentelemetry]
|
0 commit comments