自動インストルメンテーションの検証
このページでは、クラスタエージェントの自動インストルメンテーションを検証およびトラブルシューティングする方法について説明します。
前提条件
- エージェントがコントローラにレポートしていること。「クラスターエージェントのインストールの検証」を参照してください。
- クラスターエージェントをアップグレードした場合は、「クラスターエージェントのアップグレード」の手順に従い、互換性のあるイメージと YAML ファイルのセットを使用していること。
自動インストルメンテーションの検証
適用されない場合の自動インストゥルメンテーションのトラブルシューティング
[DEBUG]: 2021-03-30 21:22:10 - instrumentationconfig.go:645 - rule stage matches Deployment spring-boot-multicontainer in namespace stage with labels map[appName:jah-stage acme.com/framework:java]
[DEBUG]: 2021-03-30 21:22:10 - instrumentationconfig.go:656 - Found a matching rule {stage map[acme.com/framework:[java]] java select .* JAVA_TOOL_OPTIONS map[agent-mount-path:/opt/appdynamics image:docker.io/appdynamics/java-agent:21.3.0 image-pull-policy:IfNotPresent] map[bci-enabled:true port:3892] 0 0 appName 0 false []} for Deployment spring-boot-multicontainer in namespace stage with labels map[appName:jah-stage acme.com/framework:java]
[DEBUG]: 2021-03-30 21:22:10 - instrumentationconfig.go:249 - Instrumentation state for Deployment spring-boot-multicontainer in namespace stage with labels map[appName:jah-stage acme.com/framework:java] is true
[DEBUG]: 2021-03-30 21:22:10 - deploymenthandler.go:312 - Added instrument task to queue stage/spring-boot-multicontainer完了できなかった場合の自動インストゥルメンテーションのトラブルシューティング
アップグレードされた展開の再インストルメンテーションの問題のトラブルシューティング
- Helm アップグレードを使用して展開仕様を編集する場合、クラスタエージェントはアップグレードされた展開を再インストゥルメントしません。クラスタエージェントが適用した仕様への変更がインストルメンテーション プロパティに干渉する場合、インストルメンテーションは機能しなくなります。この問題は主に、Java インストルメンテーションで、Java アプリケーションが
JAVA_TOOL_OPTIONSを使用しており、helm アップグレードによって展開仕様のJAVA_TOOL_OPTIONS環境変数がオーバーライドされる可能性がある場合に発生します。Java エージェントがこの環境変数を使用してシステムプロパティを消費するため、オーバーライドが発生し、インストルメンテーションが失敗します。 - クラスタエージェントは、アノテーションを使用して、展開のインストルメンテーションの状態を確認します。展開ツールまたはスクリプトが編集またはパッチ Kubernetes API を使用して展開仕様を編集する場合、展開のアノテーションは更新されません。したがって、インストルメンテーションの状態に変更がない場合、再インストルメンテーションは発生しません。
展開仕様のアノテーション
APPD_DEPLOYMENT_INSTRUMENTATION_STATEを削除すると、この問題を回避できます。