{"library":"opentelemetry-propagator-ot-trace","title":"OpenTelemetry OT Trace Propagator","description":"The `opentelemetry-propagator-ot-trace` library provides a TextMapPropagator for OpenTelemetry that allows traces to be propagated using the proprietary OT Trace context format (e.g., `uber-trace-id` header), which is often associated with older Jaeger clients. It's part of the `opentelemetry-python-contrib` project, currently at version `0.62b0`, and releases frequently alongside other contrib packages.","language":"python","status":"active","last_verified":"Thu May 14","install":{"commands":["pip install opentelemetry-propagator-ot-trace"],"cli":null},"imports":["from opentelemetry.propagators.ot_trace import OTTracePropagator"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nfrom opentelemetry import trace\nfrom opentelemetry.sdk.trace import TracerProvider\nfrom opentelemetry.sdk.trace.export import ConsoleSpanExporter, SimpleSpanProcessor\nfrom opentelemetry.propagators.ot_trace import OTTracePropagator\nfrom opentelemetry.propagate import set_global_textmap\nfrom opentelemetry.context import set_current, get_current\n\n# 1. Set the OT Trace propagator globally\n# This tells OpenTelemetry to use the OT Trace format for context propagation.\nset_global_textmap(OTTracePropagator())\n\n# 2. Basic tracer setup (required for any tracing to occur)\n# For a real application, replace ConsoleSpanExporter with a production exporter (e.g., OTLPSpanExporter)\nprovider = TracerProvider()\nprocessor = SimpleSpanProcessor(ConsoleSpanExporter())\nprovider.add_span_processor(processor)\ntrace.set_tracer_provider(provider)\n\n# 3. Get a tracer\ntracer = trace.get_tracer(__name__)\n\n# 4. Example: Create a span that would use the OT Trace context if propagated\nwith tracer.start_as_current_span(\"my-ot-trace-propagated-span\"):\n    print(\"This span is created with OT Trace propagation enabled.\")\n    \n    # Manually inject current context into a carrier (e.g., HTTP headers)\n    carrier = {}\n    propagator = OTTracePropagator()\n    propagator.inject(carrier)\n    print(f\"\\nInjected context (example 'uber-trace-id'): {carrier.get('uber-trace-id', 'N/A')}\")\n    \n    # Simulate receiving context (e.g., from an incoming HTTP request)\n    received_carrier = {'uber-trace-id': '1:2:3:4'}\n    extracted_context = propagator.extract(received_carrier)\n    \n    # Activate the extracted context for subsequent operations\n    token = set_current(extracted_context)\n    try:\n        with tracer.start_as_current_span(\"child-span-from-extracted-context\"):\n            print(\"Child span created using extracted OT Trace context.\")\n    finally:\n        set_current(token) # Restore previous context\n\nprint(\"\\nQuickstart finished.\")","lang":"python","description":"This quickstart demonstrates how to register the `OTTracePropagator` globally and use it within a basic OpenTelemetry tracing setup. It includes examples of injecting context into a carrier and extracting it to demonstrate the propagator's function. Ensure you have the `opentelemetry-sdk` installed for this example to run.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-14","installed_version":"0.62b1","pypi_latest":"0.62b1","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":2.1,"avg_import_s":0.25,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"opentelemetry-propagator-ot-trace","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.17,"mem_mb":6.3,"disk_size":"22.5M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"opentelemetry-propagator-ot-trace","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.19,"mem_mb":6.3,"disk_size":"22.5M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"opentelemetry-propagator-ot-trace","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2,"import_time_s":0.12,"mem_mb":6.3,"disk_size":"23M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"opentelemetry-propagator-ot-trace","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.13,"mem_mb":6.3,"disk_size":"23M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"opentelemetry-propagator-ot-trace","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.28,"mem_mb":7.8,"disk_size":"24.8M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"opentelemetry-propagator-ot-trace","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.34,"mem_mb":7.8,"disk_size":"24.8M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"opentelemetry-propagator-ot-trace","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.1,"import_time_s":0.23,"mem_mb":7.8,"disk_size":"25M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"opentelemetry-propagator-ot-trace","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.26,"mem_mb":7.8,"disk_size":"25M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"opentelemetry-propagator-ot-trace","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.46,"mem_mb":10.5,"disk_size":"16.5M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"opentelemetry-propagator-ot-trace","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.57,"mem_mb":10.5,"disk_size":"16.5M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"opentelemetry-propagator-ot-trace","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.9,"import_time_s":0.44,"mem_mb":10.5,"disk_size":"17M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"opentelemetry-propagator-ot-trace","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.51,"mem_mb":10.5,"disk_size":"17M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"opentelemetry-propagator-ot-trace","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.15,"mem_mb":5.4,"disk_size":"16.3M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"opentelemetry-propagator-ot-trace","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.17,"mem_mb":5.4,"disk_size":"16.2M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"opentelemetry-propagator-ot-trace","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2,"import_time_s":0.16,"mem_mb":5.4,"disk_size":"17M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"opentelemetry-propagator-ot-trace","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.18,"mem_mb":5.4,"disk_size":"17M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"opentelemetry-propagator-ot-trace","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.15,"mem_mb":6.2,"disk_size":"22.0M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"opentelemetry-propagator-ot-trace","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.17,"mem_mb":6.2,"disk_size":"22.0M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"opentelemetry-propagator-ot-trace","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.4,"import_time_s":0.14,"mem_mb":6.2,"disk_size":"22M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"opentelemetry-propagator-ot-trace","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":0.18,"mem_mb":6.2,"disk_size":"22M"}]}}