Observability untuk Developer: Kenapa Log Saja Tidak Cukup di 2026
Observability untuk Developer: Kenapa Log Saja Tidak Cukup di 2026
Skenario yang pasti familiar: aplikasi lambat, user komplain, kamu buka log server — dan tidak menemukan error apapun. Semua request masuk, semua response keluar, tapi latency naik dua kali lipat. Log bilang "OK". User bilang "rusak". Siapa yang benar?
User benar. Dan ini adalah batas dari monitoring berbasis log semata.
Tiga Pilar Observability
Observability — kemampuan memahami kondisi sistem dari output-nya — biasanya dibangun dari tiga sinyal berbeda. Ketiganya saling melengkapi, bukan saling menggantikan.
1. Logs — Narasi Kejadian
Log adalah catatan kejadian diskrit: request masuk, error terjadi, user login berhasil. Berguna untuk debugging spesifik ("apa yang terjadi pada request ID ini?"), tapi buruk untuk melihat tren dan korelasi lintas service.
Masalah umum dengan log:
- Terlalu banyak noise jika tidak distrukturkan dengan baik.
- Mahal disimpan dan di-query dalam volume besar.
- Tidak menunjukkan seberapa sering sesuatu terjadi — hanya bahwa itu terjadi.
# Log yang kurang berguna
[INFO] Request processed
# Log yang lebih berguna (structured logging)
{
"level": "info",
"timestamp": "2026-06-05T09:12:34Z",
"service": "payment-api",
"trace_id": "abc123",
"user_id": "u-456",
"endpoint": "/checkout",
"duration_ms": 834,
"status": 200
}
2. Metrics — Angka yang Bisa Diagregasi
Metrics adalah pengukuran numerik yang dikumpulkan secara periodik: berapa request per detik, berapa persen CPU terpakai, berapa rata-rata latency. Metrics efisien secara storage dan sangat baik untuk alerting dan visualisasi tren.
Empat tipe metrics yang paling berguna (RED + USE method):
- Rate: berapa request per detik masuk ke service.
- Errors: berapa persen request yang gagal.
- Duration: seberapa lama request diselesaikan (p50, p95, p99).
- Utilization: seberapa penuh resource dipakai (CPU, memory, connection pool).
3. Traces — Perjalanan Sebuah Request
Distributed tracing melacak perjalanan satu request melewati semua service yang terlibat. Ini yang hilang ketika kamu punya 10 microservice dan request lambat tapi tidak tahu di mana tepatnya.
Dengan trace, kamu bisa melihat: "request ini menghabiskan 800ms, rinciannya: 20ms di API gateway, 15ms di auth service, 750ms di database query di user-service." Tanpa trace, kamu hanya tahu total 800ms.
Kenapa Ketiganya Diperlukan Bersama?
Analoginya: bayangkan sistem kesehatan manusia.
- Metrics adalah vital sign: detak jantung, tekanan darah. Kamu lihat sekilas apakah sesuatu tidak normal.
- Traces adalah hasil rontgen atau MRI: menunjukkan struktur dan di mana ada masalah spesifik.
- Logs adalah catatan dokter: narasi detail tentang apa yang terjadi selama pemeriksaan.
Alur debugging yang efektif biasanya: alert dari metrics → temukan trace yang bermasalah → buka log di trace tersebut. Tiga sinyal, tiga pertanyaan berbeda.
Stack yang Umum Dipakai
Untuk tim yang baru mulai membangun observability stack:
| Kebutuhan | Open Source | Managed/SaaS |
|---|---|---|
| Metrics | Prometheus + Grafana | Datadog, New Relic |
| Logs | Loki + Grafana | Datadog Logs, Logtail |
| Traces | Jaeger, Tempo | Datadog APM, Honeycomb |
| Semua | Grafana Stack (LGTM) | Grafana Cloud |
OpenTelemetry adalah standar yang semakin wajib diketahui: satu SDK untuk instrumentasi logs, metrics, dan traces, yang hasilnya bisa dikirim ke backend manapun. Ini memisahkan kode instrumentasi dari pilihan vendor.
Mulai dari Mana?
Jangan langsung setup semua. Prioritaskan berdasarkan pain point saat ini:
- Belum punya apa-apa? Mulai dengan structured logging dan satu dashboard metrics dasar (request rate, error rate, latency). Ini sudah memberi 80% visibility dengan 20% effort.
- Sudah punya metrics tapi sering tidak tahu kenapa lambat? Tambahkan distributed tracing — ini yang paling transformatif untuk sistem dengan lebih dari 2-3 service.
- Sudah ada semua tapi masih susah debug? Masalahnya mungkin bukan tooling tapi kualitas instrumentasi: apakah trace ID konsisten? Apakah log punya context yang cukup?
Kesimpulan
Observability bukan tentang menginstall banyak tool. Ini tentang kemampuan menjawab pertanyaan "apa yang terjadi dengan sistem saya sekarang?" tanpa harus SSH ke server dan grep log secara manual.
Di sistem yang cukup kompleks, log saja tidak bisa menjawab pertanyaan itu. Metrics memberi tanda peringatan. Traces menunjukkan jalan. Logs menjelaskan detailnya. Ketiganya bersama membuat on-call jam 3 pagi sedikit lebih manusiawi.