Level 4 · Mata yang Tak Pernah Tidur
Sesi 34: Beli Mata atau Rakit Sendiri (Dynatrace vs Jalur DIY)
Bagaimana jika dua perusahaan bisa melihat gejala insiden yang persis sama, tapi satu melihatnya dalam 10 detik dan satu lagi dalam 40 menit — dan yang cepat itu membayar sepuluh kali lebih mahal?
1. Bayangkan Jika: Dua Cara Punya Mata
Bayangkan dua pabrik dengan masalah identik: mesin nomor tujuh bergetar tidak normal.
Pabrik pertama punya tim yang memasang sendiri sensor di setiap mesin, menyambungkannya ke dashboard buatan sendiri, dan menulis aturan alarm. Butuh enam bulan pemasangan. Tapi begitu jalan, setiap orang di pabrik paham cara membacanya, dan tidak ada tagihan vendor.
Pabrik kedua memanggil satu perusahaan. Tim perusahaan itu datang, memasang sensor ke dalam setiap mesin tanpa membongkar apa pun, dan menyambungkannya ke sistem mereka sendiri. Dua hari selesai. Begitu ada mesin bergetar aneh, sistemnya tidak cuma bunyi — dia langsung menunjuk: "bantalan nomor tiga, mulai aus sejak 14:22, sisa umur sekitar 40 jam".
Sekarang pertanyaan yang jujur: yang mana lebih benar? Jawabannya tergantung pada apa yang lebih langka di perusahaan itu — waktu engineer atau uang.
2. Apa yang Sebenarnya Terjadi
2.1 Dua Jalur, Bukan Dua Produk
Bab ini tidak membandingkan dua merek. Dia membandingkan dua jalur strategi observability, yang diwakili oleh dua contoh:
- Jalur beli: Dynatrace (wakil dari kelas platform observability komersial terintegrasi).
- Jalur rakit: OpenTelemetry + Prometheus + Loki + Tempo + Grafana (wakil dari kelas yang dibangun dan dikelola sendiri).
Keduanya bisa menang. Yang salah adalah memilih tanpa sadar sedang membeli apa.
2.2 Jalur Beli: Dynatrace
OneAgent adalah inti modelnya: satu agen yang dipasang di host/container menyuntikkan instrumentasi ke dalam aplikasi secara otomatis. Engineer tidak menambah baris kode. Nol perubahan aplikasi, nol rilis ulang. Inilah alasan ekonomi terbesarnya — bukan fitur, tapi tidak adanya pekerjaan instrumentasi manual.
Beberapa kemampuan yang jadi ciri khas:
| Kemampuan | Apa artinya praktis |
|---|---|
| OneAgent auto-instrumentation | Instrumentasi tanpa mengubah kode; cakupan langsung luas sejak hari pertama |
| PurePath | Satu request utuh direkam lintas layanan — analog trace tapi dengan capture yang jauh lebih lengkap |
| Davis AI | Analisis kausalitas untuk menunjuk akar masalah, bukan sekadar menembakkan alert |
| Grail + DQL | Penyimpanan dan bahasa query yang dirancang untuk volume observability besar tanpa memisahkan metrik, log, dan trace |
| Topology otomatis | Ketergantungan antar komponen ditemukan sendiri oleh agen, tanpa dokumentasi manual |
Biayanya berbasis per host dan per volume data — sehingga setiap node baru dan setiap lonjakan log terasa langsung di tagihan. Inilah trade-off intinya: makin besar skalanya, makin besar biayanya, secara linear mengikuti jumlah host.
Risiko terbesarnya bukan harga, tapi vendor lock-in dalam dua arah: 1. Keahlian tim berpindah ke alat itu, bukan ke konsepnya. 2. Data dan konfigurasi sulit dipindahkan. Keluar dari platform menjadi proyek besar.
2.3 Jalur Rakit: OTel + Prometheus + Loki + Tempo + Grafana
Di sisi lain ada jalur terbuka:
| Komponen | Peran |
|---|---|
| OpenTelemetry (OTel) | Standar dan SDK untuk menghasilkan metrik, log, dan trace; vendor-netral |
| Prometheus | Penyimpanan dan query metrik (model pull, bahasa PromQL) |
| Loki | Penyimpanan log yang ringan dan mengindeks label, bukan isi teks |
| Tempo | Penyimpanan trace terdistribusi |
| Grafana | Antarmuka tunggal yang menyatukan ketiganya |
Kelebihannya konkret: biaya infrastruktur umumnya jauh lebih rendah pada skala besar, data tetap milikmu, dan keahlian yang didapat tim adalah keahlian konsep observability — yang berlaku di mana pun.
Biayanya juga konkret dan sering diremehkan:
- Beban operasional menumpuk di timmu. Upgrade, scaling penyimpanan, tuning retention, memperbaiki alert yang berisik — semuanya pekerjaan internal.
- Instrumentasi manual. Kamu harus menyentuh kode atau pustaka untuk memberi nama span, memilih atribut, menyebarkan
traceparent. Cakupan jadi selebar apa yang kamu kerjakan, bukan otomatis. - Sampling hampir wajib. Menyimpan semuanya terlalu mahal, jadi kamu harus memutuskan: rekam 1%, 10%, atau semuanya dengan biaya tinggi. Setiap keputusan sampling adalah kompromi yang bisa menyembunyikan bug langka.
- Kamu membangun korelasi sendiri. Menyatukan metrik → trace → log supaya bisa mengklik dari "p99 naik" ke "query ini" itu pekerjaan integrasi, bukan bawaan.
2.4 Tiga Sumbu Trade-off yang Nyata
Perbandingan jujur bukan "cepat vs murah", tapi tiga sumbu:
Sumbu 1 — Auto-instrumentation vs instrumentasi manual. Otomatis: cakupan luas sejak hari pertama, tanpa menyentuh kode. Manual: kontrol penuh atas apa yang diukur, tanpa ketergantungan vendor. Yang pertama menang kalau waktu engineer langka; yang kedua menang kalau butuh kontrol presisi dan ingin tetap portabel.
Sumbu 2 — Capture penuh vs sampling. Capture penuh: bug langka tetap terekam, tapi biaya penyimpanan bisa meledak saat trafik naik. Sampling: biaya terkendali, tapi kamu berjudi bahwa bug yang penting bukan bagian dari sampel yang dibuang. Ini pilihan kebijakan, bukan pilihan teknis.
Sumbu 3 — Dukungan vendor vs kemandirian tim. Vendor: ada pihak yang bisa dihubungi pukul tiga pagi, ada SLA, ada rilis fitur. Kemandirian: tidak ada tagihan mengejutkan dan tidak ada lock-in, tapi kalau pipa observability-mu rusak, tidak ada tiket yang bisa dinaikkan — kamu sendiri yang memperbaiki.
2.5 Kenapa Level 4 Ada Sebagai Level Terpisah
Level 3 (Sesi 22–31) berbicara soal kegagalan: retry storm, circuit breaker, cascading failure, dan observability sebagai konsep. Level 4 berbicara soal cara melihat: siapa mengangkut, berapa harganya, siapa menampilkan.
Perbedaan itu penting bagi performance tester, karena pipa observability sendiri bisa jadi sumber insiden:
- Agent yang kehabisan memori di node produksi.
- Buffer log yang penuh, lalu dibuang diam-diam (Sesi 32).
- Index log yang jadi read-only dan menjatuhkan aplikasi (Sesi 33).
- Vendor yang mengirim tagihan mengikuti volume insiden.
- Query dashboard yang membebani cluster untuk semua orang.
Ciri tim yang sudah matang: pipa observability mereka punya metrik, alarm, dan load test seperti layanan produksi lainnya.
3. Bagaimana Jika Kita Coba... (Solusi Naif)
"Pakai yang gratis saja, pasti lebih murah."
Gratis dalam lisensi, bukan gratis dalam waktu. Setiap jam tim menghabiskan waktu merawat pipeline adalah jam yang tidak dipakai menguji sistem. Pada skala kecil, jalur rakit jelas menang. Pada skala besar dengan tim kecil, perhitungannya bisa berbalik.
"Pakai platform komersial saja, semua beres."
Semua beres sampai instrumen tagihan berdetak dengan volume. Platform komersial juga tidak menghapus kebutuhan memahami konsep: kalau kamu tidak tahu apa itu p99 atau trace, dashboard yang indah tidak menolong siapa pun.
"Pakai keduanya."
Ini justru strategi yang masuk akal di banyak perusahaan: platform komersial untuk tim yang butuh jawaban cepat, dan OTel sebagai lapisan instrumentasi portabel supaya data tidak sepenuhnya terikat pada satu vendor. Yang harus dihindari adalah menjalankan keduanya penuh tanpa disengaja — membayar dua kali untuk cakupan yang sama.
4. Nama Resminya
| Istilah | Arti praktis |
|---|---|
| Dynatrace | Platform observability komersial dengan auto-instrumentation |
| OneAgent | Agen pemasang tunggal yang menginstrumentasi aplikasi tanpa mengubah kode |
| Auto-instrumentation | Instrumentasi dilakukan platform, bukan developer |
| PurePath | Rekaman satu request lintas layanan; analog trace dengan cakupan lebih luas |
| Davis AI | Mesin analisis kausal untuk menunjuk akar masalah |
| Grail / DQL | Penyimpanan dan bahasa query untuk data observability skala besar |
| Vendor lock-in | Ketergantungan yang membuat perpindahan platform mahal |
| OpenTelemetry (OTel) | Standar terbuka instrumentasi metrik, log, trace |
| Prometheus / PromQL | Penyimpanan dan bahasa query metrik |
| Loki | Penyimpanan log dengan index label, bukan index isi |
| Tempo | Penyimpanan trace terdistribusi |
| Grafana | Antarmuka penyatu metrik, log, trace |
| Sampling | Merekam sebagian data saja karena kendala biaya |
| MTTD / MTTR | Waktu deteksi / waktu pemulihan insiden |
5. Di Dunia Kita
Pertanyaan yang harus dijawab sebelum memilih jalur:
- Siapa yang jaga jam tiga pagi? Kalau ada pihak yang bisa dihubungi, itu bernilai dan harganya wajar. Kalau timmu memang sudah kuat operasionalnya, jalur rakit sah.
- Berapa lama waktu engineer untuk memasang instrumentasi manual di 40 layanan? Kalau jawabannya enam bulan dan proyeknya butuh observabilitas bulan depan, otomatisasi adalah fitur termahal yang layak dibeli.
- Berapa pertumbuhan volume log tiga tahun ke depan? Ini yang menentukan apakah model biaya per-host-per-GB masih masuk akal.
- Apakah ada regulasi yang melarang data keluar dari lingkunganmu? Ini sering memaksa jalur rakit tanpa bisa ditawar.
- Apakah data bisa diekspor dengan mudah? Minta jawaban tertulis sebelum masuk, bukan saat mau keluar.
6. Lensa Performance Tester
Ini sesi yang paling langsung menyentuh pekerjaan performance tester, karena jalur observability adalah beban tambahan pada sistem yang sedang diuji.
- Overhead agent di bawah beban. Ukur konsumsi CPU, memori, dan dampak latensi agen saat sistem berjalan pada beban puncak, bukan saat idle. Ini angka yang paling sering diminta dan paling jarang tersedia.
- Trace propagation completeness. Verifikasi bahwa
traceparentbertahan di 100% layanan, tanpa span yang terputus. Satu hop yang putus menghilangkan visibilitas pada bagian paling penting. - Observability overhead under load. Pastikan collector/agent tetap di bawah ambang yang disepakati (contoh target: <2% CPU, memori terbatas) bahkan saat trafik 20.000 QPS.
- Drop rate dan buffer drain time. Berapa lama pipa bertahan saat backend observability mati total sebelum membuang data?
- MTTD & MTTR sebelum vs sesudah. Ini metrik pembenaran investasinya. Tanpa angka pembanding, klaim "observability mempercepat pemulihan" hanya pendapat.
- Uji negatif yang wajib: matikan backend observability saat load test berjalan; injeksi disk penuh pada cluster log; bombardir query dashboard yang mahal. Ketiganya menguji apakah pipa observability akan menjatuhkan sistem produksi — atau hanya kehilangan data.
7. Pertanyaan untuk Ronde Berikutnya
"Sekarang kita bisa melihat semua yang terjadi. Pertanyaan terakhir bukan soal alat, tapi soal orang: kita punya 31 sesi pengetahuan, dan tim yang berbeda-beda tingkatnya. Bagaimana caranya ini semua benar-benar melekat — dan pertanyaan baku apa yang harus diajukan seorang performance tester setiap kali ada design doc baru mendarat di mejanya?"
(Sesi 30 sudah menyiapkan daftar pertanyaan bakunya — inilah tempat seluruh Level 0–4 disatukan kembali.)