dev-tools
Sözlük ↗Gözlemlenebilirlik (Observability)
Gözlemlenebilirlik, çalışan bir sistemin içinde neler olduğunu, dışa doğru ürettiği verileri inceleyerek anlayabilme derecesidir — loglar (zaman damgalı ayrık olaylar), metrikler (istek gecikmesi veya hata oranı gibi zaman içindeki sayısal ölçümler) ve trace'ler (tek bir isteğin birden fazla servis arasında hareket ederken izlediği uçtan uca yol). Geleneksel "izleme" (monitoring) ile ilişkili ama ondan daha geniştir: izleme tipik olarak bilinen hata modları için önceden tanımlanmış bir dizi panoyu izlemek anlamına gelirken, gözlemlenebilirlik, altta yatan telemetri verisini keşfederek bir sistemin davranışı hakkında sormanız gerektiğini önceden öngörmediğiniz sorular dahil, yeni sorulara cevap verebilmenizi amaçlar. Araçlar arasında Datadog, New Relic, Grafana + Prometheus ve Honeycomb ile birlikte, uygulamaları sağlayıcıdan bağımsız bir şekilde enstrümante etmek için açık standart OpenTelemetry bulunur. AI/SaaS geliştiricileri için neden önemli: bir sistem tek bir monolitik sunucunun ötesine büyüdükçe, belirli bir isteğin neden yavaş olduğunu veya bir hata oranının sabah 3'te neden fırladığını anlamak, iyi bir gözlemlenebilirlik olmadan gerçekten zorlaşır — ihtiyaç duyulan bilgi birden fazla servise dağılmıştır ve gerçek müşterileri etkileyen bir production olayını debug ederken "sadece bir print statement ekle ve yeniden deploy et" uygulanabilir değildir. Özellikle AI destekli özellikler için, gözlemlenebilirliğin LLM'e özgü sinyalleri de kapsaması gerekir — istek başına token kullanımı ve maliyeti, model çağrılarının gecikmesi ve bir yanıtın ne sıklıkla "beğenilmedi" aldığı gibi kalite metrikleri — bunların hiçbiri geleneksel altyapı izlemesi tarafından kutudan çıktığı gibi yakalanmaz. Nasıl çalışır: uygulamalar, anlamlı noktalarda yapılandırılmış loglar (JSON biçiminde, `request_id`, `user_id`, `duration_ms` gibi tutarlı alanlarla) ve metrikler (sayaçlar, göstergeler, histogramlar) üretecek şekilde enstrümante edilir; dağıtılmış trace'leme, tek bir isteğin dokunduğu her servis boyunca benzersiz bir trace ID'yi yayar; böylece tam yolu — "bu istek API ağ geçidine, ardından kimlik doğrulama servisine, ardından AI orkestrasyon servisine ulaştı, bu servis Claude'u çağırdı ve 1,2 saniye sürdü, ardından Postgres'e yazdı" — beş farklı yerdeki ilişkisiz loglar yerine tek bir bağlantılı zaman çizelgesi olarak yeniden inşa edebilirsiniz. Uygulamalı örnek: bir SaaS şirketi, AI tarafından üretilen rapor dışa aktarımlarının yavaş olduğuna dair müşteri şikayetlerinde bir artış yaşıyor. Tahmin yürütmek yerine, bir mühendis gözlemlenebilirlik panosunu açar ve `export_report` endpoint'i için son bir saatteki trace'leri süreye göre sıralayarak filtreler. Yavaş trace'lerin hepsinin bir örüntüyü paylaştığını görür: `claude_api_call` etiketli span, genellikle 2-3 saniye yerine 8-12 saniye sürüyor; trace'deki diğer her span (veritabanı sorguları, PDF render'ı) normal görünüyor. Bu, soruşturmayı hemen "AI çağrılarımızla veya Anthropic'in API gecikmesiyle ilgili bir şey değişti" haline daraltır; tüm yığın genelinde belirsiz, sistem çapında bir performans avı yerine — potansiyel olarak saatler süren bir soruşturmayı beş dakikalık, kanıta dayalı bir teşhise dönüştürür.
İlgili terimler