Setelah menghubungkan aplikasi Java yang berjalan pada JDK 17 ke Application Real-Time Monitoring Service (ARMS), Konsol ARMS mungkin tidak menampilkan data pemantauan. Masalah ini terjadi ketika versi Agen ARMS tidak mendukung JDK 17 atau ketika ketergantungan Servlet API yang usang mengganggu logika instrumentasi agen.
Penyebab 1: Versi Agen ARMS tidak mendukung JDK 17
Dukungan JDK 17 diperkenalkan pada Agen ARMS V2.8.3. Jika agen Anda lebih lama dari V2.8.3, agen tersebut tidak dapat melakukan instrumentasi aplikasi yang berjalan pada JDK 17, sehingga tidak ada data pemantauan yang dikumpulkan.
Persyaratan versi
| Framework aplikasi | Versi minimum Agen ARMS |
|---|---|
| JDK 17 (tanpa Spring Boot 3.0) | V2.8.3 |
| JDK 17 dengan Spring Boot 3.0 | V2.9.1.2 |
Agen ARMS V2.8.3 mendukung JDK 17 tetapi tidak mendukung Spring Boot 3.0. Spring Boot 3.0 memerlukan JDK 17. Jika aplikasi Anda menggunakan Spring Boot 3.0, lakukan upgrade ke Agen ARMS V2.9.1.2 atau versi yang lebih baru.
Solusi
Lakukan upgrade Agen ARMS ke versi yang sesuai dengan framework aplikasi Anda. Untuk prosedur upgrade, lihat dokumentasi upgrade Agen ARMS.
Verifikasi perbaikan
Mulai ulang aplikasi Anda setelah upgrade.
Periksa log startup Agen ARMS untuk memverifikasi bahwa versi agen yang benar telah dimuat. Cari entri log yang berisi nomor versi agen.
Buka Konsol ARMS dan buka halaman pemantauan aplikasi Anda.
Konfirmasi bahwa data pemantauan muncul dalam beberapa menit.
Penyebab 2: Ketergantungan Servlet API yang usang menyebabkan instrumentasi salah
Mulai Spring Boot 3.0, Apache Tomcat tersemat ditingkatkan ke Tomcat 10, yang menggunakan Servlet 5.0. Versi ini mengubah nama paket Servlet API dari javax menjadi jakarta.
Agen ARMS menggunakan nama paket Servlet API untuk menentukan lokasi penerapan instrumentasi. Jika ketergantungan POM aplikasi Anda mencakup versi lama Servlet API (yang menggunakan nama paket javax) yang sebenarnya tidak digunakan oleh aplikasi, agen akan mendeteksi nama paket yang salah dan menerapkan instrumentasi ke javax alih-alih jakarta. Akibatnya, instrumentasi tidak berlaku dan konsol tidak menampilkan data pemantauan.
Cara memeriksa
Periksa file pom.xml proyek Anda untuk ketergantungan Servlet API yang menggunakan namespace javax:
<!-- Contoh: ketergantungan usang yang menyebabkan masalah -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>Jika aplikasi Spring Boot 3.0 Anda menyertakan ketergantungan seperti ini tetapi tidak menggunakannya, Agen ARMS mungkin salah mengidentifikasi target instrumentasi.
Solusi
Pilih salah satu pendekatan berikut:
Hapus ketergantungan Servlet API yang tidak digunakan. Hapus ketergantungan
javax.servletdaripom.xmlAnda jika aplikasi Anda tidak memerlukannya. Hal ini memungkinkan Agen ARMS mendeteksi nama paketjakartayang benar.Lakukan upgrade Agen ARMS ke V3.2.0 atau versi yang lebih baru. Agen ARMS V3.2.0 memperbaiki masalah ini dengan mengidentifikasi secara tepat nama paket Servlet API yang aktif, terlepas dari ketergantungan usang dalam POM. Untuk melakukan upgrade ke V3.2.0, submit a ticket.
Verifikasi perbaikan
Mulai ulang aplikasi Anda setelah menghapus ketergantungan yang tidak digunakan atau melakukan upgrade Agen ARMS.
Periksa log startup Agen ARMS untuk memastikan agen berhasil dimuat.
Buka Konsol ARMS dan buka halaman pemantauan aplikasi Anda.
Konfirmasi bahwa data pemantauan seperti jejak dan metrik muncul dalam beberapa menit.
Referensi cepat
| Gejala | Kemungkinan penyebab | Perbaikan |
|---|---|---|
| Tidak ada data, Agen ARMS lebih lama dari V2.8.3 | Agen tidak mendukung JDK 17 | Upgrade ke V2.8.3 atau versi yang lebih baru |
| Tidak ada data, aplikasi Spring Boot 3.0, Agen ARMS lebih lama dari V2.9.1.2 | Agen tidak mendukung Spring Boot 3.0 | Upgrade ke V2.9.1.2 atau versi yang lebih baru |
Tidak ada data, aplikasi Spring Boot 3.0, ketergantungan javax.servlet yang usang dalam POM | Agen menerapkan instrumentasi ke nama paket yang salah | Hapus ketergantungan usang tersebut, atau upgrade ke V3.2.0 atau versi yang lebih baru |