このページでは、自動インストゥルメンテーションを設定するために使用できる cluster-agent.yaml および Helm の values.yaml ファイルで利用可能なプロパティについて説明します。

自動インストゥルメンテーションの設定構造

自動インストゥルメンテーションの設定の構造は、一連のデフォルトプロパティに基づいています。これは、1 つ以上の instrumentationRules で定義されたプロパティを使用して上書きできます。

apiVersion: cluster.appdynamics.com/v1alpha1
kind: Clusteragent
metadata:
  name: k8s-cluster-agent
  namespace: appdynamics
spec:
  # cluster agent properties
  # ...
  # required to enable auto-instrumentation
  instrumentationMethod: Env 
  # default auto-instrumentation properties
  # may be overridden in an instrumentationRule
  nsToInstrumentRegex: dev|stage|prod
  enableInstallationReport: false
  image: "docker.io/appdynamics/java-agent:21.7.0"
  # ...
  # one or more instrumentationRules
  instrumentationRules:
    - nsToInstrumentRegex: dev
      imageInfo:
        image: "docker.io/appdynamics/java-agent:21.3.1"
        agentMountPath: /opt/appdynamics
        imagePullPolicy: Always
      # ...
    - nsToInstrumentRegex: stage
      imageInfo:
        image: "docker.io/appdynamics/java-agent:21.5.0"
        agentMountPath: /opt/appdynamics
        imagePullPolicy: Always
      # ...
YML
deploymentMode: MASTER

# cluster agent properties
# ...
clusterAgent:
  nsToMonitorRegex: .*
# ...
# Instrumentation config
instrumentationConfig:
  enabled: true
  # required to enable auto-instrumentation
  instrumentationMethod: Env 
  # default auto-instrumentation properties
  # may be overridden in an instrumentationRule
  nsToInstrumentRegex: dev|stage|prod
  image: "docker.io/appdynamics/java-agent:21.7.0"
  # ...
  # one or more instrumentationRules
  instrumentationRules:
    - nsToInstrumentRegex: dev
      imageInfo:
        image: "docker.io/appdynamics/java-agent:21.3.1"
        agentMountPath: /opt/appdynamics
        imagePullPolicy: Always
      # ...
    - nsToInstrumentRegex: stage
      imageInfo:
        image: "docker.io/appdynamics/java-agent:21.5.0"
        agentMountPath: /opt/appdynamics
        imagePullPolicy: Always
      # ...
YML

InstrumentationRules によるデフォルトのプロパティのオーバーライド

クラスタエージェントは、InstrumentationRule 内の namespaceRegexmatchString,、および labelMatch プロパティの組み合わせを使用して、自動インストゥルメンテーションの名前空間内の DeploymentsDeploymentConfigs、および StatefulSets をターゲットにします。最初に一致した InstrumentationRule が使用されます。一致するルールが見つからない場合は、デフォルトのプロパティを使用して自動インストゥルメンテーションを適用するかどうかが決定されます。

  • nsToInstrumentRegex
  • defaultInstrumentationLabelMatch
  • defaultInstrumentMatchString

たとえば、次の InstrumentationRule と -matchString "<string>" がクラスタエージェント構成ファイルに追加されています。

instrumentationRules:
    - matchString: "<string>"

自動インストゥルメンテーションが機能するには、展開が必要です。

展開名がこの文字列と一致する場合、一致する instrumentationRule にある残りのプロパティが適用され、設定されているデフォルトのプロパティがオーバーライドされます。文字列が一致しない場合、クラスタエージェントはプロパティ nsToInstrumentRegex, defaultInstrumentationLabelMatch および defaultInstrumentMatchString をデフォルト値に設定してインストゥルメンテーション ルールを決定します。

カスタムアクセスキーの使用

カスタムアクセスキーを作成して、インストゥルメント化するアプリケーション用にコントローラで作成する特定のライセンスルールに使用することができます。テナントに定義したルールに基づいてカスタムアクセスキーを使用するには、次の手順を実行します。

  1. 必要なライセンスルールを作成します。
    これにより、キーが生成されます。
  2. 次のコマンドを実行して、ステップ 1 で生成したキーを使用してカスタムシークレットを作成します。

    kubectl -n appdynamics create secret generic <secret-name> --from-literal=<custom-Controller-key-name>=<key-value>
    CODE
  3. インストゥルメンテーション ルールに次の設定を追加します。

    customSecretName: <generated-secret-name>
    customSecretKey: <generated-key>
    CODE

自動インストゥルメンテーション用の cluster-agent.yaml ファイルで、正しいシークレット名とキー値を指定していることを確認します。値が正しくない場合、アプリケーションをモニターできません。

アプリケーションを自動インストゥルメント化していて、後からシークレットを更新する必要が生じた場合は、再インストゥルメンテーション プロセス中に enableForceReInstrumentation パラメータを true に設定する必要があります。

これにより、クラスタエージェントが再起動します。

一般的な自動インストゥルメンテーション タスク

次のプロパティは、一般的な自動インストゥルメンテーション設定タスクをサポートするために使用できます。

  • 自動インストゥルメンテーションの範囲内にある名前空間を設定するには、次のプロパティを設定します。

    • nsToInstrument
    • nsToInstrumentRegex
  • (オプション)自動インストゥルメンテーションの範囲内にある名前空間内のアプリケーションのセットをフィルタリングしてターゲットにするには、次のプロパティを設定します。
    • instrumentationMatchString
    • labelMatch
  • インストゥルメント化されたアプリケーションにアプリケーション名と階層名を割り当てるには、次のプロパティを設定します。
  • マルチコンテナ アプリケーションに含まれるコンテナをインストゥルメント化するには、次のプロパティを設定します。
    • instrumentContainer
    • containerMatchString

      instrumentContainer のデフォルトでは、Kubernetes API によって返される順序に基づいて最初のコンテナがインストゥルメント化されます。
  • Node.js アプリケーションにトランザクション分析が必要な場合は、分析ホストとポートを指定します。
    • analyticsHost
      analyticsPort

      分析エージェントを使用しない分析の展開」を参照してください。トランザクション分析の設定は、.NET および Java アプリケーションには必要ありません。各アプリケーションポッドに分析エージェントコンテナを追加し、アプリケーションコンテナで開始および停止するサイドカーモデルを使用して、分析エージェントを展開できます。サイドカー方法を使用する場合、アプリケーション サーバー エージェントはデフォルトのホスト localhost とポート 9090 を使用し、自動的に接続します。追加設定は必要ありません。Kubernetes でのエージェント側コンポーネントのインストール」を参照してください。

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

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

パラメータ名

デフォルト値

説明

appNameLabel該当なし

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

appNameStrategy手動

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

  • 手動
  • 名前空間
  • label

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

defaultAnalyticsHost該当なし

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

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

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

defaultAnalyticsPort該当なし

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

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

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

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

defaultAnalyticsSslEnabled該当なし

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

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

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

defaultAppName

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

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

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

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

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

defaultContainerMatchString該当なし

これは、インストゥルメント化するコンテナを選択するための正規表現値です。このパラメータを使用するには、インストゥルメンテーション ルールで指定された 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 に値が指定されておらず、このパラメータに値を指定しない場合、クラスタエージェントはすべての展開をインストゥルメント化します。

enableForceReInstrumentationfalse

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

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

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

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

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

enableInstallationReport"false"

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

  • PodName
  • 名前空間
  • AppName
  • TierName
  • NodeName
  • AgentType
  • AgentVersion
  • Status
  • Timestamp

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

imageInfo

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

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

次の値をサポートしています。

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

      • IfNotPresent

      • Never

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

instrumentationMethod

None

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

次の値をサポートしています。

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

instrumentationRules

[ ]

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

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

javaAgentCustomSSLKeystore

なし

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

javaAgentCustomSSLKeystorePasswordSecret

なし

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

nsToInstrumentRegex

""

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

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

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

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

numberOfTaskWorkers2

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

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

netvizInfo

bciEnabled: true

port: 3892


ネットワークの可視性のアプリケーション エージェント(netviz,)を構成するには、ネットワークエージェントを個別に展開し、このパラメータを設定する必要があります。
ネットワークエージェントのインストール方法については、「Kubernetes CLI を使用したインフラストラクチャの可視性のインストール」を参照してください。

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

次の値をサポートしています。

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

runAsGroup

0

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

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

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

runAsUser

0

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

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

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

resourcesToInstrumentDeployment

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

  • Deployment
  • StatefulSet
  • DeploymentConfig

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

resourcesToInstrument:

- Deployment
- StatefulSet

tierNameLabel該当なし

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

tierNameStrategy手動

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

  • 手動
  • label

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

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

  1. kubectl exec コマンドを実行して、クラスタエージェントポッドにアクセスします。

    kubectl exec -it <cluster-agent-pod-name> -n <namespace> sh
    CODE
  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>
    CODE
  2. キーストアパスワードのシークレットを作成します。
    kubectl -n appdynamics create secret generic <secret name> --from-literal=keystore-password=‘<keystorePassword>’
    CODE
証明書更新後のシークレットの更新

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

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

InstrumentationRule プロパティ

次の表に、InstrumentationRule で自動インストゥルメンテーションを設定するために使用できるプロパティを示します。

パラメータ名

デフォルト値

説明

analyticsHostN/A

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

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

analyticsPort該当なし

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

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

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

analyticsSslEnabled該当なし

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

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

containerMatchString該当なし

これは、値を満たす名前を持つコンテナを選択するための正規表現値です。このパラメータでは、defaultInstrumentContainer または instrumentContainer 内で select オプションを使用する必要があります。

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

このパラメータは、defaultContainerMatchString に指定されたデフォルト値を上書きします。

customAgentConfigSource該当なし

このパラメータは、ConfigMaps を介してインストゥルメント化するエージェントのカスタム設定を使用するオプションを提供します。このパラメータでは、クラスタエージェントの名前空間に必要な ConfigMap を作成する必要があります。このパラメータは、クラスタエージェントの YAML ファイルから動的に設定できます。YAML ファイルに加えた変更は、アプリケーションを再起動することなく、インストゥルメント化されたすべてのエージェントに対して更新されます。同様に、ConfigMap の設定に加えた変更は、アプリケーションを再起動することなく、すべてのインストゥルメント化されたエージェントに対して更新されます。

  • configMapName:ConfigMap の名前を指定します。これにより、エージェントは同じカスタム ConfigMap を使用して、インストゥルメント化されたすべてのエージェント名前空間を更新できます。
  • subDir:(Java エージェントの場合は必須)ConfigMap がマウントされる場所の相対パスを指定します。
    例:/ver20.8.0.3686/conf
    。ここで、20.8.0.3686 は Java エージェントのバージョンです。このディレクトリは、Java エージェントのバージョンによって異なる場合があります。

    例 6 を参照してください。
    ConfigMap の絶対マウントパスは <agent home path>/subDir

    です。この ConfigMap は、ターゲットアプリケーションの名前空間にある同じ名前の ConfigMap を置き換えます。

展開から ConfigMap ファイル(ルールで使用)を削除する必要がある場合は、最初にこのパラメータをクラスタエージェントの YAML ファイルから削除し、次にクラスタエージェントの名前空間から ConfigMap を削除する必要があります。

customSecretName該当なし

カスタムシークレット名。これは、ライセンスルールを定義するときに生成される名前と同じです。 

customSecretKey該当なし

カスタムシークレットキー。これは、ライセンス ルールを定義するときに生成されるキーと同じです。

instrumentContainer

first

このパラメータは、インストゥルメント化する必要があるコンテナを選択するオプションを提供します。次の値のいずれでも指定できます。

  • first:これはデフォルト値です。この値を指定すると、クラスタエージェントはポッド内の最初のコンテナをインストゥルメント化します。
  • all:この値を指定すると、クラスタエージェントはポッド内のすべてのコンテナをインストゥルメント化します。
  • select:この値を指定すると、クラスタエージェントは、defaultContainerMatchString パラメータまたは containerMatchString パラメータで指定された正規表現と一致する名前のコンテナのみをインストゥルメント化します。
language該当なし

インストゥルメント化されるアプリケーションの言語。

サポート対象の言語は次のとおりです。

  • dotnetcore
  • java
  • nodejs
matchString該当なし

ルールが適用される展開名を照合するための正規表現。

このパラメータに値を指定しない場合、クラスタエージェントは defaultInstrumentMatchString, で指定された値を使用し、その値を満たすすべての展開をインストゥルメント化します。

namespaceRegex    ""このルールの一部としてインストゥルメント化される名前空間を指定する正規表現。名前空間は、パイプ記号(|) を使用してスペースを使用せずに区切ることができます。
labelMatch{}このルールに含めるラベルの key-value ペアのリスト。 いずれかのラベルと一致すれば満たされます。

例:
labelMatch:
-label1: value1
-label1: value2
-label2: value2
label1: value2 のみが一致する場合、インストゥルメンテーションは期待どおりに機能します。

appName<defaultAppName> に移動してください。

コントローラに報告するために Java エージェントによって使用されるアプリケーション名。defaultAppName を上書きします。

値が指定されていない場合は、構成された defaultAppName が使用されます。

appNameLabel該当なし

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

customAgentConfig該当なし

このパラメータは、Java および Node.js アプリケーションに固有です。

アプリケーション フレームワークでインストゥルメンテーションに特定の設定が必要な場合は、カスタムシステムプロパティを追加できます。
この値は、defaultCustomConfig パラメータで指定されたデフォルト値よりも優先されます。

Java アプリケーションの場合:この値は、他の Java エージェントプロパティとともに設定された env または defaultEnv 変数に追加されます。

Node.js アプリケーションの場合:この値は NODE_OPTIONS に追加されます。

tierName""

コントローラに報告するために Java エージェントによって使用される階層名。

階層名が指定されていない場合は、階層の名前戦略が手動のとき、展開名がデフォルトとして使用されます。

tierNameLabel該当なし

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

nodeName""このパラメータは、階層の下のノードに順番に名前を付けるために使用されます。
ノード名が指定されていない場合は、展開名がデフォルトとして使用されます。
たとえば、階層内で使用される 2 つのノードがあり、アプリケーション環境の展開名は abc とします。構成ファイルでノード名の値を指定しない場合、クラスタエージェントは次をノード名とします。
  • abc-1
  • abc-2
env""

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

アプリケーション エージェントのシステムプロパティが追加される環境変数。指定すると、このインストゥルメンテーション ルールと一致する展開の defaultEnv を上書きします。

何も指定されていない場合、デフォルトは defaultEnv(構成されている場合)または env JAVA_TOOL_OPTIONS(デフォルトのクラスタレベルで構成されていない場合)になります。

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

次のプロパティのいずれかを選択できます。

  • image:エージェントイメージの場所、およびそのタグ/バージョン。
  • agentMountPath:イメージファイルシステム内のイメージアーティファクトの場所。デフォルトは [/opt/appdynamics] です。この構成は、パスがデフォルトパスと異なる場合にのみ必要です。
  • alpineInitContainerImage:init コンテナの .NET インストゥルメンテーションに使用される Alpine イメージの場所とそのタグ/バージョン。
  • imagePullPolicy:エージェントの Docker イメージに必要なプルポリシー。デフォルトは IfNotPresent です。要件に基づいて、次のプルポリシーのいずれかを選択できます。
    • Always
    • IfNotPresent
    • Never
    このパラメータは、自動インストゥルメンテーション中に追加される init コンテナで使用されます。
    デフォルト値は IfNotPresent です。

このルールで言及されている特定の言語について、このインストゥルメンテーション ルールと一致する展開の image-info を上書きします。

デフォルトのクラスタレベルの構成を上書きし、この特定の選択したルールにカスタムのエージェントバージョンを使用する場合は、これを構成する必要があります。

netvizInfo

bciEnabled: true

port: 3892


ネットワークの可視性のアプリケーション エージェント(netviz)を構成するには、ネットワークエージェントを個別に展開し、このパラメータを設定する必要があります。
ネットワークエージェントのインストール方法については、「Kubernetes CLI を使用したインフラストラクチャの可視性のインストール」を参照してください。

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

次の値をサポートしています。

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

runAsGroup

0

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

これにより、エージェント アーティファクトに適切なファイル権限が設定されます。

この値は、インストゥルメント化されたすべてのリソースに適用されます。

デフォルトのインストゥルメンテーション用に設定されている runAsGroup のデフォルト値を上書きする必要がある場合、またはこのルールを満たすリソースに特定の値が必要な場合は、このパラメータを追加します。

runAsUser

0

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

これにより、エージェント アーティファクトに適切なファイル権限が設定されます。

この値は、インストゥルメント化されたすべてのリソースに適用されます。

デフォルトのインストゥルメンテーション用に設定されている runAsUser のデフォルト値を上書きする必要がある場合、またはこのルールを満たすリソースに特定の値が必要な場合は、このパラメータを追加します。

securityContext

該当なし

必要なセキュリティコンテキスト制約パラメータを指定します。securityContext 内で使用できるパラメータのリストについては、「securityContext パラメータ」を参照してください。

SecurityContext パラメータ

securityContext パラメータ内で次のパラメータを使用できます。

OpenShift バージョンが 4.14 以降の場合は、securityContext 内のすべての子パラメータが、セキュリティコンテキスト制約(SCC)で概説されている許容値に基づいて指定されていることを確認します。Red Hat OpenShift ドキュメントの「セキュリティコンテキスト上の制約」を参照してください。

たとえば、インストゥルメンテーション ルールの RunAsUser プロパティを使用する場合、ユーザー ID(UID)は許容範囲内である必要があります。UID の SCC の許容範囲は 1000 ~ 9001 です。したがって、RunAsUser 値はこの範囲内でのみ追加できます。他のセキュリティ コンテキスト パラメータについても同様です。

パラメータ名

デフォルト値

説明

runAsGroup

0

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

これにより、エージェント アーティファクトに適切なファイル権限が設定されます。

この値は、インストゥルメント化されたすべてのリソースに適用されます。

デフォルトのインストゥルメンテーション用に設定されている runAsGroup のデフォルト値を上書きする必要がある場合、またはこのルールを満たすリソースに特定の値が必要な場合は、このパラメータを追加します。

runAsUser

0

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

これにより、エージェント アーティファクトに適切なファイル権限が設定されます。

この値は、インストゥルメント化されたすべてのリソースに適用されます。

デフォルトのインストゥルメンテーション用に設定されている runAsUser のデフォルト値を上書きする必要がある場合、またはこのルールを満たすリソースに特定の値が必要な場合は、このパラメータを追加します。

allowPrivilegeEscalation該当なし

プロセスが親プロセスよりも多くの権限を取得できるかどうかを制御します。次のコンテナとして実行されている場合、この値は true です。

  • 特権コンテナ
  • CAP_SYS_ADMIN
  • このパラメータは、spec.os.name が Windows の場合は使用できません。
  • このパラメータは、現在、Deployment および DeploymentConfig モードで使用できます。
capabilities該当なし

実行中のコンテナの POSIX 機能を追加または削除します。これは、コンテナランタイムにデフォルトの機能セットを使用します。 

  • このパラメータは、spec.os.name が Windows の場合は使用できません。
  • このパラメータは、現在、Deployment および DeploymentConfig モードで使用できます。
privilegedいいえ

ホストでのルートに相当する特権モードでコンテナを実行します。 

  • このパラメータは、spec.os.name が Windows の場合は使用できません。
  • このパラメータは、現在、Deployment および DeploymentConfig モードで使用できます。
procMountDefaultProcMount

コンテナに使用する proc マウントのタイプ。 

このパラメータは、現在、Deployment および DeploymentConfig モードで使用できます。

readOnlyRootFilesystemいいえ

このコンテナに読み取り専用のルートファイルシステムがあるかどうかを指定します。 

  • このパラメータは、spec.os.name が Windows の場合は使用できません。
  • このパラメータは、現在、Deployment および DeploymentConfig モードで使用できます。
runAsNonRootいいえ

コンテナを非ルートユーザーとして実行する必要があるかどうかを指定します。

この値が true の場合、Kubelet は実行時にイメージを検証して、ルートとして実行したときにコンテナの開始が失敗することを確認します。このパラメータが指定されていない場合、または値が false の場合、検証は行われません。 

このパラメータは、現在、Deployment および DeploymentConfig モードで使用できます。

seLinuxOptions該当なし

SELinux コンテキストをコンテナに適用します。このパラメータが指定されていない場合、コンテナランタイムは各コンテナにランダムな SELinux コンテキストを割り当てます。

  • このパラメータは、spec.os.name が Windows の場合は使用できません。
  • このパラメータは、現在、Deployment および DeploymentConfig モードで使用できます。
seccompProfile該当なし

コンテナで使用される seccomp オプションを指定します。ポッドレベルとコンテナレベルの両方で seccomp オプションが指定されている場合、コンテナオプションはポッドオプションをオーバーライドします。 

  • このパラメータは、spec.os.name が Windows の場合は使用できません。
  • このパラメータは、現在、Deployment および DeploymentConfig モードで使用できます。
windowsOptions該当なし

すべてのコンテナに Windows 固有のオプションを指定します。  

  • このパラメータは、spec.os.name が Windows の場合は使用できません。
  • このパラメータは、現在、Deployment および DeploymentConfig モードで使用できます。