自動インストルメンテーションの検証
このページでは、クラスタエージェントの自動インストルメンテーションを検証およびトラブルシューティングする方法について説明します。
Prerequisites
- Cluster Agent is reporting to the Controller. See Validate the Cluster Agent Installation.
- If you upgraded the Cluster Agent, you followed the Upgrade the Cluster Agent procedure and used a compatible set of images and YAML files.
Validate Auto-Instrumentation
Troubleshoot Auto-Instrumentation When Not Applied
[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-multicontainerTroubleshoot Auto-Instrumentation When it Fails to Complete
アップグレードされた展開の再インストルメンテーションの問題のトラブルシューティング
- Helm アップグレードを使用して展開仕様を編集する場合、クラスタエージェントはアップグレードされた展開を再インストゥルメントしません。クラスタエージェントが適用した仕様への変更がインストルメンテーション プロパティに干渉する場合、インストルメンテーションは機能しなくなります。この問題は主に、Java インストルメンテーションで、Java アプリケーションが
JAVA_TOOL_OPTIONSを使用しており、helm アップグレードによって展開仕様のJAVA_TOOL_OPTIONS環境変数がオーバーライドされる可能性がある場合に発生します。Java エージェントがこの環境変数を使用してシステムプロパティを消費するため、オーバーライドが発生し、インストルメンテーションが失敗します。 - クラスタエージェントは、アノテーションを使用して、展開のインストルメンテーションの状態を確認します。展開ツールまたはスクリプトが編集またはパッチ Kubernetes API を使用して展開仕様を編集する場合、展開のアノテーションは更新されません。したがって、インストルメンテーションの状態に変更がない場合、再インストルメンテーションは発生しません。
展開仕様のアノテーション
APPD_DEPLOYMENT_INSTRUMENTATION_STATEを削除すると、この問題を回避できます。