Cloud Native Observability: Prometheus, Grafana, Loki
Cloud native mimarilerde (Kubernetes, mikroservisler, serverless), sistemler dinamik ve dağıtıktır. Bir sorun oluştuğunda "ne oldu?" sorusuna yanıt bulmak, geleneksel yöntemlerle neredeyse imkansızdır. İşte observability (gözlemlenebilirlik), metrikler, loglar ve izler (traces) aracılığıyla sistemin iç durumunu anlamayı sağlar. Bu alanda en yaygın kullanılan açık kaynak üçlü, Prometheus (metrikler), Loki (loglar) ve Grafana (görselleştirme) olarak öne çıkar. Bu yazıda, bu üç aracın rollerini, birlikte nasıl çalıştıklarını ve üretim ortamı için en iyi pratikleri ele alacağız.
1. Prometheus: Metriklerin Omurgası
Prometheus, SoundCloud tarafından 2012'de açık kaynak olarak yayınlanmış, Kubernetes'ten sonra CNCF'den mezun olan ikinci projedir . Tüm metrik verilerini zaman serisi (time series) olarak saklar; her metrik, kaydedildiği zaman damgası ve isteğe bağlı anahtar-değer çiftleri (label) ile birlikte tutulur .
Mimari:
Prometheus, pull (çekme) modeliyle çalışır. Hedeflerin (target) üzerindeki /metrics endpoint'inden belirli aralıklarla metrikleri toplar . Temel bileşenler:
-
Prometheus Server: Metrikleri toplar ve depolar.
-
Targets: Enstrümante edilmiş uygulamalar veya exporter'lar.
-
Alertmanager: Önceden tanımlanmış kurallara göre uyarı üretir .
PromQL: Prometheus'un sorgu dili olan PromQL ile metrikler sorgulanır, dashboard'lar ve uyarılar oluşturulur .
Cloud Native'de Prometheus:
Kubernetes ortamında kube-state-metrics (Kubernetes nesnelerinin durumu) ve node-exporter (düğüm seviyesinde donanım/işletim sistemi metrikleri) ile birlikte kullanılır . 2026 itibarıyla neredeyse tüm popüler mikroservis ve cloud native bileşenler, Prometheus metriklerini yerel olarak sunmaktadır .
2. Loki: Düşük Maliyetli Log Toplama
Grafana Loki, Grafana Labs tarafından geliştirilen, yatay olarak ölçeklenebilir, yüksek erişilebilir ve çok kiracılı bir log toplama sistemidir . Geleneksel log sistemlerinden (Elasticsearch gibi) en büyük farkı, yalnızca metadata'yı (label) indekslemesidir. Log içeriğinin kendisi sıkıştırılarak nesne depolamada (S3, GCS, Azure Blob) saklanır . Bu yaklaşım, depolama ve hesaplama maliyetlerini önemli ölçüde düşürür.
Promtail / Alloy:
Loki'ye log göndermek için geleneksel olarak Promtail kullanılırdı. Ancak Promtail 2025'te kullanımdan kaldırılmıştır; yerini Grafana Alloy (OpenTelemetry Collector tabanlı) almıştır . Alloy, logları toplar, label'larla zenginleştirir ve Loki'ye iletir.
LogQL: Loki'nin sorgu dili olan LogQL ile loglar filtrelenir, aranır ve metrik sorgularına dönüştürülür .
Ne Zaman Loki, Ne Zaman Elasticsearch?
Loki, Kubernetes-native yapısı ve düşük maliyetiyle küçük-orta ölçekli ekipler için idealdir. Elasticsearch ise güçlü tam metin arama (full-text search) gerektiren büyük kurumsal yapılar için hala tercih edilmektedir .
3. Grafana: Görselleştirme ve Korelasyon
Grafana, metrikleri, logları ve izleri tek bir panelde görselleştiren açık kaynak bir analiz platformudur. Prometheus ve Loki ile doğal olarak entegre çalışır . Grafana, yalnızca bir dashboard aracı değil, aynı zamanda uyarı yönetimi (alerting) ve veri kaynağı korelasyonu merkezidir.
Temel Yetenekler:
-
Dashboard'lar: Prometheus metrikleri ve Loki logları aynı panelde birleştirilebilir.
-
Explore: Dashboard oluşturmadan hızlı sorgulama ve canlı log takibi (live tail) .
-
Alerting: Prometheus alert kuralları ve Grafana alerting ile uyarılar yönetilir .
-
Logs Drilldown: LogQL yazmadan logları keşfetme .
Gerçek Dünya Örneği (Infosys):
Infosys, 1.000'den fazla GitLab projesini kapsayan bir observability platformunda Prometheus, Grafana ve Loki'yi birlikte kullanmıştır. Sonuçlar: %95 pipeline uyumluluğu, medyan güvenlik açığı düzeltme süresinin 2 haftadan 3 güne düşmesi ve gözlemlenebilirlik kör noktalarında %75 azalma .
4. Üçlü Nasıl Birlikte Çalışır? (LGTM Stack)
Prometheus, Loki ve Grafana, LGTM (Loki, Grafana, Tempo, Mimir/Prometheus) stack'inin temelini oluşturur. Akış şu şekildedir:
text
Uygulama → /metrics endpoint → Prometheus (metrik toplama) Uygulama → stdout log → Alloy/Promtail → Loki (log toplama) Prometheus + Loki → Grafana (görselleştirme + korelasyon)
Korelasyon: Grafana'da bir metrik panelinde anomali gördüğünüzde, aynı zaman aralığındaki logları tek tıkla görüntüleyebilirsiniz. Bu, kök neden analizini (RCA) hızlandırır .
Uyarı Akışı:
Prometheus alert kuralları (HighErrorRate, HighLatency gibi) Alertmanager'a, oradan da Slack, e-posta veya Jira/ServiceNow gibi araçlara iletilir .
5. Üretim Ortamı İçin En İyi Pratikler
| Pratik | Açıklama |
|---|---|
| Metrikleri doğru seçin | "Golden Signals" (rate, errors, duration, saturation) ile başlayın . |
| Loki'de düşük kardinalite label kullanın | user_id gibi yüksek kardinaliteli alanları label yapmayın; log içinde tutun. |
| Prometheus için uzun vadeli depolama | Thanos veya Grafana Mimir ile metrikleri nesne depolamada saklayın . |
| Grafana'da korelasyon kurun | Metrik panellerine Loki log link'leri ekleyin; RCA süresini kısaltın. |
| Uyarı yorgunluğundan kaçının | Sadece eyleme geçirilebilir (actionable) uyarılar tanımlayın; SLO tabanlı alerting kullanın . |
| Kaynakları izole edin | Çoklu bulut/ortamda her ortamın verisi kendi bölgesinde kalsın (data residency) . |
| Alloy'a geçin | Promtail yerine Grafana Alloy kullanın (OpenTelemetry tabanlı, geleceğe hazır) . |
6. Ne Zaman Hangi Araç?
| İhtiyaç | Araç |
|---|---|
| Metrik toplama ve uyarı | Prometheus |
| Log toplama (düşük maliyet) | Loki |
| Görselleştirme ve korelasyon | Grafana |
| Dağıtık izleme (trace) | Tempo (LGTM'in T'si) |
| Uzun vadeli metrik depolama | Thanos veya Grafana Mimir |
| Tam metin log arama (büyük ölçek) | Elasticsearch (alternatif) |
Sonuç
Prometheus, Loki ve Grafana, cloud native observability'nin açık kaynak temelini oluşturur. Prometheus metriklerin omurgası, Loki maliyet-etkin log toplama katmanı, Grafana ise tüm telemetriyi birleştiren görselleştirme ve korelasyon merkezidir. Üçü birlikte kullanıldığında, dağıtık sistemlerde kök neden analizini dakikalara indirir, uyarı yönetimini merkezileştirir ve geliştirici verimliliğini artırır. Unutmayın: Observability bir araç seti değil, bir kültürdür; doğru metrikleri, doğru logları ve doğru uyarıları seçmek, araçları kurmaktan daha önemlidir.