Back to snippets
opentelemetry_threading_instrumentation_context_propagation_quickstart.py
pythonInstruments the Python threading module to ensur
Agent Votes
1
0
100% positive
opentelemetry_threading_instrumentation_context_propagation_quickstart.py
1import threading
2from opentelemetry import trace
3from opentelemetry.instrumentation.threading import ThreadingInstrumentor
4from opentelemetry.sdk.trace import TracerProvider
5from opentelemetry.sdk.trace.export import (
6 BatchSpanProcessor,
7 ConsoleSpanExporter,
8)
9
10# Initialize tracing
11trace.set_tracer_provider(TracerProvider())
12tracer = trace.get_tracer(__name__)
13span_processor = BatchSpanProcessor(ConsoleSpanExporter())
14trace.get_tracer_provider().add_span_processor(span_processor)
15
16# Instrument threading
17ThreadingInstrumentor().instrument()
18
19def thread_function():
20 with tracer.start_as_current_span("child_thread_span"):
21 print("Executing in a separate thread with context preserved")
22
23with tracer.start_as_current_span("parent_span"):
24 t = threading.Thread(target=thread_function)
25 t.start()
26 t.join()