Pengenalan Observability
Konsep monitoring, logging, dan tracing untuk sistem modern
Apa itu Observability
- Kemampuan memahami state internal sistem dari output eksternal
- Lebih luas dari sekadar monitoring
- Terdiri dari tiga pilar utama
Tiga Pilar Observability
Metrics
- Data numerik yang diukur dari waktu ke waktu
- Contoh: CPU usage, memory usage, request latency, error rate
- Biasanya dikumpulkan dalam interval reguler
- Tools: Prometheus, Datadog, CloudWatch
Logs
- Catatan kejadian atau event dalam sistem
- Berisi timestamp dan detail kontekstual
- Contoh: request log, error log, audit log
- Tools: ELK Stack, Loki, Splunk
Traces
- Melacak journey satu request melalui berbagai service
- Berguna untuk sistem microservices
- Menunjukkan latency di setiap hop
- Tools: Jaeger, Zipkin, OpenTelemetry
Monitoring vs Observability
Monitoring
- Menjawab pertanyaan yang sudah diketahui
- Contoh: "Apakah CPU di atas 80%?"
- Dashboard dengan metric predefined
- Alerting berbasis threshold
Observability
- Menjawab pertanyaan yang belum diketahui
- Contoh: "Mengapa request ini lambat?"
- Eksplorasi data secara ad-hoc
- Root cause analysis
Sinyal Emas (Golden Signals)
Dari Google SRE Book, empat metric kritis untuk setiap service:
Latency
- Waktu untuk memproses request
- Bedakan latency sukses dan error
- Percentile lebih penting daripada average
Traffic
- Jumlah request per satuan waktu
- Indikator beban sistem
- Contoh: requests per second (RPS)
Errors
- Rate request yang gagal
- HTTP 5xx, 4xx, exception, timeout
- Dihitung sebagai rasio dari total traffic
Saturation
- Seberapa penuh resource sistem
- CPU, memory, disk, connection pool
- Threshold biasanya 80% untuk warning
Instrumentasi
White-box Monitoring
- Instrumentasi dari dalam aplikasi
- Application metrics, custom business metrics
- Lebih detail dan kontekstual
Black-box Monitoring
- Monitoring dari luar aplikasi
- Synthetic monitoring, uptime checks
- Mewakili perspektif pengguna
SLA, SLO, dan SLI
SLI (Service Level Indicator)
- Metric yang diukur (misal: availability, latency)
SLO (Service Level Objective)
- Target yang ingin dicapai (misal: latency < 200ms untuk 99% request)
SLA (Service Level Agreement)
- Kontrak dengan konsekuensi jika SLO tidak tercapai
- Biasanya melibatkan timbangan kompensasi
Error Budget
- Jumlah error yang diperbolehkan dalam periode tertentu
- Contoh: SLO 99.9% availability = error budget 0.1%
- Jika error budget habis, freeze deploy baru
- Menyeimbangkan kecepatan deploy dan reliability
Tools Populer
Open Source
- Prometheus + Grafana (metrics)
- ELK / Loki (logs)
- Jaeger / Zipkin (tracing)
- OpenTelemetry (unified instrumentation)
Cloud Native
- Datadog
- New Relic
- Dynatrace
- AWS CloudWatch
- Google Cloud Monitoring