デフォルトの自動インストルメンテーション プロパティ

次の表に、cluster-agent.yaml 仕様で定義されている自動インストルメンテーションの設定に使用できるデフォルトプロパティを示します。

appNameLabel N/A

このラベルの値は、Splunk AppDynamics アプリケーション名になります。

appNameStrategy 手動

Splunk AppDynamics アプリケーションの名前を指定するオプション。このパラメータには、次のいずれかの値を指定できます。

  • 手動
  • 名前空間
  • label

アプリケーションの命名方法」を参照してください。

defaultAnalyticsHost N/A

分析エージェントのホスト名。

このパラメータは、Node.js エージェントでデフォルトのトランザクションデータを分析エージェントに送信する必要がある場合に必要となります。

デフォルト値は、instrumentationRules 設定によって上書きされない限り、すべてのインストルメント化されたリソースに適用されます。

defaultAnalyticsPort N/A

分析エージェントのリスニングポート。

たとえば、分析エージェントがポート 9090 でリッスンしている場合、このパラメータの値は 9090 です。

デフォルト値は、instrumentationRules 設定によって上書きされない限り、すべてのインストルメント化されたリソースに適用されます。

このパラメータは、Node.js エージェントでデフォルトのトランザクションデータを分析エージェントに送信する必要がある場合に、defaultAnalyticsHost で必要となります。

defaultAnalyticsSslEnabled N/A

この値は、Analytics エージェントポートが SSL 対応かどうかに基づいています。ポートが SSL 対応の場合は値を true として指定し、非対応の場合は false として指定します。

このパラメータは、Node.js エージェントでデフォルトのトランザクションデータを分析エージェントに送信する必要がある場合に、defaultAnalyticsPortdefaultAnalyticsHost で必要となります。

デフォルト値は、instrumentationRules 設定によって上書きされない限り、すべてのインストルメント化されたリソースに適用されます。

defaultAppName

""(必須)コントローラに報告するためにエージェントによって使用されるアプリケーション名。
defaultCustomConfig N/A

このパラメータは、Java アプリケーションに固有です。

アプリケーション フレームワークでインストルメンテーションに特定の設定が必要な場合は、カスタムシステムプロパティを追加できます。

この値は、他の Java エージェントプロパティとともに設定された env or defaultEnv 変数に追加されます。

Helm を使用して展開をアップグレードする場合、defaultEnv の代わりにこのパラメータを使用すると、再インストルメンテーションの問題を回避できます。「自動インストルメンテーションの検証」の「アップグレードされた展開の再インストルメンテーションの問題のトラブルシューティング」を参照してください。

defaultContainerMatchString N/A

これは、インストゥルメント化するコンテナを選択するための正規表現値です。このパラメータを使用するには、インストゥルメンテーション ルールで指定された instrumentContainer 内で select オプションを使用する必要があります。

このパラメータとともに select オプションを使用すると、クラスタエージェントは正規表現値に一致するコンテナをインストゥルメント化します。

defaultEnv

JAVA_TOOL_OPTIONS

このパラメータは、Java アプリケーションに固有です。

javaagent 引数とアプリケーション エージェントのシステムプロパティが追加される環境変数。

この変数を上書きして、展開に最適な他の環境変数を使用できます。

ただし、展開をアップグレードするためにこの値をオーバーライドすると、クラスタエージェントは再インストゥルメントしません。これは、Java エージェントと展開の両方が JAVA_TOOL_OPTIONS 環境変数を使用するために発生します。したがって、アップグレード中にこれをオーバーライドすると、アノテーションは更新されず、再インストルメンテーションが失敗します。

トラブルシューティングの詳細については、「自動インストルメンテーションの検証」の「アップグレードされた展開の再インストルメンテーションの問題のトラブルシューティング」を参照してください。

defaultInstrumentationLabelMatch

[ ]

インストルメンテーションのためのマークが付けられた特定の展開ラベル。

このパラメータは、インストゥルメント化する key-value ペアのリストを受け入れます。

インストルメンテーションには、少なくとも 1 つのラベルを一致させる必要があります。

例:

defaultInstrumentationLabelMatch:- label1: value1

- label1: value2

- label2: value2

たとえば、label1: value2 のみが一致する場合、インストルメンテーションは期待どおりに機能します。

defaultInstrumentMatchString

.*

インストルメンテーションの対象になる展開の名前。

このパラメータは、instrumentationRules 内で指定された matchstring パラメータのデフォルト値として使用されます。matchstring が指定されていない場合、クラスタエージェントはこのパラメータ値を使用します。

このパラメータは、正規表現として展開名を受け入れます。

インストゥルメント化する展開が複数ある場合は、スペースを使用せずに名前を "|" で区切ることができます。

デフォルトでは、このパラメータは nsToInstrumentRegex によって構成されたすべての展開をインストルメント化します。したがって、インストゥルメンテーション ルールの matchString に値が指定されておらず、このパラメータに値を指定しない場合、クラスタエージェントはすべての展開をインストゥルメント化します。

enableForceReInstrumentation false

新しく展開されたインストルメンテーション プロパティで、正常にインストゥルメント化されたポッドの古い設定を上書きする必要がある場合は、このプロパティを true に設定する必要があります。

デフォルトでは、このプロパティは false に設定されています。

クラスタエージェントのアップグレード中に、インストルメンテーション構成を正常にインストルメント化された展開に更新する必要がある場合は、値を true に設定します。

正常にインストゥルメント化された展開にインストルメンテーション構成を保持する必要がある場合は、値を false に設定します。ただし、既存の展開のインストルメンテーション状態が失敗または新規の場合は、更新された構成が適用されます。

注: クラスタエージェントをアップグレードする場合、正常にインストゥルメント化された展開に更新された構成を適用するには、この値を true に設定する必要があります。
enableInstallationReport "false"

インストール情報の収集を有効または無効にします。次の詳細を含む要約レポートが生成されます。

  • PodName
  • 名前空間
  • AppName
  • TierName
  • NodeName
  • AgentType
  • AgentVersion
  • ステータス
  • タイムスタンプ

インストールレポートを表示するには、「インストールレポートの表示」を参照してください。

imageInfo

java:
image: "docker.io/appdynamics/java-      agent:latest"
agentMountPath: "/opt/appdynamics"
imagePullPolicy: "IfNotPresent"
dotnetcore:
image: "docker.io/appdynamics/dotnet-core-agent:latest"
agentMountPath: /opt/appdynamics
imagePullPolicy: "IfNotPresent"
nodejs:
image: "docker.io/appdynamics/nodejs-agent:20.8.0-stretch-slimv14"
agentMountPath: /opt/appdynamics
imagePullPolicy: "Always"

Node.js エージェント、.NET Core for Linux、および Java エージェントがプルされた Docker リポジトリ。

サポートされる値は以下の通りです:

  • image:エージェントイメージの場所、およびその tag/version

  • agentMountPath:イメージファイルシステム内のイメージアーティファクトの場所。デフォルトは /opt/appdynamics です。パスが異なる場合は、この構成を変更する必要があります。imagePullPolicy:エージェントの Docker イメージに必要なプルポリシー。要件に基づいて、次のプルポリシーのいずれかを選択できます。

    • Always

    • IfNotPresent

    • ever

このパラメータは、自動インストゥルメンテーション中に追加される init コンテナで使用されます。

instrumentationMethod

None

アプリケーションのインストゥルメント化に使用されるインストルメンテーション方式。

サポートされる値は以下の通りです:

  • None:インストゥルメンテーションは無効になります。
  • Env:インストゥルメンテーション プロパティをコンテナ環境変数にアタッチします。値が設定されていない場合、インストルメンテーションは開始されません。

instrumentationRules

[ ]

必須。このパラメータは、自動インストルメンテーションを有効にするために使用されます。これには、特定のインストルメンテーション ルールのリストが含まれます。ルールは 1 つまたは複数の名前空間に適用できます。また、展開名とラベルに基づいてフィルタ処理できます。インストルメンテーション ルールは細かく設定でき、特定の展開を対象にすることをサポートできます。

インストルメンテーション ルールのためのクラスタエージェントの構成」を参照してください。

javaAgentCustomSSLKeystore

N/A

Java エージェント SSL キーストアファイルのシークレット名。詳細については、「Java エージェント自動インストルメンテーションのカスタム SSL の使用」を参照してください。

javaAgentCustomSSLKeystorePasswordSecret

N/A

Java エージェント SSL キーストアパスワードのシークレット名。詳細については、「Java エージェント自動インストルメンテーションのカスタム SSL の使用」を参照してください。

nsToInstrumentRegex

""

必須。値を指定しない場合、自動インストルメンテーションは機能しません。

正規表現としてインストゥルメント化される名前空間を指定します。

インストゥルメント化する名前空間が複数ある場合は、スペースを使用せずに "|" を使用して名前空間を区切ります。

デフォルトでは、名前空間はインストゥルメント化されません。

numberOfTaskWorkers 2

同時に自動インストゥルメント化される展開数のレート制限を設定します。

注: この値を大きくすると、クラスタ内でのポッドの同時再起動数が増加する可能性があります。

netvizInfo

bciEnabled;true

ポート:3892

ネットワークの可視性アプリケーション エージェントの netviz を設定するには、「Kubernetes CLI を使用したインフラストラクチャの可視性のインストール 」のネットワークエージェントのインストール方法を参照してください。

デフォルトでは、netviz が有効になっています。ネットワークエージェントが存在しない場合、このプロパティは影響を与えません。netviz エージェントを有効または無効にできます。

サポートされる値は以下の通りです:

  1. bciEnablednetviz が有効になっているかどうかを示す boolean フラグ。
  2. port:ネットワークエージェントがリッスンしているポート(デフォルトは 3892))。デフォルトポート以外のポートでネットワークエージェントを実行している場合にのみ、この値を上書きします。

runAsGroup

0

アプリケーションコンテナを非ルートユーザとして構成した場合は、対応するグループのグループ ID(GID)を提供します。

runAsUser は、エージェント アーティファクトに適切なファイル権限を設定するために使用されます。

デフォルト値 runAsGroupinstrumentationRules 設定によって上書きされない限り、すべてのインストゥルメント化されたリソースに適用されます。

runAsUser

0

アプリケーションコンテナを非ルートユーザーとして構成した場合は、対応するユーザーのユーザー ID(UID)を指定します。

runAsUser は、エージェント アーティファクトに適切なファイル権限を設定するために使用されます。

デフォルト値 runAsUser は、instrumentationRules 設定によって上書きされない限り、すべてのインストゥルメント化されたリソースに適用されます。

resourcesToInstrument Deployment

クラスタエージェントは、このパラメータにリストされているリソースをインストゥルメント化します。サポートされる値は、次のとおりです。

  • Deployment
  • StatefulSet
  • DeploymentConfig

たとえば、Deployments および StatefulSets をインストゥルメント化するには、次のように設定します。

resourcesToInstrument

  • 導入

  • StatefulSet

tierNameLabel N/A

このラベルの値は、Splunk AppDynamics 階層名になります。

tierNameStrategy 手動

階層の名前を指定するオプション。このパラメータには、次のいずれかの値を指定できます。

  • 手動
  • label

インストールレポートの表示

cluster-agent.yaml ファイルで enableInstallationReport パラメータを有効にしている場合は、要約されたインストールレポートを表示できます。「デフォルトの自動インストルメンテーション プロパティ」を参照してください。インストールレポートを表示するには、次の手順を実行します。

  1. kubectl exec の実行

    kubectl exec -it <cluster-agent-pod-name> -n <namespace> sh
  2. ログのディレクトリに移動します。
  3. InstallationReport.csv ファイルを開き、レポートを確認します。

Java エージェント自動インストルメンテーションのカスタム SSL の使用

デフォルトの cluster-agent.yaml ファイルで次のプロパティを使用して、キーストアファイルのシークレットとパスワードを指定できます。これにより、カスタム SSL を使用した Java エージェントの自動インストルメンテーションが有効になります。

  • javaAgentCustomSSLKeystore
  • javaAgentCustomSSLKeystorePasswordSecret
注: これらのプロパティを使用するには、カスタム SSL 証明書に JKS 形式を使用し、ファイルに custom-ssl.jks という名前を付ける必要があります。証明書の作成については、次を参照してください。

Java エージェント用 SSL の有効化

.

次のコマンドを実行して、カスタム SSL を使用した Java エージェントの自動インストルメンテーションに使用されるシークレットを作成します。

  1. キーストアファイルのシークレットを作成します。
    kubectl -n appdynamics create secret generic <secret name> --from-file=<path to custom-ssl.jks file>
  2. キーストアパスワードのシークレットを作成します。
    kubectl -n appdynamics create secret generic <secret name> --from-literal=keystore-password=‘<keystorePassword>’

証明書更新後のシークレットの更新

カスタム SSL キーストアファイルまたはキーストアパスワードを変更する場合は、次の手順を実行する必要があります。

  1. Java アプリケーションのインストゥルメント化を解除します。
  2. キーストアファイルとキーストアパスワードの新しいシークレットを作成します。「Java エージェント自動インストルメンテーションのカスタム SSL の使用」を参照してください。
  3. Java アプリケーションを再インストゥルメント化します。