← Back to Blog
DEVOPS

Monitoring ve Alerting Nedir?

F. Çağrı BilgehanJanuary 29, 202611 min read
monitoringprometheusgrafanaobservability

Monitoring ve Alerting Nedir? Gözlemlenebilirlik Rehberi

Sistemde bir sorun çıktığında ilk siz mi fark ediyorsunuz yoksa müşteriler mi? Monitoring ile sisteminizi 7/24 izleyin, Alerting ile sorunları müşterilerden önce tespit edin.

Monitoring vs Observability

| Kavram | Ne Yapar? | |--------|-----------| | Monitoring | Bilinen metrikleri izler ("CPU %90'a çıktı mı?") | | Observability | Bilinmeyen sorunları anlamlandırır ("neden yavaşladı?") | | Alerting | Eşik aşıldığında bildirim gönderir |

Üç Sütun (Three Pillars)

1. Metrics (Metrikler)

Sayısal değerler. Zaman serisi olarak saklanır.

http_requests_total{method="GET", status="200"} 15234
http_request_duration_seconds{p99} 0.245
memory_usage_bytes 1073741824

2. Logs (Kayıtlar)

Olayların detaylı metin kaydı:

{
  "timestamp": "2026-02-15T10:30:00Z",
  "level": "ERROR",
  "service": "payment",
  "message": "Payment failed",
  "userId": "42",
  "error": "timeout after 5s",
  "traceId": "abc123"
}

3. Traces (İzler)

Bir isteğin servisler arasındaki yolculuğu:

[API Gateway] ──2ms──→ [User Service] ──15ms──→ [DB]
                     └──3ms──→ [Cache]
              ──45ms──→ [Payment Service] ──200ms──→ [Stripe API]  ← Yavaş!

Golden Signals

Google SRE'nin önerdiği 4 kritik metrik:

| Signal | Ölçüm | Alarm Eşiği | |--------|-------|-------------| | Latency | İstek süresi | p99 > 500ms | | Traffic | İstek sayısı | Ani düşüş/artış | | Errors | Hata oranı | > %1 | | Saturation | Kaynak doluluğu | CPU > %85 |

Prometheus + Grafana

Prometheus Metrik Toplama

# prometheus.yml
scrape_configs:
  - job_name: 'api-server'
    scrape_interval: 15s
    static_configs:
      - targets: ['api:3000']

Uygulama Metrikleri (Node.js)

import { Counter, Histogram, register } from 'prom-client';

const httpRequests = new Counter({
  name: 'http_requests_total',
  help: 'Total HTTP requests',
  labelNames: ['method', 'status', 'path']
});

const httpDuration = new Histogram({
  name: 'http_request_duration_seconds',
  help: 'HTTP request duration',
  labelNames: ['method', 'path'],
  buckets: [0.01, 0.05, 0.1, 0.5, 1, 5]
});

// Middleware
app.use((req, res, next) => {
  const end = httpDuration.startTimer({ method: req.method, path: req.path });
  res.on('finish', () => {
    httpRequests.inc({ method: req.method, status: res.statusCode, path: req.path });
    end();
  });
  next();
});

// Metrics endpoint
app.get('/metrics', async (req, res) => {
  res.set('Content-Type', register.contentType);
  res.send(await register.metrics());
});

PromQL Sorguları

# Son 5 dk'daki ortalama istek süresi
rate(http_request_duration_seconds_sum[5m]) / rate(http_request_duration_seconds_count[5m])

# Hata oranı
sum(rate(http_requests_total{status=~"5.."}[5m])) / sum(rate(http_requests_total[5m])) * 100

# p99 latency
histogram_quantile(0.99, rate(http_request_duration_seconds_bucket[5m]))

SLA / SLO / SLI

| Kavram | Tanım | Örnek | |--------|-------|-------| | SLI | Ölçülen metrik | p99 latency: 245ms | | SLO | Hedef | p99 < 500ms, %99.9 uptime | | SLA | Müşteriye taahhüt | %99.9 uptime, ihlalde kredi |

Alerting Best Practices

İyi Alarm:

  • Eyleme dönüşebilir — Alarmı gören kişi ne yapacağını bilir
  • Acil — Şimdi müdahale gerekir
  • Az false positive — Gereksiz alarm güveni azaltır

Alarm Yorgunluğunu Önleme:

  1. Severity seviyeleri — Critical, Warning, Info ayırımı
  2. Grouping — Benzer alarmları gruplayın
  3. Inhibition — Üst alarm aktifken alt alarmları bastırın
  4. Silence — Bilinen bakım pencerelerinde susturun
  5. Runbook bağlantısı — Her alarm için çözüm dökümanı

Monitoring Araçları

| Araç | Alan | Öne Çıkan | |------|------|-----------| | Prometheus | Metrikler | Açık kaynak, PromQL | | Grafana | Dashboard | Görselleştirme, çoklu veri kaynağı | | Loki | Loglar | Grafana entegrasyonu | | Jaeger | Tracing | Dağıtık izleme | | Datadog | Full-stack | SaaS, hepsi bir arada | | PagerDuty | Alerting | Nöbet yönetimi |

Sonuç

Monitoring ve alerting olmadan operasyonlar kör uçuştur. Golden signals'ı izleyin, anlamlı alarmlar kurun ve alarm yorgunluğundan kaçının. Amacınız sorunları müşterilerden önce tespit etmektir.

Monitoring ve observability konularını LabLudus platformunda öğrenin.

Related Posts

IaC Nedir?

Infrastructure as Code nedir ve neden kullanılır?

What Is Infrastructure as Code? Terraform & Automation Guide

IaC explained: Terraform, Pulumi, CloudFormation for infrastructure automation, version control, and repeatable deployments.