Bir LLM tabanlı ajanın yanıt vermesi 12 saniye sürdüğünde, zaman tam olarak nereye gidiyor? Yavaş bir vektör veritabanı sorgusu mu? Orkestrasyon çerçeveniz bir ajan döngüsüne mi takıldı? Yoksa LLM sağlayıcınız API isteklerinizi mi kısıtlıyor? Eğer mimariniz, ajan adımlarını işlemek için asenkron arka plan çalışanlarına dayanıyorsa, suçluyu bulmak son derece zordur. Standart HTTP otomatik enstrümantasyonu, bir iş serileştirilip arka plan kuyruğuna gönderildiği anda çöker. Trace context kaybolur, yürütme yolu kararır ve sadece bağlantısız log satırlarını manuel olarak birleştirmeye çalışmak kalır.
Bu, gerçek zamanlı risk tahmini veya LLM çıktılarında halüsinasyon tespiti gibi şeyler için asenkron boru hatları oluştururken karşılaşılan yaygın bir engeldir. Bu engeli aşmak, temel otomatik enstrümantasyonun ötesine geçerek manuel OpenTelemetry yayılımına ve görselleştirme için SigNoz kullanımına geçmek anlamına gelir. İşte genel kurulum kılavuzlarını atlayıp, asenkron sınırları aşarak AI ajanlarınızın üretimde tam olarak ne yaptığını haritalandırmanın yolu.
İzlemenin neden karmaşıklaştığını anlamak için tipik bir üretime hazır ajan akışına bakalım. Bir FastAPI istemcisi gönderir, Redis/Celery kuyruğuna gönderir ve orada trace context genellikle ölür. Çalışan işi aldığında, AI Ajan Çalışanı adımları: Vektör DB sorgula (Embedding), LLM'ye sor (Cerebras/OpenRouter), ardından işlem sonrası değerlendiriciyi çalıştır. FastAPI'ye bir API isteği geldiğinde, OpenTelemetry middleware otomatik olarak bir trace başlatır. Ancak FastAPI uygulaması bir arka plan görevini Redis kuyruğuna ittiğinde, bu trace context otomatik olarak iletilmez. Arka plan çalışanı işi aldığında, tamamen boş bir trace context ile başlatır. İlk API çağrısı ve gerçek ajan yürütmesi SigNoz'da iki bağlantısız olay olarak görünür. Kullanıcının tıklamasından üretilen son tokene kadar tüm yolculuğu görmek için context'in manuel olarak yayılması gerekir.
Detaylar ve Etkileri
Boşluğu kapatmak için, mevcut span'in context'inin bir taşıyıcı sözlüğüne serileştirilmesi, görev kuyruğu aracılığıyla iletilmesi ve ardından çalışan tarafında ebeveyn-çocuk span ilişkisini yeniden oluşturmak için çıkarılması gerekir. OpenTelemetry terimleriyle buna trace context enjekte etme ve çıkarma denir. Görev üreticisini (FastAPI endpoint) background işi göndermeden önce context enjekte edecek şekilde yapılandırmak için, bir taşıyıcı sözlüğü oluşturulur, aktif trace context bu sözlüğe enjekte edilir ve ardından taşıyıcı (traceparent başlıklarını içeren) asenkron göreve parametre olarak iletilir. Çalışan tarafında, bu başlıklar çıkarılır ve span açıkça orijinal HTTP isteğinin trace'inin bir alt öğesi olarak başlatılır.
Context yayılımı çalıştığında, bir sonraki zorluk LLM adımının kendisinde görünürlük elde etmektir. Standart HTTP otomatik enstrümantasyonu yalnızca LLM sağlayıcınıza bir POST isteğinin 3.2 saniye sürdüğünü bildirir - nedenini söylemez. Bu telemetriyi kullanışlı kılmak, span'lara token sayıları, model varyasyonları ve özel durum bayrakları gibi gerçek LLM gerçeklerini yansıtan özel nitelikler eklemeyi gerektirir. Manuel enstrümantasyon ile, LLM çağrısı için bir alt-span oluşturup, model adı, token sayısı ve durum gibi özel nitelikler ekleyerek, bir sonraki adımın (örneğin halüsinasyon değerlendiricisi) da aynı trace altında görünmesini sağlayabiliriz.
SigNoz, bu manuel enstrümantasyonun meyvelerini toplamak için mükemmel bir platformdur. Trace'leri gösteren akış şeması görünümü, her bir adımın ne kadar sürdüğünü, hangi LLM sağlayıcısının kullanıldığını ve varsa hata durumlarını net bir şekilde gösterir. Bu sayede, 12 saniyelik gecikmenin vektör veritabanı sorgusundan mı, yoksa LLM yanıtından mı kaynaklandığını anında tespit edebilirsiniz. Ayrıca SigNoz'un alarm ve dashboard özellikleriyle, belirli token sayılarını aşan veya belirli hataları sıkça veren ajanları izleyebilirsiniz.
Asenkron AI ajan iş akışlarını izlemek, standart HTTP izlemenin ötesine geçmeyi gerektirir ancak OpenTelemetry ile manuel context yayılımı ve SigNoz ile görselleştirme, bu 'hayaletleri' yakalamanızı sağlar. Bu teknikleri uygulayarak, LLM tabanlı ajanlarınızın üretimdeki performansını uçtan uca gözlemleyebilir, darboğazları tespit edebilir ve sisteminizi optimize edebilirsiniz. Unutmayın, gözlemlenebilirlik sadece hata ayıklama için değil, aynı zamanda AI sistemlerinizin güvenilirliğini ve verimliliğini artırmak için de kritik öneme sahiptir.
Kaynak: dev.to