-
Notifications
You must be signed in to change notification settings - Fork 808
Open
Description
Which component is this bug for?
OpenAI Instrumentation
📜 Description
Using the responses api, we do not see spans emitted if stream=True on the respones.create command for openapi.
it looks like, potentially, if streaming is being used it returns prior to starting the span.
https://github.com/traceloop/openllmetry/blob/main/packages/opentelemetry-instrumentation-openai/opentelemetry/instrumentation/openai/v1/responses_wrappers.py#L442
👟 Reproduction steps
script to reproduce:
# /// script
# dependencies = [
# "opentelemetry-instrumentation-openai>=0.46.2",
# "opentelemetry-api>=1.31.1",
# "opentelemetry-sdk>=1.31.1",
# "opentelemetry-exporter-otlp>=1.32.1",
# "openai>=1.69.0",
# ]
# ///
import os
from urllib import response
from openai import OpenAI
from opentelemetry import trace
from opentelemetry.instrumentation.openai import OpenAIInstrumentor # Traceloop's
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import ConsoleSpanExporter, SimpleSpanProcessor
api_key = os.getenv("OPENAI_API_KEY")
tracer_provider = TracerProvider()
tracer_provider.add_span_processor(SimpleSpanProcessor(ConsoleSpanExporter()))
trace.set_tracer_provider(tracer_provider)
OpenAIInstrumentor().instrument()
tracer = trace.get_tracer(__name__)
with tracer.start_as_current_span("example-span"):
client = OpenAI(api_key=api_key)
response = client.responses.create(model="gpt-4o-mini", input=[{"role": "user", "content": "ping"}], stream=True)
for chunk in response:
print(chunk)
# example: OPENAI_API_KEY=... uv run scripts/missing-spans-when-streaming.py
👍 Expected behavior
It should show spans printed the console for the openapi responses api request
👎 Actual Behavior with Screenshots
It only shows ChatCompletionEvents, no spans.
🤖 Python Version
No response
📃 Provide any additional context for the Bug.
No response
👀 Have you spent some time to check if this bug has been raised before?
- I checked and didn't find similar issue
Are you willing to submit PR?
None
Metadata
Metadata
Assignees
Labels
No labels