Skip to content

Commit 7137cab

Browse files
committed
Basic example and move the original one as quickstart
1 parent 61f01cb commit 7137cab

File tree

3 files changed

+73
-7
lines changed

3 files changed

+73
-7
lines changed

instrumentation-genai/opentelemetry-instrumentation-openai-agents/examples/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ This directory contains examples of how to use the OpenAI Agents instrumentation
44

55
## Files
66

7+
- `quickstart.py` - Minimal OpenTelemetry setup and OpenAI chat sample using `OpenAIAgentsInstrumentor`
78
- `basic_usage.py` - Basic example showing how to enable and use the instrumentation
89
- `.env.example` - Example environment variables configuration
910

@@ -21,7 +22,7 @@ This directory contains examples of how to use the OpenAI Agents instrumentation
2122

2223
3. Run the basic example:
2324
```bash
24-
python basic_usage.py
25+
python examples/quickstart.py
2526
```
2627

2728
## Configuration

instrumentation-genai/opentelemetry-instrumentation-openai-agents/examples/basic_usage.py

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,3 @@
1-
################################
2-
# pip install git+https://github.com/singankit/opentelemetry-python-contrib.git@main#subdirectory=instrumentation-genai/opentelemetry-instrumentation-openai-agents
3-
# pip install azure-monitor-opentelemetry openai-agents
4-
#################################
5-
6-
71
from __future__ import annotations as _annotations
82

93
import asyncio
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# pylint: skip-file
2+
import os
3+
4+
from openai import OpenAI
5+
6+
# NOTE: OpenTelemetry Python Logs and Events APIs are in beta
7+
from opentelemetry import _events, _logs, metrics, trace
8+
from opentelemetry.exporter.otlp.proto.grpc._log_exporter import (
9+
OTLPLogExporter,
10+
)
11+
from opentelemetry.exporter.otlp.proto.grpc.metric_exporter import (
12+
OTLPMetricExporter,
13+
)
14+
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import (
15+
OTLPSpanExporter,
16+
)
17+
from opentelemetry.instrumentation.openai_agents import (
18+
OpenAIAgentsInstrumentor,
19+
)
20+
from opentelemetry.sdk._events import EventLoggerProvider
21+
from opentelemetry.sdk._logs import LoggerProvider
22+
from opentelemetry.sdk._logs.export import BatchLogRecordProcessor
23+
from opentelemetry.sdk.metrics import MeterProvider
24+
from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader
25+
from opentelemetry.sdk.trace import TracerProvider
26+
from opentelemetry.sdk.trace.export import BatchSpanProcessor
27+
28+
# configure tracing
29+
trace.set_tracer_provider(TracerProvider())
30+
trace.get_tracer_provider().add_span_processor(
31+
BatchSpanProcessor(OTLPSpanExporter())
32+
)
33+
34+
# configure logging and events
35+
_logs.set_logger_provider(LoggerProvider())
36+
_logs.get_logger_provider().add_log_record_processor(
37+
BatchLogRecordProcessor(OTLPLogExporter())
38+
)
39+
_events.set_event_logger_provider(EventLoggerProvider())
40+
41+
# configure metrics
42+
metrics.set_meter_provider(
43+
MeterProvider(
44+
metric_readers=[
45+
PeriodicExportingMetricReader(
46+
OTLPMetricExporter(),
47+
),
48+
]
49+
)
50+
)
51+
52+
# instrument OpenAI with new instrumentor
53+
OpenAIAgentsInstrumentor().instrument()
54+
55+
56+
def main():
57+
client = OpenAI()
58+
chat_completion = client.chat.completions.create(
59+
model=os.getenv("CHAT_MODEL", "gpt-4o-mini"),
60+
messages=[
61+
{
62+
"role": "user",
63+
"content": "Write a short poem on OpenTelemetry.",
64+
},
65+
],
66+
)
67+
print(chat_completion.choices[0].message.content)
68+
69+
70+
if __name__ == "__main__":
71+
main()

0 commit comments

Comments
 (0)