{"library":"opentracing","title":"OpenTracing Python API","description":"OpenTracing is a vendor-neutral API for distributed tracing. This Python library (version 2.4.0) provides the OpenTracing API specification and a basic no-op implementation, requiring a concrete tracer implementation (e.g., Jaeger, Zipkin) for actual tracing data collection. The OpenTracing project has been officially archived by the CNCF, with its functionality superseded by OpenTelemetry. New projects are strongly encouraged to use OpenTelemetry, and existing users should plan for migration.","language":"python","status":"deprecated","last_verified":"Fri May 15","install":{"commands":["pip install opentracing"],"cli":null},"imports":["from opentracing import Tracer","from opentracing import Span","from opentracing import SpanContext","from opentracing import Reference","from opentracing.propagation import Format","from opentracing import global_tracer","from opentracing.mocktracer import MockTracer","from opentracing.scope_managers.thread_local import ThreadLocalScopeManager"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import opentracing\nfrom opentracing.mocktracer import MockTracer\n\n# 1. Initialize a Tracer implementation (e.g., MockTracer for testing)\n# In a real application, you would use a concrete tracer like JaegerTracer.\ntracer = MockTracer()\nopentracing.set_global_tracer(tracer)\n\n# 2. Start a root span\nwith opentracing.global_tracer().start_active_span('root_operation') as scope:\n    root_span = scope.span\n    root_span.set_tag('component', 'quickstart_example')\n    root_span.log_kv({'event': 'started root operation'})\n\n    # 3. Create a child span\n    with opentracing.global_tracer().start_active_span('child_operation') as child_scope:\n        child_span = child_scope.span\n        child_span.set_tag('type', 'internal_call')\n        child_span.log_kv({'event': 'executing child logic'})\n\n    root_span.log_kv({'event': 'finished root operation'})\n\n# For MockTracer, retrieve finished spans for assertion\nfinished_spans = tracer.finished_spans\nassert len(finished_spans) == 2\nassert finished_spans[0].operation_name == 'child_operation'\nassert finished_spans[1].operation_name == 'root_operation'\n\nprint(f\"Captured {len(finished_spans)} spans:\")\nfor span in finished_spans:\n    print(f\" - {span.operation_name}, Tags: {span.tags}, Logs: {span.logs}\")","lang":"python","description":"This quickstart demonstrates how to initialize a MockTracer (for testing), set it as the global tracer, and then create nested spans using `start_active_span` with context managers. In a production environment, `MockTracer` would be replaced by a specific tracer client (e.g., `JaegerTracer`, `ZipkinTracer`) that exports telemetry data to a tracing backend.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-15","installed_version":"2.4.0","pypi_latest":"2.4.0","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":2.5,"avg_import_s":0,"wheel_type":"sdist"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"opentracing","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"19.5M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"opentracing","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":2,"import_time_s":0,"mem_mb":0.1,"disk_size":"20M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"opentracing","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.01,"mem_mb":0.1,"disk_size":"21.9M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"opentracing","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":2.1,"import_time_s":0,"mem_mb":0.1,"disk_size":"22M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"opentracing","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.01,"mem_mb":0.1,"disk_size":"11.9M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"opentracing","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":3.1,"import_time_s":0,"mem_mb":0.1,"disk_size":"12M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"opentracing","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.01,"mem_mb":0.3,"disk_size":"11.6M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"opentracing","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":2.9,"import_time_s":0,"mem_mb":0.1,"disk_size":"12M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"opentracing","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0,"mem_mb":0.1,"disk_size":"19.1M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"opentracing","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":2.4,"import_time_s":0,"mem_mb":0.1,"disk_size":"20M"}]}}