Dua Pendekatan Pengukuran dan Pemantauan Performa Web
Performa situs web bisa dikuantifikasi dengan metrik-metrik Core Web Vitals. Skor-skor yang dihasilkan dari pengukurannya membantu kita memahami di mana situs kita berada dalam hal performa. Melakukan pengukuran performa secara berkala dan melakukan pemantauan terhadapnya bisa memberi kita wawasan akan perkembangan performa situs kita, sehingga kita bisa mengidentifikasi regresi ataupun peluang-peluang perbaikan performa.
Dalam memantau performa, ada dua pendekatan yang bisa diadopsi: synthetic monitoring dan real user monitoring (RUM). Keduanya memiliki nilai kegunaan masing-masing yang saling melengkapi. Mari kita telaah masing-masing pendekatan tersebut.
Synthetic Monitoring
Synthetic monitoring atau pemantauan sintetis berarti memantau hasil pengukuran performa situs dalam lingkungan terkontrol. Lingkungan terkontrol ini biasa juga disebut 'laboratory environment'. Konsistensi pada lingkungan terkontrol tersebut sangat vital untuk dijaga demi menghasilkan data pengukuran yang valid dan dapat diandalkan.
Salah satu contoh alat pengukuran performa sintetis paling mudah diakses adalah Lighthouse, yang sudah tersaji di dalam developer tools peramban Chrome. Desain Lighthouse secara sengaja dibuat agar minim pengaturan, supaya parameter pengujiannya konsisten dan hasil pengukurannya bisa diandalkan. Hasil analisis Lighthouse menyediakan banyak indikator, tidak terbatas pada indikator-indikator performa dan Core Web Vitals.
Kapan Synthetic Monitoring Digunakan?
Hasil pengujian sintetis akan selalu menggunakan parameter-parameter yang konsisten. Misalnya, dari segi versi peramban, kecepatan internet, sampai kecepatan CPU, semua disimulasikan dengan throttling. Ini untuk menghasilkan hasil pengukuran yang dapat diandalkan (reliable), dalam artian bisa diperbandingkan dengan hasil-hasil pengukuran lainnya dari lingkungan yang sama.
Sementara itu, pada kenyataannya versi produksi dari situs kita diakses dalam situasi berbeda-beda; beda perangkat, beda peramban, beda kualitas internet, sampai beda jarak ke server. Bukankah itu berarti synthetic monitoring tidak merepresentasikan pengalaman pengguna asli?
Synthetic monitoring memang kurang akurat untuk merepresentasikan pengalaman pengguna asli. Namun, synthetic monitoring berguna untuk mendeteksi regresi atau perburukan performa situs pada tahap pengembangan. Bayangkan jika ada fitur yang baru dirilis ternyata membuat performa situs Anda menjadi lambat. Jika Anda tidak melakukan pemantauan, maka perburukan performa itu kemungkinan baru akan dideteksi saat ada komplain dari pelanggan. Padahal, jika Anda menjadikan pengukuran performa sintetis sebagai salah satu check list item sebelum melakukan deploy, atau bahkan merge suatu fitur, Anda bisa mendeteksinya lebih awal.
Contoh Alat Synthetic Monitoring
Melanjutkan contoh alat sebelumnya, salah satu contoh alat untuk synthetic monitoring adalah Lighthouse CI. Seperti yang tersirat dari namanya, Lighthouse CI adalah alat untuk otomasi dan pemantauan hasil analisis Lighthouse yang terintegrasi dengan continuous integration (CI). Dengan integrasi Lighthouse CI, Anda bisa mengatur kapan analisis Lighthouse harus dijalankan terhadap situs Anda, dan anda bisa memantau tren hasil analisis tersebut.
Real User Monitoring (RUM)
Real user monitoring, juga disebut field monitoring/measuring in the field, yaitu menelaah dan memantau data pengukuran performa dari pengguna asli. Dalam pendekatan real user monitoring, kita membuat pengguna menjalankan pengukuran performa pada perangkatnya dan mengirimkan datanya secara otomatis.
Perbedaan RUM dengan synthetic monitoring yang paling kentara adalah lingkungan pengujiannya; Jika synthetic monitoring utamanya menguji pada lingkungan pengembangan (development environment) atau staging, RUM menguji pada lingkungan produksi. Kemudian, variansi data RUM tentu akan lebih besar karena diambil dari pengguna asli, dengan berbagai variasi lingkungannya, mulai dari variasi peramban, gawai, kecepatan internet, sampai lokasi geografisnya. Dan yang tidak kalah krusial, data RUM tidak dibentuk dari kasus penggunaan yang diasumsikan programmer maupun pemilik produknya, melainkan dari perilaku pengguna asli.
Dari segi implementasi, pemantauan RUM akan memakan biaya lebih besar daripada synthetic monitoring, utamanya dari segi biaya infrastruktur. Bayangkan saja jika setiap pengguna situs Anda mengirimkan data LCP, FID, dan CLS untuk setiap laman yang ia kunjungi. Tentu biaya infrastruktur penyimpanan dan pemrosesan datanya akan lebih besar daripada synthetic monitoring.
Kapan Real User Monitoring Digunakan?
Dengan menganalisis data dari pengguna asli, pendekatan RUM lebih representatif terhadap pengalaman pengguna (UX) situs kita. Data dari RUM bisa digunakan untuk menggali wawasan tentang pengalaman yang dirasakan pengguna ketika mengunjungi situs kita. RUM memberikan wawasan yang sangat bernilai bagi organisasi dalam memahami pengalaman penggunanya, yang kemudian membantu organisasi mengidentifikasi potensi-potensi pengembangan dan optimasi performa.
Contoh Alat Real User Monitoring (RUM)
Salah satu contoh alat yang bisa digunakan untuk RUM adalah Sentry. Lebih dikenal sebagai platform untuk error logging, Sentry juga menyediakan fitur pemantauan performa dengan berbagai indikator, salah satunya dengan Core Web Vitals.
Selain itu, kita juga bisa implementasi sendiri pengukuran web vitals pada perangkat pengguna dengan pustaka web-vitals dari Google. Hasilnya kemudian bisa dikirimkan sebagai custom event ke Google Analytics untuk pemantauan. Pilihan ini memiliki keunggulan dalam keleluasaan dalam implementasi, misalnya pada laman apa saja kita harus mengirim data, metrik apa saja yang datanya perlu dikirim, dan sebagainya. Namun, tentu perlu usaha lebih banyak, yang berarti biaya lebih besar untuk mengimplementasikannya.
Jadi, Mana yang Dipilih?
Idealnya, kedua pendekatan tersebut dilakukan beriringan.
Jika Anda hanya mengandalkan RUM, maka Anda baru akan mengetahui perburukan setelah pengguna mengalaminya, dan Anda akan kesulitan mencari tahu secara pasti kapan regresi performa terjadi.
Jika Anda hanya mengandalkan synthetic monitoring, Anda akan sukar mengetahui bagaimana pengalaman pengguna asli situs Anda, yang sangat mungkin performa perangkat atau lingkungannya tidak sama dengan parameter-parameter pengujian laboratorium Anda.