All Products
Search
Document Center

Application Real-Time Monitoring Service:Is the ARMS agent compatible with the agents of other APM services, such as SkyWalking?

Last Updated:Nov 16, 2023

Similar to other mainstream application performance management (APM) services, the Application Real-Time Monitoring Service (ARMS) agent uses bytecode instrumentation based on the ASM framework to implement automatic monitoring data collection. APM agents developed by different vendors use different code to implement bytecode instrumentation. If you install two APM agents, bytecode instrumentation is performed twice on the code. Various issues such as slow application startup and data loss may occur due to code conflicts. Therefore, we recommend that you do not install multiple APM agents.

If you migrate your monitoring solutions from a third-party APM service to ARMS Application Monitoring, two APM agents may coexist in the period of transition. To increase the compatibility between the agents, ARMS has done a large number of compatibility tests. However, when the APM agents synchronously enhance a plug-in for an application, local conflicts may still be caused. To prevent the conflicts, you can disable the plug-in in the custom configurations of the application.

Note

Even if no local conflicts exist, installing multiple APM agents still affect application performance. Make sure that only the ARMS agent is installed after the migration is complete.

In addition, the cache mechanism of SkyWalking affects compatibility. As a result, ARMS features such as Arthas becomes unavailable. If you migrate the monitoring solutions from SkyWalking to ARMS Application Monitoring, we recommend that you add the following parameters to the Java startup command during the transition period to disable the cache mechanism. For more information, see SkyWalking documentation.

-Dskywalking.agent.is_cache_enhanced_class=true -Dskywalking.agent.class_cache_mode=MEMORY