Praktik mengelola observabilitas melalui antarmuka pengguna (UI) atau yang dikenal sebagai click-ops telah menciptakan beban teknis yang signifikan bagi tim engineering modern. Seperti yang diungkapkan oleh Dr. Samson Tanimawo, seorang tim dengan 200 dashboard sering kali tidak mengetahui siapa pemiliknya, separuhnya rusak, dan sisanya menampilkan data yang sudah usang. Masalah ini semakin parah karena click-ops debt berkembang lebih cepat dibandingkan technical debt pada kode aplikasi, menciptakan ketidakpastian saat insiden terjadi dan tim butuh visibilitas cepat.
Konsep Observability as Code menawarkan solusi fundamental dengan memindahkan definisi dashboard, alert, dan Service Level Objectives (SLO) ke dalam repositori Git berdampingan dengan kode layanan. Menggunakan Terraform sebagai Infrastructure as Code (IaC), tim dapat mendefinisikan resource seperti datadog_dashboard, datadog_monitor, dan datadog_slo secara deklaratif. Pendekatan ini memastikan bahwa setiap kali layanan di-deploy, observabilitasnya pun ikut ter-deploy secara otomatis, menghilangkan kesenjangan antara perubahan kode dan visibilitas sistem.
Keuntungan jangka panjang dari pendekatan ini bersifat kumulatif dan transformatif. Pertama, ownership menjadi jelas karena file konfigurasi memiliki entry CODEOWNERS dan mewajibkan pull request review. Kedua, dashboard memperbarui dirinya sendiri saat terjadi refactoring nama layanan — Terraform menyebarkan perubahan ke semua dashboard terkait. Ketiga, drift detection menjadi mungkin: ketika seseorang mengubah dashboard melalui UI, terraform plan akan mendeteksi ketidaksesuaian. Keempat, perubahan alert melewati proses review PR, menghilangkan misteri "siapa yang set threshold ini?" yang sering menghantui tim on-call.
Ekosistem tooling telah mendukung pendekatan ini di berbagai platform observabilitas utama. DataDog menyediakan provider Terraform resmi dengan resource untuk monitor, dashboard, dan SLO. Grafana menawarkan provider grafana/grafana untuk dashboard dan alert rule. Prometheus mengadopsi pendekatan YAML di Git yang di-deploy via ArgoCD. New Relic pun memiliki provider newrelic/newrelic untuk alert policy dan dashboard. Kunci kesuksesannya adalah memilih satu source of truth dan tidak mencampurnya, menghindari fragmentasi yang justru menambah kompleksitas.
Contoh implementasi nyata menunjukkan kekuatan modularisasi. Sebuah modul observabilitas standar dapat menerima parameter seperti nama layanan, channel Slack, severity map, dan SLO targets, lalu menghasilkan tiga dashboard, delapan alert, dua SLO, binding channel Slack, dan escalation policy PagerDuty hanya dengan satu pemanggilan modul. Standarisasi ini mengurangi duplikasi usaha dan memastikan konsistensi praktik observabilitas di seluruh organisasi, terutama untuk golden signals (latency, traffic, errors, saturation) dan metodologi RED/USE.
Namun, tantangan terbesar bukanlah pada sisi teknis kode, melainkan pada perubahan budaya dan proses. Migrasi dashboard click-ops yang ada membutuhkan anggaran waktu sekitar dua minggu per layanan. Membiasakan engineer mengedit YAML atau HCL alih-alih UI memerlukan tiga bulan pengingat berkelanjutan. Beberapa platform memungkinkan pembatasan edit UI dengan mode read-only, namun hal ini memerlukan keputusan organisasional. Reviewer PR juga perlu memiliki konteks domain untuk menilai perubahan alert dengan benar, yang berarti investasi pada knowledge sharing menjadi krusial.
Anti-pattern yang harus dihindari adalah menulis Terraform untuk setiap custom chart yang diinginkan engineer, yang mengarah pada modul dashboard berukuran 500 baris yang tidak paham siapa pun. Sebaliknya, definisikan dashboard standar (golden signals, RED/USE, SLO burn rate) sebagai modul yang reusable. Biarkan engineer menambahkan dashboard eksploratif di UI jika diperlukan, namun tandai sebagai "explore-only" — tidak layak untuk alert. Prinsipnya: observabilitas inti sebagai kode, eksplorasi eksperimental di UI.
Strategi migrasi bertahap terbukti efektif: minggu pertama pilih satu layanan dan konversikan dashboard ke Terraform; minggu kedua tambahkan alert dan SLO; minggu ketiga hapus versi UI; minggu keempat buat modul dari pola yang terbentuk. Bulan kedua perluas ke 10 layanan lain; bulan ketiga wajibkan modul untuk semua layanan baru. Enam bulan kemudian, click-ops debt terhapus dan observabilitas menjadi reproducible. Bagi industri teknologi Indonesia yang berkembang pesat, adopsi praktik ini bukan sekadar modernisasi tooling, melainkan fondasi untuk membangun sistem yang resilient, auditable, dan siap skala.