Gözlemlenebilirlik (Observability), yalnızca log toplamak değildir. Bir üretim sisteminde yaşanan problemi mümkün olan en kısa sürede anlayabilmek ve nedenini bulabilmektir. Loglar, metrikler ve tracing birlikte çalıştığında sisteminiz hakkında yeni sorular sorabilir, yeni bir kod yazmadan sorunları analiz edebilirsiniz.
Bu yazıda özellikle .NET tabanlı servisler düşünülerek uygulanabilecek temel yaklaşımlara değineceğiz.
Print yerine yapılandırılmış loglar
Console.WriteLine() geliştirme sırasında işe yarayabilir ancak production ortamında yeterli değildir.
Bunun yerine yapılandırılmış (structured) loglar üretin. Her log satırında aynı alanların bulunması arama ve filtreleme işlemlerini kolaylaştırır.
Örnek alanlar:
- RequestId
- TraceId
- UserId
- Endpoint
- Duration
- StatusCode
Serilog, Microsoft.Extensions.Logging veya OpenTelemetry Logging gibi çözümler sayesinde loglarınızı Elasticsearch, Loki veya Seq gibi sistemlerde rahatlıkla sorgulayabilirsiniz.
Haftalık baktığınız metrikleri ölçün
Her sayıyı takip etmek yerine gerçekten kullanıcı deneyimini etkileyen metriklere odaklanın.
Örneğin:
- Error Rate
- Request Per Second (RPS)
- p95 / p99 Response Time
- CPU ve Memory Usage
- Queue Length
- Active Connections
Alarm kurarken de sunucunun CPU’su %70 oldu diye değil, kullanıcı hata almaya başladığında veya gecikme kabul edilemez seviyeye çıktığında bildirim üretmeye çalışın.
Tracing ile istekleri uçtan uca takip edin
Modern uygulamalar genellikle birçok servisten oluşur.
Bir kullanıcının isteği API Gateway’den başlayıp Authentication, Payment, Notification ve Database servislerinden geçebilir.
Her isteğe bir TraceId eklemek, bu yolculuğu tek ekranda görebilmenizi sağlar.
OpenTelemetry sayesinde .NET uygulamalarında trace üretmek oldukça kolaydır ve Jaeger, Grafana Tempo veya Zipkin gibi sistemlerle birlikte kullanılabilir.
Sonuç
Observability pahalı araçlardan önce doğru alışkanlıklarla başlar. Yapılandırılmış loglar, anlamlı metrikler ve dağıtık tracing; production ortamındaki problemlerin büyük bölümünü çok daha hızlı çözebilmenizi sağlar.
Sisteminizi gerçekten gözlemleyebildiğinizde, sorunları kullanıcı fark etmeden önce yakalayabilirsiniz.