All Products
Search
Document Center

Application Real-Time Monitoring Service:Analisis Pengecualian

Last Updated:Sep 10, 2026

Setelah Anda menginstal agen untuk aplikasi Java, ARMS mulai memantau aplikasi tersebut. Di halaman Exception Analysis, Anda dapat memfilter dan menganalisis pengecualian berdasarkan nama, antarmuka, dan host guna mengoptimalkan kode yang menyebabkan error.

Lihat analisis pengecualian

  1. Di bilah navigasi atas, pilih .

    • Di area filter cepat, Anda dapat memfilter jumlah dan daftar pengecualian berdasarkan Exception, Operation, dan Host.

    • Di area grafik tren, Anda dapat melihat frekuensi suatu pengecualian tertentu yang dilemparkan oleh aplikasi dalam rentang waktu tertentu. Pengecualian ditampilkan dalam bentuk stacked chart.

      Klik ikon image.png untuk melihat statistik metrik dalam periode waktu tertentu atau membandingkan statistik periode waktu yang sama pada tanggal berbeda. Anda juga dapat mengklik ikon image.png untuk beralih antara grafik batang dan grafik tren.

    • Di area daftar pengecualian, Anda dapat melihat nama pengecualian, jumlah kemunculannya, persentase, serta ringkasan pengecualian.

      Dari daftar pengecualian, Anda dapat melakukan operasi berikut:

      • Klik Overview di kolom Actions untuk membuka panel di sebelah kanan. Panel ini menampilkan ikhtisar pengecualian, termasuk tren jumlahnya, distribusi berdasarkan antarmuka dan instans, serta tumpukan panggilannya.

        image.png

      • Klik Traces di kolom Actions untuk melihat detail jejak. Untuk informasi lebih lanjut, lihat Trace Explorer.

Dokumen terkait

Untuk informasi lengkap mengenai metrik pemantauan aplikasi, lihat Application monitoring metrics.

FAQ

Mengapa jumlah pengecualian melebihi jumlah permintaan?

Hal ini dapat terjadi karena alasan berikut:

  • ARMS mencatat setiap pengecualian yang dilemparkan oleh metode yang diinstrumentasi. Jika beberapa metode yang diinstrumentasi melemparkan pengecualian selama satu panggilan antarmuka, ARMS mencatat masing-masingnya, sehingga menghasilkan beberapa catatan untuk satu panggilan.

  • Jika pengecualian yang sama merambat naik melalui tumpukan panggilan melalui beberapa metode yang diinstrumentasi, masing-masing metode tersebut dapat mencatat pengecualian tersebut, sehingga menghasilkan beberapa hitungan untuk satu kejadian.

Mengapa jumlah pengecualian berubah setelah upgrade?

Setiap versi agen dapat menambah atau mengurangi jumlah metode yang diinstrumentasi. Akibatnya, jumlah pengecualian yang ditangkap dari metode tersebut juga dapat bertambah atau berkurang.

Mengapa eksepsi yang tidak ditangani ditampilkan?

Pada banyak metode tingkat framework yang diinstrumentasi oleh agen, pengecualian mungkin ditangkap dan ditangani secara internal tanpa dirambatkan ke kode bisnis Anda. Agen tetap menangkap pengecualian ini meskipun aplikasi Anda tidak mengetahuinya.

Sebagai contoh, panggilan ke MongoDB menggunakan MongoTemplate mungkin tidak melemparkan error di aplikasi Anda, tetapi Anda mungkin melihat error di konsol ARMS. Hal ini karena MongoTemplate mengenkapsulasi logika retry. Ketika panggilan metode MongoTemplate mengalami timeout, operasi tersebut diulang. Pengecualian hanya dilemparkan ke pemanggil setelah beberapa kali retry gagal. Oleh karena itu, saat Anda menggunakan MongoTemplate untuk mengakses MongoDB dan terjadi retry akibat timeout, aplikasi Anda mungkin tidak melihat pengecualian, tetapi konsol ARMS akan tetap menampilkannya.

Mengapa tumpukan panggilan tidak sesuai dengan pengecualian?

Untuk meningkatkan efisiensi pemrosesan dan pelaporan data, agen ARMS menghasilkan sidik jari untuk setiap pengecualian berdasarkan nama kelasnya, tiga baris pertama tumpukan panggilannya, dan tiga baris terakhir tumpukan panggilannya. Sidik jari ini kemudian dikodekan menjadi string 64-bit menggunakan CRC64. Saat pertama kali terjadi, agen melaporkan nilai terkode dan tumpukan panggilan aslinya. Untuk kejadian identik berikutnya, hanya nilai terkode yang dilaporkan. Proses ini dapat menyebabkan ketidaksesuaian dalam dua situasi:

  • Dua pengecualian memiliki tumpukan panggilan lengkap yang berbeda tetapi memiliki nama kelas pengecualian yang sama serta tiga baris pertama dan tiga baris terakhir tumpukan panggilan yang sama. Karena logika pembuatan sidik jari, nilai terkode mereka akan identik, sehingga menyebabkan ketidaksesuaian.

  • Dua pengecualian memiliki nama kelas yang berbeda atau tiga baris pertama dan tiga baris terakhir tumpukan panggilan yang berbeda, tetapi terjadi tabrakan hash karena CRC64 adalah algoritma pengkodean non-unik. Hal ini dapat menghasilkan nilai terkode yang sama untuk pengecualian yang berbeda.

Jika salah satu situasi ini terjadi, Anda dapat menaikkan parameter similar exception stack differentiation depth di bagian Exception Advanced Filtering Configuration pada halaman Custom Configuration. Halaman konfigurasi filtering lanjutan pengecualian mencakup pengaturan berikut: Collect Plugin Exceptions (mengontrol apakah akan mengumpulkan pengecualian dari plugin), Collect All Exceptions (menginstrumentasi konstruktor pengecualian untuk menangkap semua pengecualian saat diaktifkan), Similar exception stack differentiation depth (nilai default: 2; digunakan untuk membedakan pengecualian serupa berdasarkan kedalaman stack), Exception Filtering Whitelist (pengecualian dalam daftar putih dikecualikan dari grafik terkait pengecualian), Exception Filtering Parent Class Inheritance (didukung hanya pada agen v4.1.6 ke atas), dan Exception Message Filtering.

Mengapa pengecualian lama hanya menampilkan ID?

Untuk mengoptimalkan volume pelaporan data, saat pengecualian pertama kali terjadi, ARMS mengkodekannya dan mengirimkan nilai terkode beserta nilai aslinya ke server. Server menyimpan pemetaan ini, yang kedaluwarsa setelah 30 hari. Jika aplikasi berjalan lebih dari 30 hari, nilai asli pengecualian mungkin tidak dapat lagi diambil dari nilai terkodenya.

Mengapa beberapa pengecualian tidak ditampilkan?

Secara default, agen ARMS tidak menangkap semua pengecualian. Hanya pengecualian yang dilemparkan oleh metode yang diinstrumentasi oleh agen ARMS yang dikumpulkan.

Jika Anda menggunakan agen versi 4.1.12 atau lebih baru, Anda dapat mengaktifkan plugin pengecualian di bagian Agent Switch Settings pada halaman Custom Configuration. Setelah plugin ini diaktifkan, ARMS mengumpulkan data pengecualian setiap kali instans pengecualian dibuat.