The `opentelemetry-propagator-jaeger` library provides a `TextMapPropagator` implementation for context propagation using the Jaeger trace context format. It enables OpenTelemetry applications to send and receive trace context information to/from services that use Jaeger's native propagation format. It is part of the broader OpenTelemetry Python project, which releases frequently, typically every few weeks, bringing updates to API, SDK, and contrib packages.
pip install opentelemetry-propagator-jaegerVerified import paths — ran on the pinned version, not inferred.
This quickstart demonstrates how to initialize the `JaegerPropagator` and register it as the global text map propagator. This tells OpenTelemetry to use Jaeger's specific header format (e.g., `uber-trace-id` or `jaeger-trace-id`) when injecting and extracting trace context from HTTP headers or other text-based carriers. It includes a basic setup for a `TracerProvider` to make the example runnable and illustrate how context would be injected.
Ensure `from opentelemetry.propagate import set_global_textmap; set_global_textmap(JaegerPropagator())` is called early in your application's startup process.
Use `from opentelemetry.propagate import CompositePropagator, set_global_textmap; set_global_textmap(CompositePropagator([JaegerPropagator(), W3CTraceContextPropagator(), W3CBaggagePropagator()]))` to support multiple propagation formats.
Review any code that explicitly checks for `INVALID_SPAN` when no SDK is installed or that relies on `NoOpTracer` not propagating context. Adjust logic to account for context propagation even without an SDK if a valid context is present.
Install the package using `pip install opentelemetry-propagator-jaeger`. Ensure the import statement is `from opentelemetry.propagators.jaeger import JaegerPropagator`.
Ensure `JaegerPropagator` is set as the global text map propagator (e.g., `set_global_textmap(CompositePropagator([JaegerPropagator(), W3CTraceContextPropagator()]))`). Verify that the OpenTelemetry exporter (preferably `OtlpSpanExporter` as Jaeger natively supports OTLP) is correctly configured and pointing to the Jaeger agent/collector. Check Jaeger's sampling settings or configure OpenTelemetry's sampler to `AlwaysOn` for testing to ensure all spans are recorded.
Upgrade the `opentelemetry-propagator-jaeger` package to its latest version to benefit from bug fixes and improved error handling. Consider using a `CompositePropagator` that includes `W3CTraceContextPropagator` as a primary and `JaegerPropagator` as a fallback for better robustness in mixed environments or when headers might be inconsistent.
For new applications or services that do not need to interoperate with existing legacy Jaeger-instrumented services, it is recommended to use the `W3CTraceContextPropagator`. If interoperability with existing Jaeger services is necessary, `JaegerPropagator` can still be used, but note that the long-term recommendation is to migrate to W3C Trace Context. When exporting traces, use the OpenTelemetry Protocol (OTLP) exporter as Jaeger backends natively support OTLP since version 1.35.