Gözlemlenebilirlik Nedir?
İngilizce: Observability
Yayın: · Son güncelleme:
Gözlemlenebilirlik Nedir? Kısaca
Gözlemlenebilirlik (observability), bir yazılım sisteminin ürettiği loglar, metrikler ve izler sayesinde içinde ne olup bittiğinin dışarıdan anlaşılabilmesidir. Önceden tahmin edilmemiş sorunların nedenini bulmayı kolaylaştırır.

Gözlemlenebilirlik nedir?
Gözlemlenebilirlik, bir sistemin dışa verdiği verilere bakarak iç durumunu anlayabilme yeteneğidir. Kavram kontrol teorisinden gelir ve yazılımda özellikle mikroservis mimarileriyle yaygınlaşmıştır. İngilizce karşılığı observability, kısaltması ise "o11y" şeklinde de yazılır.
Klasik izleme önceden bildiğiniz sorunları yakalar. Gözlemlenebilirlik ise hiç düşünmediğiniz bir hatanın nedenini araştırabilmenizi sağlar.
Hangi verilerle sağlanır?
Genellikle üç veri türünden söz edilir:
- Log: Olayların zaman damgalı metin kayıtları
- Metrik: CPU kullanımı, istek sayısı gibi sayısal ölçümler
- İz (trace): Tek bir isteğin servisler arasında izlediği yol ve her adımda geçen süre
Bu verileri tek bir standartla toplamak için açık kaynak OpenTelemetry projesi yaygın biçimde kullanılır.
Varsayımsal bir örnek düşünelim. Bir yemek sipariş uygulamasında bazı kullanıcılar ödeme adımında 8 saniye bekliyor. Metrikler yalnızca "ödeme yavaş" der.
İz kaydı açıldığında isteğin sipariş, stok ve ödeme servislerinden geçtiği, gecikmenin ise stok servisinin dış bir API'yi beklemesinden kaynaklandığı görülüyor. Loglar da o API'nin zaman aşımı hatası verdiğini doğruluyor.
Nereden başlamalı?
Önce logları düz metin yerine yapılandırılmış biçimde, örneğin JSON olarak yazın ve her isteğe benzersiz bir kimlik ekleyin. Bu kimlik, farklı servislerdeki kayıtları birbirine bağlamanızı sağlar. Ardından en kritik kullanıcı akışı için iz toplamayı açın. Toplanan veri hacmi hızla büyüyebileceği için saklama süresi ve örnekleme oranı belirlemek maliyeti kontrol altında tutar.
Sıkça Sorulan Sorular
Gözlemlenebilirlik ile monitoring arasındaki fark nedir?
Monitoring önceden tanımlanmış metrikleri izleyip bilinen sorunlarda alarm verir. Gözlemlenebilirlik ise log, metrik ve izleri birlikte kullanarak beklenmedik bir sorunun nedenine inmenizi sağlar.
Küçük bir uygulama için gözlemlenebilirlik gerekli mi?
Tek sunuculu basit bir uygulamada düzgün loglama ve temel izleme çoğu zaman yeterlidir. Servis sayısı arttıkça iz toplamanın faydası belirginleşir.