Alert adalah jembatan antara observability dan tindakan. Episode ini membahas prinsip alert yang actionable, Grafana Alerting dan alert rules, routing serta grouping ala AlertManager, recording rules, dan best practices pemeliharaan alert di produksi.

Observability bukan hanya tentang melihat masalah — tapi juga tentang mendeteksi masalah sebelum pengguna mengeluh. Inilah peran alerting: menghubungkan query telemetry dengan notifikasi yang memicu tindakan.
Episode ini membahas strategi alerting yang sehat, mekanisme Grafana Alerting, konsep routing dan grouping ala AlertManager, recording rules untuk query mahal, serta praktik terbaik agar tim kalian tidak tenggelam dalam alert fatigue.
Alert yang baik menjawab tiga pertanyaan: apa yang salah, seberapa parah, dan apa yang harus dilakukan. Alert tanpa runbook hanyalah suara bising.
apa yang salah? seberapa parah? apa yang harus dilakukan?Tiga pertanyaan apa yang salah? seberapa parah? apa yang harus dilakukan? ini adalah filter pertama sebelum membuat alert baru.
Alert rule di Grafana adalah query yang dievaluasi berkala:
sum(rate(http_requests_total{status=~"5.."}[5m])) /
sum(rate(http_requests_total[5m]))Query di atas menghitung rasio request 5xx. Alert rule mengombinasikannya dengan kondisi, periode for, dan folder tujuan.
Grafana mendukung alert multi-dimensi: satu rule menghasilkan banyak instance alert, satu per kombinasi label. Contoh: rule error rate di atas akan membuat satu alert per service yang melanggar ambang.
for.for.conditions:
- evaluator:
type: greater_than
params: [0.05]
for: 10mNilai for: 10m mencegah alert flapping — alert hanya menyala bila error rate tinggi selama 10 menit berturut-turut.
Routing menentukan ke mana alert dikirim, grouping menggabungkan alert serupa menjadi satu notifikasi:
route:
group_by: ["service"]
group_wait: 30s
group_interval: 5m
repeat_interval: 4h
routes:
- match:
severity: critical
receiver: on-call-pagerduty
- match:
severity: warning
receiver: slack-alertsAturan match: severity: critical mengirim alert kritikal ke PagerDuty on-call, sementara warning cukup ke Slack.
Recording rules menghitung query berat di muka dan menyimpannya sebagai metrik baru:
groups:
- name: error_rate.rules
rules:
- record: job:http_errors:ratio5m
expr: sum(rate(http_requests_total{status=~"5.."}[5m])) by (job) /
sum(rate(http_requests_total[5m])) by (job)Metrik job:http_errors:ratio5m bisa dipakai alert dan dashboard tanpa menghitung ulang query berat — persis konsep yang kalian lihat di episode 7.
service:condition:severity, misalnya checkout:error-rate:critical.Warning
Alert fatigue adalah musuh senyap observability. Tim yang menerima ratusan notifikasi palsu akan mulai mengabaikan semua alert — termasuk yang penting. Lebih sedikit alert yang berkualitas lebih baik daripada banyak alert yang berisik.
Di episode 19 ini kalian memahami prinsip alert yang actionable, mekanisme Grafana Alerting dengan evaluasi dan state management, routing dan grouping ala AlertManager, recording rules untuk query mahal, serta praktik terbaik pemeliharaan alert.
Inti yang harus dibawa pulang:
Di episode 20 selanjutnya kita akan membahas SLI, SLO, SLA, dan error budgets — mendefinisikan indikator keandalan, menetapkan target, membuat dashboard SLO dan burn rate alert, serta mengelola error budget sebagai bahan pengambilan keputusan. Alerting tanpa target keandalan hanyalah alarm tanpa arah.