Menyelidiki penyebab kesalahan halaman web merupakan tantangan, yang sering kali menjadi salah satu masalah paling umum dalam aplikasi internet. Setelah agen Application Real-Time Monitoring Service (ARMS) diinstal pada aplikasi, agen ARMS dapat secara otomatis menangkap, mengumpulkan, menghitung, dan melacak pengecualian tanpa perlu memodifikasi kode aplikasi. Anda dapat menggunakan agen ARMS untuk menemukan lokasi tepat semua pengecualian dalam aplikasi dan melakukan diagnosis daring.
Deskripsi masalah
Kesalahan halaman web, terutama yang berbentuk kesalahan 5xx, adalah salah satu masalah paling umum dalam aplikasi internet. Kesalahan 5xx biasanya terjadi di sisi server. Sisi server memiliki logika bisnis yang kompleks dan merupakan bagian yang paling rentan terhadap kesalahan dari seluruh tautan permintaan jaringan. Kesalahan di sisi server sering kali sulit dianalisis penyebabnya. Insinyur O&M atau insinyur pengembangan sering kali harus masuk ke server untuk melihat log dan mencari penyebabnya.
Gambar 1. Contoh: Log Kesalahan Umum Aplikasi Java
Untuk aplikasi dengan logika yang kurang kompleks dan waktu aktif yang singkat, operasi untuk masuk ke server guna melihat log dapat menyelesaikan sebagian besar masalah ini. Namun, metode tradisional ini sering kali tidak efektif dalam skenario berikut:
Anda ingin mengetahui waktu dan frekuensi jenis kesalahan tertentu dalam kluster aplikasi terdistribusi.
Sistem telah berjalan lama, tetapi Anda hanya ingin mengetahui pengecualian baru hari ini dibandingkan kemarin, serta pengecualian baru setelah rilis sistem dibandingkan dengan periode sebelum rilis.
Anda ingin melihat permintaan web dan parameter relevan yang terkait dengan suatu pengecualian.
Layanan Pelanggan memberikan nomor pesanan yang gagal dilakukan oleh pengguna untuk analisis penyebab kegagalan.
Solusi
Instal agen ARMS pada aplikasi. Agen ARMS dapat secara otomatis menangkap, mengumpulkan, menghitung, dan melacak pengecualian tanpa perlu memodifikasi kode aplikasi. Agen ARMS memberikan gambaran yang jelas tentang berbagai kesalahan.
Langkah 1: Instal agen ARMS
Aplikasi dapat dipantau secara menyeluruh hanya setelah Anda menginstal agen ARMS. Pilih salah satu metode berikut untuk menginstal agen ARMS.
Untuk informasi lebih lanjut tentang cara menginstal agen ARMS untuk aplikasi Java, lihat Instal Manual Agen ARMS.
Untuk informasi lebih lanjut tentang cara menginstal agen ARMS untuk aplikasi dalam kluster Kubernetes Layanan Kontainer, lihat Instal Agen ARMS untuk Aplikasi Java yang Diterapkan di ACK atau ACS.
Untuk informasi lebih lanjut tentang cara menginstal agen ARMS untuk aplikasi dalam kluster Kubernetes sumber terbuka, lihat Instal Otomatis Agen ARMS dalam Kluster Kubernetes Sumber Terbuka.
Langkah 2: Lihat statistik pengecualian aplikasi
Agen ARMS yang telah diinstal mengumpulkan dan menampilkan waktu respons rata-rata, jumlah permintaan, kesalahan, instans real-time, acara garbage collection (GC) penuh, kueri SQL lambat, pengecualian, dan panggilan lambat dari aplikasi dalam periode waktu yang dipilih. Agen ARMS juga menunjukkan bagaimana metrik ini berubah dari hari ke hari dan minggu ke minggu. Lakukan langkah-langkah berikut untuk melihat statistik pengecualian aplikasi:
Masuk ke Konsol ARMS.
Di panel navigasi di sebelah kiri, pilih .
Di bilah navigasi atas, pilih wilayah tempat aplikasi Anda diterapkan.
Di halaman Applications, klik nama aplikasi Anda.
Di halaman Application Overview, klik tab Overview. Di tab Ikhtisar, jumlah total pengecualian dan bagaimana angka tersebut berubah dari hari sebelumnya dan minggu sebelumnya ditampilkan di bagian bawah.
Gambar 2. Jumlah Pengecualian

Gulir ke Exception Type di bagian Statistics Analysis di bagian bawah tab Overview. Di sini Anda dapat melihat jumlah kejadian untuk setiap jenis pengecualian.
Gambar 3. Jumlah Kejadian Setiap Jenis Pengecualian

Di panel navigasi di sebelah kiri, klik Application Details. Di halaman Detail Aplikasi, klik tab Exception Analysis di panel sebelah kanan untuk melihat grafik statistik pengecualian, jumlah kesalahan, dan tumpukan pengecualian.
Gambar 4. Tab Analisis Pengecualian

Langkah 3: Diagnosis penyebab pengecualian
Statistik pengecualian aplikasi saja tidak cukup untuk menemukan penyebab pengecualian. Tumpukan pengecualian dalam log berisi potongan kode untuk suatu panggilan, namun tidak mencakup informasi hulu dan hilir lengkap serta parameter permintaan dari panggilan tersebut. Teknologi peningkatan bytecode dari agen ARMS memungkinkan Anda menangkap snapshot panggilan hulu dan hilir lengkap untuk pengecualian, dengan dampak minimal terhadap performa. Kemudian, Anda dapat mengidentifikasi penyebab spesifik dari pengecualian.
Di tab Exception Analysis, temukan jenis pengecualian yang ingin Anda diagnosa, dan klik Interface Snapshot di kolom Actions.
Di tab Interface Snapshot, informasi jejak panggilan terkait dengan jenis pengecualian ini ditampilkan.
Di tab Interface Snapshot, klik TraceId dari panggilan bermasalah.
CatatanUntuk informasi lebih lanjut tentang cara menemukan jejak panggilan bermasalah, lihat Kueri Jejak.
Gambar 5. Tab Snapshot Antarmuka

Di halaman yang muncul, lihat informasi jejak tentang panggilan bermasalah. Di kolom Method Stack, klik ikon kaca pembesar untuk melihat tumpukan metode yang dipanggil. Dengan cara ini, Anda dapat memperoleh informasi konteks tentang panggilan bermasalah ini.
Gambar 6. Informasi Jejak Lengkap dari Panggilan Bermasalah

Pada titik ini, penyebab pengecualian ditemukan. Ini membantu Anda secara efektif dalam optimasi kode selanjutnya. Anda juga dapat kembali ke tab Interface Invocation untuk melihat panggilan bermasalah lainnya dalam daftar dan menyelesaikan pengecualian terkait satu per satu.
Apa yang harus dilakukan selanjutnya
Untuk mencegah diagnosis pasif setelah pengecualian terjadi, Anda juga dapat menggunakan fitur peringatan ARMS untuk membuat peringatan untuk API tertentu atau semua API. Ini memastikan bahwa tim O&M menerima notifikasi segera setelah pengecualian terjadi. Untuk informasi lebih lanjut tentang cara membuat peringatan, lihat Aturan Peringatan.