{"library":"opentelemetry-propagator-gcp","title":"Google Cloud Propagator for OpenTelemetry","description":"The `opentelemetry-propagator-gcp` library provides a TextMapPropagator for OpenTelemetry that handles the Google Cloud Trace context header (`x-cloud-trace-context`). It allows OpenTelemetry traces to be linked with existing traces in Google Cloud, facilitating interoperability. This library is part of the `opentelemetry-operations-python` project, is actively maintained, and follows a regular release cadence, typically monthly or bi-monthly, aligned with other OpenTelemetry SDK updates.","language":"python","status":"active","last_verified":"Fri May 15","install":{"commands":["pip install opentelemetry-propagator-gcp"],"cli":null},"imports":["from opentelemetry.propagators.gcp import CloudTracePropagator","from opentelemetry import propagators"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from opentelemetry import propagators\nfrom opentelemetry.propagators.gcp import CloudTracePropagator\nfrom opentelemetry.propagators.composite import CompositePropagator\nfrom opentelemetry.trace import set_tracer_provider, get_tracer_provider\nfrom opentelemetry.sdk.trace import TracerProvider\n\n# 1. Set a TracerProvider (required for context to be active for injection)\nset_tracer_provider(TracerProvider())\n\n# 2. Register the CloudTracePropagator globally\n#    Often combined with W3CTraceContextPropagator for broader compatibility.\npropagators.set_global_textmap_propagator(\n    CompositePropagator([\n        CloudTracePropagator(),\n        # Add W3CTraceContextPropagator() here if you also need W3C Trace Context\n    ])\n)\n\n# --- Example: Extracting context from an incoming request ---\n# Simulate an incoming request with 'x-cloud-trace-context' header\nincoming_headers = {\n    \"x-cloud-trace-context\": \"105445aa78532f73a8123c72b2600000/0000000000000001;o=1\"\n}\n\n# Extract the context using the globally registered propagator\ncontext = propagators.get_global_textmap_propagator().extract(incoming_headers)\n\nprint(f\"Extracted context from incoming headers: {context}\")\n\n# --- Example: Injecting context for an outgoing request ---\noutgoing_headers = {}\n\n# Create an active span to ensure there's a trace context to inject\ntracer = get_tracer_provider().get_tracer(__name__)\nwith tracer.start_as_current_span(\"my-root-span\"):\n    # Inject the current trace context into outgoing headers\n    propagators.get_global_textmap_propagator().inject(outgoing_headers)\n\nprint(f\"Injected headers for outgoing request: {outgoing_headers}\")\n\n# Expected output for outgoing_headers will contain 'x-cloud-trace-context'","lang":"python","description":"This quickstart demonstrates how to register the `CloudTracePropagator` and then use the global `TextMapPropagator` to extract trace context from incoming headers and inject it into outgoing headers. This is crucial for maintaining trace continuity across services within and outside Google Cloud.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-15","installed_version":"1.12.0","pypi_latest":"1.12.0","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":1.8,"avg_import_s":null,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"opentelemetry-propagator-gcp","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"19.2M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"opentelemetry-propagator-gcp","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":1.8,"import_time_s":null,"mem_mb":null,"disk_size":"20M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"opentelemetry-propagator-gcp","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"21.1M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"opentelemetry-propagator-gcp","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":1.9,"import_time_s":null,"mem_mb":null,"disk_size":"22M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"opentelemetry-propagator-gcp","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"13.0M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"opentelemetry-propagator-gcp","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":1.7,"import_time_s":null,"mem_mb":null,"disk_size":"13M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"opentelemetry-propagator-gcp","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"12.7M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"opentelemetry-propagator-gcp","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":1.7,"import_time_s":null,"mem_mb":null,"disk_size":"13M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"opentelemetry-propagator-gcp","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"18.6M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"opentelemetry-propagator-gcp","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":2.1,"import_time_s":null,"mem_mb":null,"disk_size":"19M"}]}}