{"library":"opentelemetry-instrumentation-openai-v2","title":"OpenTelemetry OpenAI Instrumentation (v2)","description":"This library provides official OpenTelemetry instrumentation for the OpenAI Python API library (version 1.0.0 and above). It enables automatic tracing of LLM requests, capturing model name, token usage, finish reason, duration, and errors without modifying existing OpenAI client code. It also supports logging of messages and metrics, and is maintained as part of the OpenTelemetry Python Contrib project.","language":"python","status":"active","last_verified":"Fri May 15","install":{"commands":["pip install opentelemetry-instrumentation-openai-v2 opentelemetry-sdk openai"],"cli":{"name":"opentelemetry-instrument","version":"opentelemetry-instrument 0.62b1"}},"imports":["from opentelemetry.instrumentation.openai_v2 import OpenAIInstrumentor"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nfrom opentelemetry import trace\nfrom opentelemetry.sdk.resources import Resource\nfrom opentelemetry.sdk.trace import TracerProvider\nfrom opentelemetry.sdk.trace.export import ConsoleSpanExporter, SimpleSpanProcessor\nfrom opentelemetry.instrumentation.openai_v2 import OpenAIInstrumentor\nfrom openai import OpenAI\n\n# Configure OpenTelemetry Tracer Provider\ndef setup_and_instrument_otel():\n    resource = Resource.create({\"service.name\": \"my-openai-app\"})\n    provider = TracerProvider(resource=resource)\n    processor = SimpleSpanProcessor(ConsoleSpanExporter())\n    provider.add_span_processor(processor)\n    trace.set_tracer_provider(provider)\n\n    # Instrument OpenAI\n    OpenAIInstrumentor().instrument()\n    print(\"OpenTelemetry and OpenAI instrumentation initialized.\")\n\n\nif __name__ == \"__main__\":\n    # Set OpenAI API key from environment variable\n    os.environ['OPENAI_API_KEY'] = os.environ.get('OPENAI_API_KEY', 'sk-YOUR_OPENAI_API_KEY')\n    if not os.environ['OPENAI_API_KEY'] or os.environ['OPENAI_API_KEY'] == 'sk-YOUR_OPENAI_API_KEY':\n        print(\"Please set the OPENAI_API_KEY environment variable.\")\n        exit(1)\n\n    setup_and_instrument_otel()\n\n    client = OpenAI()\n\n    try:\n        print(\"\\nMaking an OpenAI chat completion call...\")\n        chat_completion = client.chat.completions.create(\n            model=\"gpt-3.5-turbo\",\n            messages=[\n                {\"role\": \"user\", \"content\": \"Tell me a short story about OpenTelemetry.\"}\n            ]\n        )\n        print(\"OpenAI call successful. Check console for traces.\")\n        # print(chat_completion.choices[0].message.content)\n    except Exception as e:\n        print(f\"An error occurred during OpenAI call: {e}\")\n\n    # To see traces, you'd typically export to a collector, e.g., Jaeger, instead of ConsoleSpanExporter.\n    # This example prints to console to show basic functionality.\n","lang":"python","description":"This quickstart demonstrates how to set up OpenTelemetry with the OpenAI instrumentation. It initializes a `TracerProvider` with a `ConsoleSpanExporter` to print traces to the console, then calls `OpenAIInstrumentor().instrument()` to automatically trace interactions with the OpenAI Python client (v1.0.0+). An example OpenAI chat completion call is included.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-15","installed_version":"2.3b0","pypi_latest":"2.4b0","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":6.2,"avg_import_s":2.11,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"opentelemetry-instrumentation-openai-v2","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.97,"mem_mb":27.5,"disk_size":"55.6M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"opentelemetry-instrumentation-openai-v2","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":6.9,"import_time_s":1.44,"mem_mb":27.5,"disk_size":"55M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"opentelemetry-instrumentation-openai-v2","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":2.61,"mem_mb":29.2,"disk_size":"60.3M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"opentelemetry-instrumentation-openai-v2","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":6.1,"import_time_s":2.3,"mem_mb":29.2,"disk_size":"59M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"opentelemetry-instrumentation-openai-v2","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":2.38,"mem_mb":28.9,"disk_size":"51.4M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"opentelemetry-instrumentation-openai-v2","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":5.1,"import_time_s":2.35,"mem_mb":28.9,"disk_size":"51M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"opentelemetry-instrumentation-openai-v2","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":2.28,"mem_mb":29.4,"disk_size":"51.1M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"opentelemetry-instrumentation-openai-v2","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":5.1,"import_time_s":2.25,"mem_mb":29.4,"disk_size":"50M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"opentelemetry-instrumentation-openai-v2","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":1.89,"mem_mb":28.2,"disk_size":"54.5M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"opentelemetry-instrumentation-openai-v2","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":7.6,"import_time_s":1.64,"mem_mb":28.2,"disk_size":"54M"}]}}