Belajar Site Reliability Engineer - Alerting & On-call
Episode 6 of 28

Belajar Site Reliability Engineer - Alerting & On-call

Merancang alert yang akurat, relevan, dan actionable — mengatasi alert fatigue, memakai threshold berbasis SLO dan burn rate, serta menyusun on-call rotation yang sehat dengan escalation policy dan playbook yang benar-benar dibaca saat insiden

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Setelah di episode 5 kita membangun observability, sekarang muncul masalah baru: data yang melimpah justru bikin bising. Begitu metrics, logs, dan traces mengalir, godaan terbesarnya adalah membuat alert untuk semua yang tampak aneh. Hasilnya bukan sistem yang aman, melainkan alert fatigue — pager berdering terus, lalu semua orang mulai mengabaikannya, dan insiden nyata tenggelam dalam kebisingan.

Episode ini mengajarkan cara berpikir yang benar: alert bukan alat pemantauan, melainkan alat keputusan. Setiap alert yang berbunyi harus membebani seorang manusia — jadi ia harus layak berbunyi. Kita bahas desain alert (accurate, relevant, actionable), pola threshold berbasis SLO, dan on-call rotation yang tidak membakar tim.

Anatomi Alert yang Baik

Seorang SRE harus bisa membela setiap alert yang ia buat. Tolok ukurnya ada tiga:

KriteriaPertanyaan uji
AccurateBenarkah terjadi masalah, atau hanya noise?
RelevantApakah memengaruhi pengguna atau SLO?
ActionableApakah penerima tahu harus berbuat apa?

Contoh: alert "CPU > 90%" gagal di semua kriteria — CPU tinggi belum tentu masalah, dan jika ya, tidak ada tindakan yang jelas. Bandingkan dengan "error budget SLO 30d berisiko habis dalam 6 jam" — akurat (dari SLO), relevan (menyentuh janji pengguna), actionable (freeze rilis / cek deploy terakhir).

Format Pesan yang Layak

Setiap alert wajib memuat, minimal:

  • Judul: [service][SLO] burn rate tinggi — payment API
  • Ringkasan: apa yang terjadi, sejak kapan.
  • Aksi: langkah pertama yang harus dilakukan (link runbook).
  • Severity: P1 (service down / budget habis) sampai P3 (perlu perhatian siang hari).

Template contoh:

Contoh pesan alert
TITLE:  [payments][SLO] burn rate 30d = 1.4 (threshold 1.0)
AKSI:   Cek deploy terakhir di #deploy-log. Jika berasal dari
        rilis baru, rollback. Runbook: docs/runbooks/payments-slo.md
SEVERITY: P1

Pola Threshold: Lebih dari Sekadar Angka

Threshold Statis Itu Rapuh

Alert latency > 500ms berbunyi karena satu request lambat saat traffic sepi — noise. Sebaliknya, saat traffic meledak, threshold statis sering terlambat. Pola yang lebih sehat:

  • Burn rate SLO (episode 4): alert hanya saat error budget terancam, bukan saat ada satu error. Dua jendela (1 jam + 6 jam) membedakan ledakan baru dari kondisi lama.
  • Kontraksi berkelanjutan (for: 10m): konfirmasi masalah bertahan sebelum membangunkan manusia.
  • Seasonal / relative baseline: bandingkan dengan perilaku periode sebelumnya, bukan absolut yang "dikira-kira".
Alert burn rate SLO Prometheus
groups:
  - name: slo-alerts
    rules:
      - alert: ErrorBudgetBurn
        expr: |
          burn_rate_1h > 14.4 * 1.0
          or
          burn_rate_6h > 6 * 1.0
        for: 10m
        labels:
          severity: critical
        annotations:
          summary: "Error budget SLO 30d terancam habis"

Mematikan Noise secara Disiplin

Alert fatigue biasanya karena ini: alert lama yang sudah tidak relevan, atau threshold yang pernah salah dan kemudian "dinormalisasi". Praktik sehat:

  1. Setiap alert harus punya owner dan runbook — alert tanpa runbook dianggap belum selesai.
  2. Review alert bulanan: hapus yang tidak pernah action, atau yang selalu "false positive".
  3. Silence/ack harus berakhir otomatis — silence manual permanen adalah utang yang membusuk.

Important

Aturan praktis yang tegas: alert yang berbunyi tanpa tindakan adalah bug. Kalau membunyikan pager tengah malam tidak mengubah hasil, alert itu harus dihapus atau diperbaiki — bukan dibiarkan. Setiap alert yang Anda buat mencuri tidur seseorang; perlakukan itu sebagai biaya yang nyata.

On-Call Rotation yang Sehat

Alert hanya berguna bila ada manusia yang merespons dengan benar. On-call rotation perlu dirancang agar insiden tertangani tanpa membakar engineer.

Prinsip Dasar

  • Primary & Secondary: primary menjawab, secondary siap saat primary tidak bisa (sakit, overlap shift).
  • Durasi rotasi: 1 minggu adalah titik tengah yang sehat — cukup untuk memahami sistem, tidak terlalu lama hingga burnout.
  • Escalation path: primary → secondary → tim lead, dengan batas waktu tiap lapis (misal 15 menit).
100%

PagerDuty vs Grafana OnCall

Untuk tim kecil yang sudah memakai Grafana stack, Grafana OnCall cukup dan murah; tim besar dengan integrasi luas sering memilih PagerDuty. Keduanya mendukung hal yang sama: rotation, escalation, dan ack tracking. Jangan sampai terjebak fitur — yang penting adalah disiplin rotasi.

Metrik Kesehatan On-call

Tim SRE yang sehat memantau dirinya sendiri:

  • Ack time dan MTTA (waktu sampai ack) — apakah alert direspons tepat waktu?
  • Alert per shift — jika sering belasan per malam, itu bukan "on-call yang sibuk", melainkan desain yang gagal.
  • Follow-up burden — apakah on-call selesai saat shift selesai, atau pekerjaan menumpuk ke keesokan harinya?

Praktik: Setup Alerting yang Sehat

Langkah konkret di stack kalian:

  1. Buat satu alert burn rate SLO seperti contoh di atas untuk service demo.
  2. Buat alert test dengan severity: page untuk memverifikasi routing ke channel on-call.
  3. Tulis runbook satu halaman per alert (di repo, bukan di kepala) — isi: cara ack, langkah pertama, link dashboard.
  4. Atur escalation primary → secondary → lead dengan batas waktu.
  5. Catat MTTA/MTTR — kita pakai metrik ini lagi di episode 7.

Tip

Sebelum benar-benar on-call, jalankan pager drill: kirim alert palsu di jam kerja, minta on-call mempraktikkan runbook dari awal sampai selesai. Ini murah dan menemukan semua yang rusak — runbook basi, akses hilang, alert tidak sampai — sebelum terjadi insiden sungguhan.

Penutup

Pada episode 6 ini, kalian telah belajar merancang alerting dan on-call yang sehat.

Inti yang harus dibawa pulang:

  • Alert yang baik: accurate, relevant, actionable — dan setiap alert wajib punya runbook.
  • Threshold berbasis burn rate SLO lebih sehat daripada angka statis.
  • Alert tanpa tindakan adalah bug — review dan hapus noise secara berkala.
  • On-call yang sehat: rotasi mingguan, escalation berjenjang, dan metrik MTTA/MTTR yang dipantau.

Di episode 7 selanjutnya, kita akan membahas incident management — dari detection dan response, peran IC (incident commander) dan komunikasi, hingga blameless postmortem yang menutup siklus perbaikan, lengkap dengan simulasi incident drill. Sampai jumpa di episode 7!

Belajar Site Reliability Engineer - Alerting & On-call | Belajar Site Reliability Engineer