@@ -102,35 +102,34 @@ def setup_opentelemetry(app):
102102 # https://cloud.google.com/stackdriver/docs/instrumentation/choose-approach#app_engine
103103 # https://cloud.google.com/trace/docs/setup/python-ot
104104 # https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/blob/1f1775886d7314b113acd322633afb278f875687/samples/instrumentation-quickstart/setup_opentelemetry.py
105- from opentelemetry .sdk .resources import SERVICE_INSTANCE_ID , SERVICE_NAME , Resource
106-
107105 # No permission for trace.googleapis.com
108- # from opentelemetry import trace
106+ from opentelemetry import trace
107+ from opentelemetry .exporter .cloud_trace import CloudTraceSpanExporter
108+ from opentelemetry .propagate import set_global_textmap
109+ from opentelemetry .propagators .cloud_trace_propagator import (
110+ CloudTraceFormatPropagator ,
111+ )
112+ from opentelemetry .sdk .resources import SERVICE_INSTANCE_ID , Resource
113+
109114 # from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
110- # from opentelemetry.sdk.trace import TracerProvider
111- # from opentelemetry.sdk.trace.export import BatchSpanProcessor
112-
113- from opentelemetry import metrics
114- from opentelemetry .exporter .otlp .proto .http .metric_exporter import OTLPMetricExporter
115- from opentelemetry .sdk .metrics import MeterProvider
116- from opentelemetry .sdk .metrics .export import PeriodicExportingMetricReader
117-
118- resource = Resource .create (attributes = {
119- # Use the PID as the service.instance.id to avoid duplicate timeseries
120- # from different Gunicorn worker processes.
121- SERVICE_INSTANCE_ID : f"worker-{ os .getpid ()} " ,
122- })
123-
124- # tracer_provider = TracerProvider(resource=resource)
125- # processor = BatchSpanProcessor(OTLPSpanExporter())
126- # tracer_provider.add_span_processor(processor)
127- # trace.set_tracer_provider(tracer_provider)
128-
129- reader = PeriodicExportingMetricReader (
130- OTLPMetricExporter ()
115+ from opentelemetry .sdk .trace import TracerProvider
116+ from opentelemetry .sdk .trace .export import BatchSpanProcessor
117+
118+ resource = Resource .create (
119+ attributes = {
120+ # Use the PID as the service.instance.id to avoid duplicate timeseries
121+ # from different Gunicorn worker processes.
122+ SERVICE_INSTANCE_ID : f"worker-{ os .getpid ()} " ,
123+ }
131124 )
132- meter_provider = MeterProvider (metric_readers = [reader ], resource = resource )
133- metrics .set_meter_provider (meter_provider )
125+
126+ provider = TracerProvider (resource = resource )
127+ processor = BatchSpanProcessor (CloudTraceSpanExporter ())
128+ provider .add_span_processor (processor )
129+
130+ trace .set_tracer_provider (provider )
131+ set_global_textmap (CloudTraceFormatPropagator ())
134132
135133 from opentelemetry .instrumentation .flask import FlaskInstrumentor
134+
136135 FlaskInstrumentor ().instrument_app (app )
0 commit comments