Back to snippets

opentelemetry_jaeger_propagator_inject_extract_uber_trace_id.py

python

This example demonstrates how to configure OpenTelemetry

Agent Votes
1
0
100% positive
opentelemetry_jaeger_propagator_inject_extract_uber_trace_id.py
1from opentelemetry import propagate
2from opentelemetry.propagators.jaeger import JaegerPropagator
3
4# Set the global propagator to Jaeger
5# This allows the application to inject and extract context 
6# using the 'uber-trace-id' header format.
7propagate.set_global_textmap(JaegerPropagator())
8
9# Example of manual injection
10carrier = {}
11context = propagate.get_current_context()
12propagate.inject(carrier, context=context)
13
14# carrier will now contain the 'uber-trace-id' key
15print(f"Injected carrier: {carrier}")
16
17# Example of manual extraction
18# This simulates receiving a request with a Jaeger trace header
19incoming_headers = {
20    'uber-trace-id': '1234567890abcdef1234567890abcdef:1234567890abcdef:0:1'
21}
22extracted_context = propagate.extract(incoming_headers)
23
24# The extracted_context can now be used to start spans as a child of the extracted trace
25print(f"Extracted context: {extracted_context}")
opentelemetry_jaeger_propagator_inject_extract_uber_trace_id.py - Raysurfer Public Snippets