Agen Pemantauan Aplikasi ARMS versi 4.x dan seterusnya dibangun di atas OpenTelemetry Java Agent dan sepenuhnya mengadopsi standar open-source. Meskipun menawarkan paritas fitur lengkap dengan versi agen sebelumnya, beberapa fungsionalitas telah disesuaikan. Topik ini menjelaskan perubahan tersebut, dampak potensialnya, serta alasan peningkatan volume data yang dilaporkan.
Perubahan dan dampak
-
Secara default, instrumentasi metode untuk bean yang dikelola Spring dinonaktifkan. Agen kini hanya menginstrumentasi metode controller.
Risiko potensial:
-
Setelah upgrade, metode dalam kelas yang dianotasi dengan
@Serviceatau@Componenttidak akan lagi muncul dalam jejak (traces). -
Eksepsi yang dilempar dari metode dalam kelas yang dianotasi dengan
@Serviceatau@Componenttidak akan ditangkap.
-
-
Nama metrik untuk pemantauan kolam thread dan pemantauan kolam koneksi telah berubah. Untuk detailnya, lihat Pemantauan kolam thread dan kolam koneksi.
Risiko potensial:
-
Jika Anda telah mengonfigurasi aturan alert untuk pemantauan kolam thread di Pemantauan Aplikasi, Anda harus mengonfigurasinya ulang.
Pada halaman Create Application Monitoring Alert Rule, atur Metric Type ke Thread_Pool_Version_2.
-
Jika Anda memiliki dasbor kustom yang menggunakan metrik kolam thread, dasbor tersebut tidak akan menampilkan data.
-
Peningkatan volume metrik dapat menyebabkan biaya pay-as-you-go yang lebih tinggi.
-
-
Metrik untuk memantau delay pesan telah diganti namanya menjadi arms_mq_delay_seconds.
Risiko potensial: Jika Anda memiliki dasbor kustom yang menggunakan metrik ini, dasbor tersebut tidak akan menampilkan data.
Agen kini secara otomatis menyebarkan konteks jejak (trace context) untuk panggilan asinkron, sehingga tidak perlu lagi mengonfigurasi nama paket.
-
Anda tidak perlu lagi mendefinisikan konsumen kustom untuk RabbitMQ atau metode konsumsi kustom untuk Kafka. Definisi yang sudah ada tidak terpengaruh.
-
Mengambil trace ID dengan menggunakan
MDC.get("EagleEye-TraceID")tidak lagi didukung. Namun, korelasi antara log dan trace ID tidak terpengaruh.Risiko potensial: Trace ID yang diambil menggunakan
MDC.get("EagleEye-TraceID")akan bernilai null. -
Panggilan internal tanpa entry point kini menghasilkan rentang (span).
Risiko potensial: Peningkatan jumlah rentang dapat menyebabkan biaya pay-as-you-go yang lebih tinggi.
-
Agen kini menghitung statistik kuantil menggunakan metode distribusi bucket berbasis interpolasi linear, menggantikan algoritma berbasis Prometheus Summary sebelumnya.
Risiko potensial: Metrik kuantil mungkin menjadi tidak akurat jika distribusi durasi aktual berbeda signifikan dari bucketing saat ini.
-
SpanStatuskini selaras dengan standar OpenTelemetry. Dalam standar ini, permintaan HTTP dengan kode respons4xxatau5xxditandai sebagaierror. Semua kasus lainnya ditandai sebagaiunset. Versi agen sebelumnya menandai kasus-kasus tersebut sebagaiok. -
Setelah upgrade ke agen versi 4.x, trace ID harus terdiri dari 32 karakter. Format ini tidak kompatibel dengan fitur Pemantauan Browser lama. Kami merekomendasikan integrasi dengan layanan Real User Monitoring yang baru.
-
Versi agen 4.1.12 dan sebelumnya tidak kompatibel dengan fitur virtual threads di JDK 21. Kompatibilitas penuh direncanakan untuk rilis 4.3.x. Jika aplikasi Anda sangat bergantung pada virtual threads, kami merekomendasikan tetap menggunakan versi agen 3.x.
-
Untuk aplikasi yang menggunakan
arms-sdkuntuk menambahkan baggage melalui filterspring-cloud-gateway, propagasi baggage gagal ketika Anda melakukan upgrade ke agen 4.2.x dan mengaktifkan pluginspring-beandalam konfigurasi kustom.
Peningkatan pelaporan data di versi 4.x
Setelah upgrade dari agen versi 3.x ke 4.x, Anda mungkin melihat peningkatan volume metrik yang dilaporkan dalam skenario tertentu. Peningkatan ini disebabkan oleh perubahan berikut:
-
Agen kini membuat rentang untuk panggilan internal tanpa entry point, yang meningkatkan jumlah rentang dan metrik yang dilaporkan.
-
Agen kini mendukung lebih banyak kolam thread kustom dalam pemantauan kolam thread, yang meningkatkan jumlah metrik yang dilaporkan.
-
Agen kini mendukung lebih banyak jenis kolam koneksi dalam pemantauan kolam koneksi, yang meningkatkan jumlah metrik yang dilaporkan.
-
Untuk panggilan asinkron, jumlah metrik upstream dan downstream meningkat karena agen versi 4.x secara otomatis menyebarkan konteks jejak.
-
Agen kini menyediakan dukungan plugin yang lebih luas, seperti instrumentasi ekstensi untuk Lettuce, yang menghasilkan lebih banyak metrik yang dilaporkan.
-
Untuk meningkatkan performa profil thread pada aplikasi dengan jumlah thread yang tinggi, agen versi 4.x menyesuaikan cara pengumpulan dan penyimpanan data. Dibandingkan dengan agen versi 3.x, mengaktifkan profil thread kini melaporkan sejumlah kecil metrik tambahan dengan awalan
arms_grouped_thread. Untuk menonaktifkan fitur ini, lihat Profil Thread. -
Untuk konsumsi pesan batch dalam message queue (MQ), agen kini membuat rentang terpisah untuk setiap pesan dalam batch, bukan satu rentang untuk seluruh batch. Hal ini dapat meningkatkan jumlah rentang yang dilaporkan secara signifikan jika batch berisi banyak pesan. Perubahan ini sengaja dilakukan untuk memberikan data yang lebih granular. Jika volume data menjadi perhatian, pertimbangkan untuk menyesuaikan laju pengambilan sampel atau menonaktifkan plugin MQ terkait.