Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Observability Nedir? Monitoring'den Farkı, Log, Metric ve Trace'in Her Birinin Cevapladığı Soru
Observability, sistemin dışarıya verdiği log, metric ve trace sinyallerinden önceden düşünülmemiş bir soruyu sonradan sorup cevaplayabilmektir; monitoring ise bilinen arızaları izler. Bookstore'da bazen 8 saniye süren checkout'u log, dotnet-counters ile metric ve trace üzerinden daraltıyor, telemetry pipeline'ını ve cardinality maliyetini tanıyoruz.
Trace Backend'i ile Yavaş İsteği Bulmak: Jaeger v2, Grafana Tempo ve Checkout'taki N+1 Sorgusu
Yavaş isteği trace backend'inde bulmak, doğru soruyu sormaya bağlı: Jaeger v2 index'li tag aramasıyla, Tempo ise TraceQL ile span'lar arası koşullarla arıyor. Bookstore'un 7,6 saniyelik checkout'unu waterfall'da açıp retry fırtınasını ve N+1 sorgusunu buluyor, iki düzeltmeyi ve hedging'i ölçüyor, tail sampling'li trace'lerden yüzdelik hesaplamanın neden yanılttığını gösteriyoruz.
.NET 8'den .NET 11'e Observability'de Gelenler: IMeterFactory, Gauge, Yeni Built-in Metric'ler ve ASP.NET Core'da Yerleşik Tracing
.NET 11'de ASP.NET Core, HTTP server span'ının OpenTelemetry attribute'larını kendisi yazıyor ve MemoryCache dotnet.cache.* metric'lerini yayınlıyor; instrumentation paketi gerekmiyor. .NET 8'in IMeterFactory'sinden .NET 9'un Gauge'una, .NET 10'un Identity metric'leri ve schema URL'ine kadar sürüm haritasını çıkarıyor, .NET 11 maddelerini GA SDK'sıyla çalıştırıp eski kodu okumanın ipuçlarını veriyoruz.