このトピックでは、Kubernetes アプリケーションを Application Real-Time Monitoring Service (ARMS) に接続するのに役立つコンポーネントである ack-onepilot の動作原理について説明します。
ワークフロー
ack-onepilot コンポーネントは、webhook と init コンテナという 2 つのサービスで構成されています。 ack-onepilot webhook サービスは、Kubernetes の mutating admission webhook として機能します。 詳細については、Mutating admission webhook を参照してください。
ack-onepilot webhook サービスは、次のフローチャートに示すように、Kubernetes ポッドが etcd に永続的に保存される前に変更します。
ack-onepilot webhook サービスは、ポッドに対して次の操作を実行します。
ポッドの主要な環境変数を指定します。
Java アプリケーションの場合、ack-onepilot webhook サービスは、起動時に環境変数 JAVA_TOOL_OPTIONS から Java 仮想マシン (JVM) の特定のシステムパラメーターをアプリケーションに自動的に追加します。 次に、JAVA_TOOL_OPTIONS は、ARMS ライセンスキー、アプリケーション名、レポートリージョン、およびその他の情報を挿入して、データが報告されるエンドポイントを見つけます。 さらに、JAVA_TOOL_OPTIONS は、Java アプリケーションに
-javaagent
パラメーターを挿入して、ARMS エージェントが存在するパスを自動的に特定し、アプリケーションの起動時にエージェントをマウントします。Go アプリケーションの場合、
-javaagent
と同様のパラメーターは必要ありません。init コンテナをポッドに追加します。
通常、init コンテナは ARMS エージェントファイルを準備し、ボリュームを使用してポッドにマウントします。 起動時に、アプリケーションは手順 1 の JAVA_TOOL_OPTIONS を使用して準備された ARMS エージェントを見つけ、Java プロセスにマウントします。 その後、ビジネスプロセス中の観測可能なデータを収集できます。
FAQ
ack-onepilot のバージョンは ARMS エージェントのバージョンと関連していますか?
いいえ、必ずしも関連しているわけではありません。 ack-onepilot コンポーネントは、バックエンドの構成.