Seperti agen APM utama lainnya, agen ARMS menggunakan instrumen bytecode berbasis framework seperti ASM untuk mengumpulkan data pemantauan secara otomatis. Menjalankan dua agen APM secara bersamaan akan menginstrumen kode Anda dua kali. Karena vendor menerapkan instrumen dengan cara yang berbeda, konflik kode dapat menyebabkan masalah seperti startup aplikasi yang lambat dan kehilangan data pemantauan. Oleh karena itu, kami tidak menyarankan menginstal beberapa agen APM secara bersamaan.
Selama periode migrasi—misalnya saat beralih dari produk APM pihak ketiga ke ARMS Application Monitoring—Anda mungkin perlu menjalankan dua agen APM secara bersamaan. ARMS telah diuji secara ekstensif untuk memastikan kompatibilitas selama transisi semacam ini. Namun, konflik lokal masih dapat terjadi jika kedua agen meningkatkan plugin yang sama. Dalam kasus tersebut, nonaktifkan plugin yang bermasalah melalui custom configurations aplikasi Anda di ARMS.
Bahkan jika tidak terjadi konflik lokal, menjalankan beberapa agen tetap dapat menurunkan kinerja aplikasi Anda. Setelah migrasi selesai, pastikan hanya agen ARMS yang tetap terinstal.
Mekanisme cache SkyWalking dapat menyebabkan masalah kompatibilitas yang menghambat fitur ARMS seperti Arthas berfungsi dengan benar. Jika Anda melakukan migrasi dari SkyWalking ke ARMS Application Monitoring, tambahkan parameter berikut ke perintah startup Java Anda untuk menonaktifkan mekanisme cache SkyWalking selama masa transisi. Untuk informasi lebih lanjut, lihat dokumentasi resmi SkyWalking.
-Dskywalking.agent.is_cache_enhanced_class=true -Dskywalking.agent.class_cache_mode=MEMORY
Jika Anda menjalankan dua agen APM dan mengalami error startup atau kegagalan permintaan, sesuaikan urutan pemuatan agen dan restart aplikasi. Metode berikut direkomendasikan:
-
Sesuaikan parameter startup untuk instalasi manual
Jika Anda menggunakan instalasi otomatis di lingkungan Container Service for Kubernetes (ACK), pertimbangkan beralih ke instalasi manual. Jika Anda sudah menggunakan instalasi manual, sesuaikan urutan pemuatan agen SkyWalking open-source dan agen ARMS dalam skrip startup Anda, dengan memastikan agen ARMS dimuat paling akhir.
Contoh Spring Boot:
-javaagent:/home/admin/apache-skywalking-apm-bin/agent/skywalking-agent.jar -javaagent:/{user.workspace}/ArmsAgent/aliyun-java-agent.jar -
Tambahkan parameter JVM untuk instalasi otomatis
Jika Anda menggunakan instalasi otomatis di lingkungan Container Service for Kubernetes (ACK), memodifikasi skrip startup untuk beralih ke instalasi manual bisa memerlukan upaya signifikan. Sebagai alternatif, Anda dapat menambahkan parameter JVM di lingkungan kontainer.
-
Masuk ke Konsol ACK. Pada halaman Deployments kluster target, temukan aplikasi yang dipantau oleh ARMS dan klik Edit di kolom Actions.
-
Pada bagian Environment Variables, tambahkan parameter untuk agen SkyWalking, lalu klik Update.
Untuk Type, pilih Custom. Untuk Variable Name, masukkan
JAVA_TOOL_OPTIONS. Untuk Value, masukkan-javaagent:/home/admin/apache-skywalking-apm-bin/agent/skywalking-agent.jar.
-
Untuk agen APM open-source lainnya seperti TTL-Agent, Pinpoint, dan OTel Agent, Anda dapat mengatasi masalah startup atau waktu proses dengan cara yang sama, yaitu menyesuaikan urutan pemuatan agen. Ganti nama paket dan path agen sesuai yang Anda gunakan. Misalnya, untuk menyesuaikan urutan pemuatan agen TransmittableThreadLocal, gunakan salah satu metode berikut.
-
Sesuaikan parameter startup untuk instalasi manual
Jika Anda menggunakan instalasi otomatis di lingkungan Container Service for Kubernetes (ACK), pertimbangkan beralih ke instalasi manual. Jika Anda sudah menggunakan instalasi manual, sesuaikan urutan pemuatan agen TTL open-source dan agen ARMS dalam skrip startup Anda, dengan memastikan agen ARMS dimuat paling akhir.
Contoh Spring Boot:
-javaagent:/home/admin/transmittable-thread-local-2.14.2.jar -javaagent:/{user.workspace}/ArmsAgent/aliyun-java-agent.jar -
Tambahkan parameter JVM untuk instalasi otomatis
Jika Anda menggunakan instalasi otomatis di lingkungan Container Service for Kubernetes (ACK), memodifikasi skrip startup untuk beralih ke instalasi manual bisa memerlukan upaya signifikan. Sebagai alternatif, Anda dapat menambahkan parameter JVM di lingkungan kontainer.
-
Masuk ke Konsol ACK. Pada halaman Deployments kluster target, temukan aplikasi yang dipantau oleh ARMS dan klik Edit di kolom Actions.
-
Pada bagian Environment Variables, tambahkan parameter untuk agen TTL, lalu klik Update.
Untuk Type, pilih Custom. Untuk Variable Name, masukkan
JAVA_TOOL_OPTIONS. Untuk Value, masukkan-javaagent:/home/admin/transmittable-thread-local-2.14.2.jar.
-
Jika Anda menggunakan tool enkripsi bytecode, penuhi persyaratan berikut untuk mencegah kegagalan startup aplikasi setelah menginstal agen ARMS.
-
Pastikan agen kustom Anda dijalankan terlebih dahulu, dan agen ARMS dijalankan paling akhir.
-
Gunakan agen ARMS versi 4.x atau yang lebih baru untuk memastikan integrasi aplikasi berhasil.