すべてのプロダクト
Search
ドキュメントセンター

:ARMS エージェントは、SkyWalking などの他の APM サービスのエージェントと互換性がありますか?

最終更新日:Dec 30, 2024

他の主要なアプリケーションパフォーマンス管理 (APM) サービスと同様に、Application Real-Time Monitoring Service (ARMS) エージェントは、ASM フレームワークに基づくバイトコードインストルメンテーションを使用して、自動監視データ収集を実装します。異なるベンダーによって開発された APM エージェントは、異なるコードを使用してバイトコードインストルメンテーションを実装します。 2 つの APM エージェントをインストールすると、コードに対してバイトコードインストルメンテーションが 2 回実行されます。コードの競合により、アプリケーションの起動が遅くなったり、データが失われたりするなど、さまざまな問題が発生する可能性があります。そのため、複数の APM エージェントをインストールしないことをお勧めします。

サードパーティの APM サービスから ARMS アプリケーションモニタリングに監視ソリューションを移行する場合、移行期間中に 2 つの APM エージェントが共存する可能性があります。エージェント間の互換性を高めるために、ARMS は多数の互換性テストを実施しています。ただし、APM エージェントがアプリケーションのプラグインを同期的に拡張する場合、ローカルの競合が発生する可能性があります。競合を防ぐには、アプリケーションのカスタム設定でプラグインを無効にすることができます。

説明

ローカルの競合がない場合でも、複数の APM エージェントをインストールすると、アプリケーションのパフォーマンスに影響します。移行が完了したら、ARMS エージェントのみがインストールされていることを確認してください。

また、SkyWalking のキャッシュメカニズムは互換性に影響します。その結果、Arthas などの ARMS 機能が使用できなくなります。SkyWalking から ARMS アプリケーションモニタリングに監視ソリューションを移行する場合は、移行期間中に Java 起動コマンドに次のパラメータを追加して、キャッシュメカニズムを無効にすることをお勧めします。詳細については、SkyWalking のドキュメントを参照してください。

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

ARMS エージェントと SkyWalking エージェントをインストールしていて、アプリケーションの起動エラーまたはランタイムのビジネスリクエストエラーが発生した場合は、エージェントのマウントシーケンスを調整して再起動できます。次のいずれかの方法を使用します。

  • 起動パラメータの変更

    スクリプトを変更し、スクリプトで ARMS エージェントの前に SkyWalking エージェントをマウントする必要があります。ARMS エージェントが Container Service for Kubernetes (ACK) クラスタに自動的にインストールされた場合は、エージェントをアンインストールし、ARMS エージェントを手動で再インストールしてから、スクリプトを変更できます。

    Spring Boot を例にとります。

    -javaagent:/home/admin/apache-skywalking-apm-bin/agent/skywalking-agent.jar -javaagent:/{user.workspace}/ArmsAgent/aliyun-java-agent.jar 
  • JVM パラメータの追加

    ACK クラスタに自動的にインストールされた ARMS エージェントの場合、ACK クラスタに JVM パラメータを追加して、変更を簡素化することもできます。

    1. ACK コンソールにログインします。クラスタのデプロイメントページに移動し、アプリケーションを見つけて、アクション列の編集をクリックします。

    2. 環境変数セクションで、SkyWalking エージェントの JVM パラメータを追加し、更新をクリックします。

      image.png

ARMS エージェントと、transmittableThreadLocal (TTL)、Pinpoint、または OTel エージェントなどの別の APM エージェントをインストールしていて、アプリケーションの起動エラーまたはランタイムのビジネスリクエストエラーが発生した場合は、前述の手順を参照して、エージェントのマウントシーケンスを調整して再起動できます。ただし、ビジネス要件に基づいて、エージェントパッケージ名とマウントパスを変更する必要があります。たとえば、TTL エージェントの場合は、次のいずれかの方法を使用します。

  • 起動パラメータの変更

    スクリプトを変更し、スクリプトで ARMS エージェントの前に TTL エージェントをマウントする必要があります。ARMS エージェントが ACK クラスタに自動的にインストールされた場合は、エージェントをアンインストールし、ARMS エージェントを手動で再インストールしてから、スクリプトを変更できます。

    Spring Boot を例にとります。

    -javaagent:/home/admin/transmittable-thread-local-2.14.2.jar -javaagent:/{user.workspace}/ArmsAgent/aliyun-java-agent.jar 
  • JVM パラメータの追加

    ACK クラスタに自動的にインストールされた ARMS エージェントの場合、ACK クラスタに JVM パラメータを追加して、変更を簡素化することもできます。

    1. ACK コンソールにログインします。クラスタのデプロイメントページに移動し、アプリケーションを見つけて、アクション列の編集をクリックします。

    2. 環境変数セクションで、TTL エージェントの JVM パラメータを追加し、更新をクリックします。

      image

暗号化ツールを使用してバイトコードを暗号化する場合は、起動エラーを回避するために、エージェントが次の要件を満たしていることを確認してください。