Observabilitas

Observabilitas adalah kemampuan untuk memahami apa yang terjadi di dalam sebuah sistem dengan melihat sinyal-sinyal eksternalnya. Ini adalah kebiasaan melihat hubungan sebab-akibat sebelum ia berubah menjadi gejala. Ia adalah bagian dari praktik rekayasa yang mengubah «ada yang rusak» menjadi «kami tahu persis apa yang rusak dan mengapa». Kami membangun proyek-proyek kami sendiri, dan penting bagi kami untuk menyadari masalah lebih dulu daripada pengguna. Idealnya pada saat ketika itu masih sekadar penyimpangan kecil dari sebuah metrik, jauh sebelum ia berubah menjadi insiden dengan panggilan telepon di tengah malam.

Sinyal
Konteks
Disiplin

Apa yang kami anggap sebagai observabilitas yang baik

Observabilitas yang baik menjawab pertanyaan «mengapa dan tepat di mana». Ia menerangi jalur pengguna, menunjukkan degradasi, menemukan regresi setelah peluncuran, memberi kesempatan untuk melakukan rollback dengan tenang. Ia diam pada hal-hal sepele dan berbicara dengan lantang ketika benar-benar diperlukan. Observabilitas yang buruk adalah sepuluh peringatan yang tidak dilihat siapa pun, dasbor dengan tiga puluh grafik yang di dalamnya tidak ada yang bisa ditemukan, log dalam teks datar yang tidak bisa disaring. Yang baik adalah tiga metrik yang benar-benar menggambarkan kesehatan sistem, disertai log terstruktur yang pencariannya memakan hitungan detik. Kami menyukai pendekatan «tiga pilar» — metrik, log, jejak. Metrik menjawab «apa yang terjadi secara rata-rata», log menjawab «apa yang terjadi pada saat tertentu», jejak menjawab «bagaimana sebuah permintaan melewati sistem». Setiap pilar berguna dengan sendirinya. Keajaiban dimulai ketika mereka saling terhubung: dari peringatan metrik kamu melompat ke log, dari log ke jejak, dari jejak ke kode.

Pemantauan frontend pribadi

Kecintaan tersendiri kami adalah pemantauan frontend pribadi. Kamu melihat kesalahan dan performa yang sesungguhnya di peramban, sementara data tetap berada di dalam infrastrukturmu. Tanpa pengiriman ke layanan pihak ketiga, tanpa ketergantungan tambahan, tanpa membuat penggunamu menjadi lalu lintas untuk model periklanan milik orang lain. Kami merakit stack berbasis Grafana Faro, OpenTelemetry, dan backend kami sendiri untuk menerima peristiwa. Solusi seperti ini lebih mahal daripada menyambung SaaS dalam lima menit. Setahun kemudian kamu memiliki infrastruktur yang bekerja tanpa ketergantungan eksternal, tanpa batas peristiwa, dengan biaya kepemilikan yang dapat diprediksi.

Satu gambaran utuh

Ketika sinyal backend dan frontend hidup bersama, kamu berhenti menjahit data dengan tangan dan mulai melihat seluruh sistem sekaligus.

Peringatan sebagai praktik rekayasa

Mengatur peringatan itu mudah. Menyetelnya agar hanya menyala ketika tindakan benar-benar diperlukan itu sulit. Kami mengikuti aturan: peringatan yang menyala dan tidak menuntut tindakan apa pun adalah peringatan yang buruk. Mungkin ambangnya ditempatkan di luar tempatnya. Mungkin metriknya dipilih secara kurang tepat. Mungkin masalah sudah selesai secara otomatis, dan si manusia menerima pemberitahuan dengan sia-sia. Karena itu di tempat kami, setiap peringatan melewati saringan: apa yang tepatnya dilanggar, mengapa ini penting, tindakan apa yang diharapkan, ke mana harus melihat. Dengan jawaban yang jelas untuk pertanyaan-pertanyaan ini, peringatan tersebut tetap ada. Peringatan semacam itu jarang menyala dan selalu tepat sasaran.

Bagaimana hal ini tampak dalam proyek-proyek kami

Kami mengumpulkan sinyal sedemikian rupa sehingga membantu pengambilan keputusan: eksperimen apa yang akan dilakukan, apa yang akan dioptimalkan, di mana letak bottleneck, berapa biaya sebuah kesalahan. Di tempat-tempat yang diperlukan, kami menambahkan cara cepat untuk menandai peristiwa dan eksperimen, demi menggantikan keyakinan dengan pengetahuan. Pada produk dengan lalu lintas pengguna, secara default kami memasang panel dengan Core Web Vitals, rincian per negara dan perangkat, pandangan terpisah ke «ekor» distribusi — sebab nilai rata-rata hampir selalu berbohong. Pada layanan backend, kami punya tracing yang melintasi seluruh rantai, tanpa itu tidak mungkin memahami mengapa sebuah permintaan tertentu memakan waktu tujuh detik. Jika kamu ingin berpindah dari «kelihatannya memburuk» ke «ini metriknya, ini penyebabnya, ini saat regresinya» — itu justru gaya kami.

Status

Kompetensi ini aktif dan tumbuh bersama proyek-proyek kami — karena tanpa observabilitas, sistem kompleks mana pun cepat berubah menjadi perjalanan tersesat. Kami siap mengambil proyek dari nol (memasang stack, mengonfigurasi peringatan, mengajari tim) dan tugas untuk mengurai kebun binatang dasbor yang sudah ada: apa yang dipertahankan, apa yang dihapus, apa yang diganti.

Berikutnya
Pencarian Alkitab

Pencarian Alkitab

Alat ortodoks untuk mencari dan mempelajari teks Alkitab. Pencarian cepat, perbandingan terjemahan, interpretasi, dan mode anak-anak.