import os
from aden import (
instrument,
uninstrument,
MeterOptions,
create_console_emitter,
create_batch_emitter,
create_multi_emitter,
)
from openai import OpenAI
def main():
# Set up multiple emitters
emitter = create_multi_emitter([
# Log to console in development
create_console_emitter(pretty=True),
# Batch metrics for efficient network I/O
create_batch_emitter(
handler=lambda batch: send_to_backend(batch),
batch_size=50,
flush_interval_ms=5000,
),
])
instrument(MeterOptions(
emit_metric=emitter,
track_tool_calls=True,
))
client = OpenAI()
# Make API calls...
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Hello, world!"}],
)
print(response.choices[0].message.content)
# Clean up
uninstrument()
def send_to_backend(batch):
import requests
requests.post(
"https://your-backend.com/metrics",
json=batch,
headers={"X-API-Key": os.environ["METRICS_API_KEY"]},
)
if __name__ == "__main__":
main()