Skip to content

Commit cb7f9c9

Browse files
committed
Refactored tracer initialization into its own function
1 parent 7cee3b5 commit cb7f9c9

File tree

1 file changed

+18
-15
lines changed

1 file changed

+18
-15
lines changed

src/workflows/transport/middleware/tracer.py

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,26 @@
1818
from opentelemetry.exporter.otlp.proto.http.trace_exporter \
1919
import OTLPSpanExporter
2020

21-
resource = Resource(attributes={
22-
SERVICE_NAME: "Common Service"
23-
})
24-
25-
processor = BatchSpanProcessor(OTLPSpanExporter( \
26-
endpoint="http://localhost:4318/v1/traces"))
27-
provider = TracerProvider(resource = resource)
28-
# A provider provides tracers:
29-
provider = TracerProvider(resource=resource)
30-
provider.add_span_processor(processor)
31-
# In python trace is global:
32-
trace.set_tracer_provider(provider)
33-
tracer = trace.get_tracer(__name__)
34-
3521
class TracerMiddleware(BaseTransportMiddleware):
3622
def __init__(self, service_name: str):
3723
self.service_name = service_name
24+
self._initiate_tracers(service_name)
25+
26+
def _initiate_tracers(self, service_name):
27+
resource = Resource(attributes={
28+
SERVICE_NAME: service_name
29+
})
30+
31+
processor = BatchSpanProcessor(OTLPSpanExporter( \
32+
endpoint="http://localhost:4318/v1/traces"))
33+
# A provider provides tracers:
34+
provider = TracerProvider(resource=resource)
35+
provider.add_span_processor(processor)
36+
# In python trace is global:
37+
trace.set_tracer_provider(provider)
38+
self.tracer = trace.get_tracer(__name__)
39+
40+
3841

3942
def _extract_trace_context(self, message):
4043
"""Retrieves span context from message"""
@@ -59,7 +62,7 @@ def subscribe(self, call_next: Callable, channel, callback, **kwargs) -> int:
5962
@functools.wraps(callback)
6063
def wrapped_callback(header, message):
6164
ctx = self._extract_trace_context(message)
62-
with tracer.start_as_current_span(self.service_name, context=ctx) as span:
65+
with self.tracer.start_as_current_span(self.service_name, context=ctx) as span:
6366
if ctx == {}:
6467
self._inject_trace_context(message)
6568
return callback(header, message)

0 commit comments

Comments
 (0)