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

Application Real-Time Monitoring Service:Java エージェントのマウントパスのカスタマイズ

最終更新日:Dec 30, 2025

背景情報

標準的なデプロイメントでは、ack-onepilot コンポーネントは JAVA_TOOL_OPTIONS 環境変数をインジェクトすることで、Java エージェントのマウントパスを指定します。しかし、以下のような特定のシナリオでは、エージェントのマウントパスをカスタマイズする必要があります。

  • 集中構成管理

    Kubernetes ConfigMap を使用してエージェントパスを集中管理し、複数の環境間で構成の一貫性を確保できます。

  • 永続ストレージ要件

    企業のセキュリティポリシーや運用保守要件により、プローブファイルをカスタムの永続ボリューム (PVC) に保存する必要がある場合があります。

バージョン依存関係

Java エージェントのマウントパスをカスタマイズするには、以下のコンポーネントバージョンが必要です。

解決策

重要

ack-onepilot コンポーネントは Microservice Engine (MSE) と Application Real-Time Monitoring Service (ARMS) で共有されています。したがって、この手順は MSE のサービス管理アプリケーションにも適用されます。

  1. カスタムマウントが必要な Kubernetes ワークロード (Deployment など) に disableJavaToolOptionsInjection アノテーションを追加します。

    このアノテーションを追加すると、ack-onepilot コンポーネントは JAVA_TOOL_OPTIONS 環境変数を使用してエージェントのマウントパスや他の Java 仮想マシン (JVM) パラメーターを自動的に指定しなくなります。

    1. 次のコマンドを実行して、対象の Deployment の YAML ファイルを表示します。

      kubectl get deployment YOUR_DEPLOYMENT_NAME -o yaml
      説明

      Deployment 名が不明な場合は、次のコマンドを実行してすべての Deployment を一覧表示できます。結果から対象の Deployment を見つけ、その YAML ファイルを表示します。

      kubectl get deployments --all-namespaces
    2. 対象のステートレスアプリケーション (Deployment) の YAML ファイルを編集できます。

      kubectl edit deployment YOUR_DEPLOYMENT_NAME -o yaml
    3. YAML ファイルの `spec.template.metadata` の下に、次の内容を追加します。

      labels:
        armsPilotAutoEnable: "on"
        armsPilotCreateAppName: "<span class="var-span" contenteditable="true" data-var="YOUR_DEPLOYMENT_NAME">YOUR_DEPLOYMENT_NAME"</span> # YOUR_DEPLOYMENT_NAME をお使いのアプリケーション名に置き換えます。
        disableJavaToolOptionsInjection: "true"            # Java エージェントのマウントパスをカスタマイズするには、これを true に設定します。
  2. ARMS Java エージェントのマウントパスを、アプリケーションの起動スクリプトまたは Java の起動コマンドに追加します。

    デフォルトのマウントパスは /home/admin/.opt/AliyunJavaAgent/aliyun-java-agent.jar です。このパスをカスタムパスに置き換えてください。

    java -javaagent:/home/admin/.opt/AliyunJavaAgent/aliyun-java-agent.jar ... ... -jar xxx.jar

    報告リージョンやライセンスキーなどの他の情報は、ack-onepilot によって環境変数経由でインジェクトされます。