Mengenal Pemantauan Sintetik (Synthetic Monitoring)

Ariya Hidayat
Hyperjump Tech
Published in
5 min readMar 29, 2021

Beberapa menit sebelum modul Eagle dari Apollo 11 mendarat di bulan, lampu peringatan dari AGC (Apollo Guidance Computer) berkedip-kedip, diiringi suara frekuensi rendah yang khas dengan situasi darurat, dan sudah barang tentu menerbitkan (sedikit) kepanikan baik untuk kru di kabin dan juga yang memantau dari bumi. Kode alarm 1202.

Neil Armstrong meminta kru darat di Houston, Texas untuk menjabarkan masalah terkait kode alarm 1202 ini. Apakah prosedur pendaratan harus dibatalkan? Atau lanjut saja? Inilah menit-menit bersejarah sekaligus menegangkan dalam peradaban teknologi masa itu.

Photo by Brian McGowan on Unsplash

Tim NASA di Houston mufakat bahwa pendaratan boleh diteruskan. Beberapa menit setelahnya, Neil Armstrong memutuskan mengambil alih komando dari autopilot dan Eagle pun mendarat dengan mulus di permukaan bulan. One small step for man, one giant leap for mankind.

Neil Armstrong terpilih untuk masuk program Apollo karena tersohor memiliki saraf baja. Maklum, profesi sebelumnya adalah pilot untuk pesawat percobaan di angkatan udara Amerika Serikat. Neil Armstrong dikenal selalu tenang dan tidak panik dalam situasi genting bagaimanapun juga. Akan tetapi, menit-menit menjelang pendaratan Eagle, terlebih dipicu dengan kode alarm 1202, adalah menjadi satu momen langka tatkala jantungnya terpacu mencapai 150 detak per menit.

Apakah kode alarm 1202 yang cenderung misterius ini? Astronot Apollo ternyata belum pernah menjumpai kode alarm tersebut selama digembleng secara intensif dalam program pelatihan dengan simulator. Setelah belakangan diusut, ternyata kode alarm 1202 ini mengindikasikan bahwa AGC sedang kewalahan, alias overloaded. “Executive Overflow”, begitulah definisi resminya. Mengapa demikian? Ternyata ada masalah pada catu daya untuk radar (yang dihidupkan Neil Armstrong beberapa saat sebelumnya) dan mengakibatkan radar tersebut memompa terlalu banyak data untuk si komputer (AGC). Walaupun AGC memproses dan menganalisa data dari si radar sebagai background job, ternyata lama-lama AGC kewalahan juga (ingat, ini teknologi komputer tahun 1960-an ya!).

Untunglah, dari jauh-jauh hari, tim yang merancang AGC sadar akan peluang terjadinya masalah overloading ini dan sudah mengimplementasikan sebuah sistem pemantauan (monitoring), di jaman sekarang dikenal sebagai watchdog, yang mengawasi eksekusi semua program yang harus dijalankan oleh AGC. Pemantauan ini diimplementasikan dalam bentuk perangkat keras (hardware) yang bekerja tandem dengan si perangkat lunak (software), yakni sebagian besar komponen AGC itu sendiri.

Begitu kode alarm 1202 muncul, secara otomatis akan terjadi reboot. AGC kembali pulih dan pendaratan Apollo tetap lancar jaya.

Andaikan Eagle tidak dikomandoi seorang astronot setenang Neil Armstrong dan pemantauan AGC tidak direncanakan oleh tim engineering yang visioner, apakah manusia tidak akan pernah menaklukkan bulan?

Dalam hal-ihwal pengoperasian layanan web, monitoring (pemantauan) adalah terminologi teknis yang sering disebut-sebut. Sayangnya, hampir tiap pihak punya gambaran dan harapan tersendiri, manakala sebuah kata monitoring dicetuskan. Karena itu, marilah kita lebih sigap dan cerdas dalam berkomunikasi dan senantiasa merincikan jenis monitoring yang sedang dikupas. Jangan hanya menggunakan istilah yang generik!

Synthetic monitoring, kurang lebih bisa diartikan sebagai pemantuan sintetis, adalah ragam alat bantu yang bisa digunakan untuk mensimulasikan (makanya disebut sebagai sintesis) transaksi HTTP yang digunakan untuk menembak sebuah layanan web atau API. Simulasi tersebut dipicu guna memperolah informasi dan metrik yang menggambarkan kinerja server penyedia layanan, tanpa perlu mengetahui bagaimana perangkat keras dan perangkat lunak yang mentenagai server tersebut. Lazimnya, ini tergolong ke dalam kelompok black-box testing.

Simulasi transaksi bisa bermanfaat untuk memastikan hal-hal berikut ini.

Performance (kinerja). Dalam waktu berapa lama server memberikan respons? Berapa jumlah data (payload) yang ditransfer? Bagaimana kalau server dibombardir ratusan bahkan ribuan transaksi per detik?

Availability (ketersediaan). Apakah layanan tersebut tetap berfungsi setiap saat (24 jam sehari dan 7 hari seminggu) atau adakah masa-masa ketika responsnya cenderung lemot?

Functionality (fungsionalitas). Tim DevOps baru merilis versi terbaru. Apakah ada fungsi-fungsi dasar yang dulunya jalan sekarang justru malah berantakan (regression)?

Transaksi sintetis seperti melengkapi fungsi pengecekan (QA) secara manual. Nah, karena sifatnya yang sintetis dan tentunya otomatis, synthetic monitoring lumrahnya divariasikan dengan parameter-parameter sebagai berikut:

  • Berkala. Bisa tiap menit, tiap 5 menit, ataupun interval lainnya (bergantung kebutuhan). Misalnya tiba-tiba ada kesalahan deployment, monitoring berkala bisa memberikan peringatan secara lebih awal.
  • User Agent yang berbeda. Andainya sebuah layanan web harus mendukung jenis browser yang berbeda, baik desktop vs mobile, maka diperlukan simulasi transaksi HTTP menggunakan semua kombinasi browser-browser tersebut.
  • Kanal komunikasi dengan kecepatan yang berbeda-beda. Tidak semua orang telah dianugerahkan kesempatan menggunakan sambungan serat optik kecepatan tinggi. Perlu juga dipantau bagaimana sebuah layanan web ketika sambungannya hanya lewat WiFi ala kedai kopi, berbagi hotspot di ponsel, ataupun malah hanya 3G di daerah-daerah tertentu.
  • Lokasi geografis. Masih terkait dengan poin di atas, bagaimana respons yang didapat jika aksesnya dari tempat yang berbeda?

Banyak sudah tersedia layanan komersil untuk synthetic monitoring. Tetapi untuk Anda yang menggandrungi solusi open-source, yang ternama dan patut dicoba adalah WebPageTest.org. Dari situs webnya, Anda melakukan pengecekan URL apapun, selama aksesnya publik. Tentu saja, karena WebPageTest sering sekali digunakan oleh ratusan developer web di seantero dunia, bisa jadi antrinya terkadang panjang sekali. Kalaulah Anda ingin menjalankan layanan WebPageTest sendiri, bisa mencomot langsung dari proyeknya di https://github.com/WPO-Foundation/webpagetest.

Untuk kebutuhan synthetic monitoring yang lebih sederhana, alternatif lain adalah menggunakan Monika (Monitoring Berkala), sebuah proyek open-source terbaru dari tim Hyperjump. Hanya bermodalkan berkas konfigurasi sederhana dalam format JSON, Anda sudah bisa langsung memantau sekian banyak URL dan mendapatkan notifikasi bila ada masalah pada URL tersebut. Lebih rincinya, silakan langsung cermati situs web Monika di hyperjumptech.github.io/monika dan jangan lupa pencet bintang + fork untuk proyeknya di GitHub: github.com/hyperjumptech/monika.

Selamat mencoba!

Hyperjump Update!

We just launched our free and open source synthetic monitoring tool called Monika on Product Hunt! Your review and upvote are greatly appreciated! 🤝

Hyperjump is an open-source-first company providing engineering excellence service. We aim to build and commercialize open-source tools to help companies streamline, simplify, and secure the most important aspects of its modern DevOps practices.

--

--