Lab 02 / 09OpenTelemetry GenAI trace görüntüleyici
Bir Ajanın Düşünüşünü İzlemek
Bir yapay zekâ ajanını kararsız araçlara karşı çalıştır; her span’i, retry’ı ve idempotent tekrarı olduğu anda çizilirken gör.
Bir görev seçip Agent’ı çalıştır’a basın. Birazdan kendiliğinden bir çalıştırma başlayacak.
- Süre
- 0 ms
- Giren token
- 0
- Çıkan token
- 0
- Tool call
- 0
- Retry
- 0
- Tekrarlanan yan etki
- 0
Melih Kızmaz yaptı · tamamen tarayıcında çalışır
Ne görüyorsunuz
Her çalıştırma simüle edilmiş bir AI agent ve Jaeger ya da Grafana Tempo’nun çizeceği şekilde çiziliyor: tek birinvoke_agent kök span’i, her model çağrısı için bir chat span’i (gen_ai.usage.input_tokens ve output_tokens ile) ve her MCPtools/call için bir execute_tool span’i. Attribute isimleri OpenTelemetry GenAI semantic convention’larını izliyor; bu convention’lar hâlâ Development statüsünde. Melih Kızmaz’ın bunları kendi facade’ınızın arkasındaki tek bir mapping dosyasından üretmeyi önermesinin sebebi de bu: bir isim değişikliği migration’a değil, küçük bir diff’e mal olur.
Retry neden önemli
Kararsız ağ’ı açtığınızda bir tool call, sunucu işi çoktan yaptıktan sonra response stream’ini kaybediyor. Client timeout’a düşüyor ve çağrıyı yeni bir request id ile tekrar göndermek zorunda kalıyor. Log’lar bu iki denemeyi birbirine bağlayamaz. Trace’te ise ikisi aynı parent altında yan yana, kardeş span olarak duruyor.
Idempotency key açıkken iki deneme de aynı idempotency_key’i taşıyor; sunucu ilk sonucu yaklaşık 2 ms’de replay ediyor ve iade bir kez gerçekleşiyor. Key’leri kapatırsanız retry yeni bir istek gibi görünüyor ve müşteriye iki kez iade yapılıyor. Salt okunur tool’lar hiçbir zaman key taşımaz: bir okumayı retry etmek gecikmeye mal olur, doğruluğa değil. İşin kontrat tarafınıMCP tool kontratları yazısında anlattım.
Dürüst olmak gerekirse: görevler, süreler ve token sayıları senaryo olarak yazıldı ve tamamen tarayıcınızda çalışıyor. Hiçbir model çağrılmıyor, hiçbir yere veri gönderilmiyor. Span yapısı, iki denemenin üst üste binmesi ve replay davranışı ise yazılardaki gerçek trace’lerden geliyor.