İçeriğe geç
Grafana Stack

Grafana Stack; Grafana Labs tarafından geliştirilen, modern gözlemlenebilirlik (observability) için end-to-end açık-kaynak araçlar bütünüdür. Klasik 3 sütun (metric, log, trace) artık 4’e çıktı: continuous profiling (Pyroscope) ile dördüncü boyut. Hepsi tek bir Grafana UI’ından sorgulanabilir ve birbirine bağlanabilir (“derive log from trace”, “derive trace from metric”).

Stack’in temel felsefesi: etiket bazlı (label-based) indeksleme. Bu yaklaşım, Loki’nin storage maliyetini Elasticsearch’ün 10-20’de birine indirir; metric ve log paradigmalarını birleştirir; dev-friendly LogQL/PromQL/TraceQL sorgu dillerini sunar.

Mono’nun yaklaşımı

Modern uygulamalar için Mono’nun varsayılan gözlemlenebilirlik kurulumudur. Standartlarımız:

  • Toplama: OpenTelemetry Collector (gateway pattern) — uygulamalar OTLP gönderir, collector route eder.
  • Metric: Mimir (multi-tenant, S3 backend); küçük ortamlarda single-binary Prometheus.
  • Log: Loki + Promtail/Vector; structured JSON log uygulama tarafında zorunlu.
  • Trace: Tempo + OpenTelemetry SDK; sampling stratejisi: head-based 1% + tail-based hata olduğunda %100.
  • Profiling: Pyroscope (Grafana Pyroscope) — pprof formatında continuous profiling.
  • Alerting: Alertmanager + Grafana OnCall; SLO temelli alarm tasarımı (Mono blogumuzda detaylı).
  • Dashboard’lar: Grafana as Code — JSON manifest’leri Git’te, GitOps ile push.

Tipik üretim mimarisi

Tipik bir kurulum şu bileşenlerden oluşur:

  1. Uygulama OTel SDK ile metric/log/trace üretir.
  2. OTel Collector (DaemonSet) local agent → Collector (gateway) filtreleme/sampling.
  3. Mimir ingester → S3 storage → querier; Loki ingester → S3 → querier; Tempo distributor → S3 → querier.
  4. Grafana her datasource’u federation ile sorgular; Alertmanager Mimir kurallarını çalıştırır.
  5. Slack/PagerDuty alarm hedefleri; Grafana OnCall rotasyon yönetimi.

Yaygın sorunlar ve çözümler

  • Yüksek cardinality: Pod IP veya request-id gibi yüksek-cardinality label’lar metrik patlatır. Asla label’a dönüştürmeyin; uygulama tarafında trace ID’ye taşıyın.
  • Loki yavaş query: Label seçimi yetersiz, full-stream tarama yapılıyor. Önce dar label seçimi, sonra |= filter.
  • Tempo trace bulunamıyor: Sampling oranı çok düşük + index TTL kısa. Tail-sampling ile hata trace’leri %100 sakla.
  • Grafana yavaş açılıyor: Dashboard’da çok fazla panel + ortak time range yok. Variable-based dashboard + caching.
  • Cost patlaması: Loki/Mimir log/metric volume ölçülmüyor. Ingester metric’leri (sample/series) izlenmeli.

İlgili hizmetlerimiz

Sıkça sorulan sorular

Grafana Stack hangi araçları içerir?
Grafana (görselleştirme/UI), Prometheus/Mimir (metric), Loki (log), Tempo (trace), Pyroscope (continuous profiling), Alertmanager (alarm), OnCall (incident response). Hepsi açık-kaynak; isteğe göre Grafana Cloud/Enterprise SaaS.
Loki mi Elasticsearch/OpenSearch mi log için?
Loki label-based, S3 backend, ucuz storage; metrik gibi hafif. Elastic/OpenSearch full-text search, geniş ekosistem. Mono önerisi: Kubernetes ortamında Loki, ELK ile entegre legacy ortamlarda OpenSearch + Loki bridge. Maliyet farkı ciddi: Loki TB başına 10-20x daha ucuz.
Mimir Prometheus'un yerini mi alır?
Tek instance Prometheus yeterli ise gerek yok. Çoklu küme + uzun retention + multi-tenancy ihtiyacında Mimir (Cortex’in yeni adı) öne çıkar: yatay ölçeklenir, S3 backend, milyonlarca aktif series.
OpenTelemetry ile entegre çalışır mı?
Evet, en iyi entegrasyonlardan birini sunar. OTel Collector’dan: metric → Mimir, log → Loki, trace → Tempo. Grafana’da bir log satırından trace’e, oradan profile’a tek tıkla geçilebiliyor (“correlation”).

Bir sonraki dönüşümü birlikte planlayalım.

Ekibimiz teknik gereksinimlerinizi anlamak ve hızlıca prototip çıkarmak için hazır.

Bir sonraki dönüşümü birlikte planlayalım.

Ekibimiz teknik gereksinimlerinizi anlamak ve hızlıca prototip çıkarmak için hazır.