Incident Troubleshooting & Production Monitoring
Alur penanganan insiden, on-call, dashboard, SLO burn rate, komunikasi, dan postmortem yang efektif.
Monitoring yang baik tidak mencegah semua insiden, tetapi mempercepat deteksi dan pemulihan. Halaman ini menggabungkan observability dengan proses insiden.
Siklus insiden
Deteksi → Triage → Mitigasi → Diagnosa → Perbaikan → Postmortem| Tahap | Tujuan | Output |
|---|---|---|
| Deteksi | Mengetahui ada masalah | Alert/tiket |
| Triage | Menilai dampak | Severity |
| Mitigasi | Memulihkan layanan | Layanan normal |
| Diagnosa | Akar masalah | Temuan |
| Perbaikan | Mencegah berulang | Perubahan kode/sistem |
| Postmortem | Pembelajaran | Dokumen tindakan |
Severity
| Level | Dampak | Respons |
|---|---|---|
| SEV-1 | Layanan utama mati | Semua tangan, segera |
| SEV-2 | Sebagian pengguna terdampak | Tim on-call |
| SEV-3 | Dampak terbatas | Jam kerja |
| SEV-4 | Kosmetik/pertanyaan | Backlog |
Dashboard monitoring
Dashboard produksi minimal:
- Availability/uptime.
- Error rate (4xx/5xx).
- Latency p50/p95/p99.
- Request per second.
- CPU, RAM, disk.
- Database connections dan query latency.
- Replication lag.
- Queue depth.
- Deploy annotation.
Tambahkan anotasi deploy agar lonjakan bisa dikorelasikan.
SLO burn rate
Burn rate mengukur seberapa cepat error budget habis.
burn rate = error rate aktual / error budget rateAlert multi-window:
| Window | Burn rate | Aksi |
|---|---|---|
| 1 jam | 14.4 | Halaman segera |
| 6 jam | 6 | Halaman |
| 3 hari | 1 | Tiket |
Ini mengurangi alert yang tidak perlu.
Runbook
Setiap alert penting harus punya runbook:
- Arti alert.
- Dampak pengguna.
- Langkah verifikasi.
- Mitigasi cepat.
- Eskalasi.
- Tautan dashboard/log.
Contoh:
# Alert: HighErrorRate
## Cek
1. Buka dashboard API.
2. Lihat error rate per route.
3. Cek log: {job="app"} |= "ERROR"
4. Cek deploy terakhir.
## Mitigasi
- Rollback jika muncul setelah deploy.
- Restart instance jika hang.
- Hubungi DB on-call jika query timeout.Komunikasi
- Tetapkan incident commander.
- Update status berkala.
- Gunakan channel insiden.
- Hindari spekulasi; sampaikan fakta dan ETA.
- Setelah pulih, umumkan resolusi.
Diagnosa berbasis sinyal
| Pertanyaan | Data |
|---|---|
| Kapan mulai? | Grafik metrik + anotasi deploy |
| Siapa terdampak? | Error rate per route/region |
| Di mana lambat? | Trace span |
| Mengapa? | Log error |
| Apa yang berubah? | Riwayat deploy/config |
Mitigasi vs perbaikan
Mitigasi mengembalikan layanan; perbaikan menghilangkan akar masalah.
Contoh:
- Rollback = mitigasi.
- Memperbaiki query lambat = perbaikan.
Jangan menunda mitigasi demi mencari akar masalah.
Postmortem
# Postmortem: API 500 selama 18 menit
## Ringkasan
...
## Dampak
...
## Timeline
- 10:00 deploy v1.4.0
- 10:03 error rate naik
- 10:05 alert
- 10:08 rollback
- 10:18 layanan normal
## Akar masalah
Migrasi kolom tidak kompatibel dengan kode lama.
## Tindakan
- [ ] Migrasi expand-contract (owner, tenggat)
- [ ] Test kompatibilitas versi (owner, tenggat)Praktik: latihan insiden
- Buat skenario (DB down, app 500, disk penuh).
- Jalankan di staging.
- Ukur waktu deteksi dan pemulihan.
- Uji runbook.
- Perbaiki gap.
Ringkasan
- Deteksi cepat bergantung pada metrik, log, dan alert yang tepat.
- Severity dan runbook mempercepat respons.
- SLO burn rate mengurangi alert fatigue.
- Postmortem blameless menghasilkan perbaikan nyata.
Selanjutnya
Terapkan keamanan di DevSecOps Fundamentals & Security Pipeline.
Centralized Logging, Loki & Alerting
Mengumpulkan log terpusat dengan Loki dan Promtail, query LogQL, merancang label, dan mengirim alert yang tidak berisik.
DevSecOps Fundamentals & Security Pipeline
Menerapkan keamanan di setiap tahap pipeline: SAST, SCA, secret scanning, container scan, SBOM, signing, dan policy gate.