Download PDF
Download page 自動インストゥルメンテーションの設定.
自動インストゥルメンテーションの設定
このページでは、cluster-agent.yaml
で使用可能なプロパティと、自動インストゥルメンテーションの設定に使用できる Helm values.yaml
ファイルについて説明します。
自動インストゥルメンテーションの設定構造
自動インストゥルメンテーションの設定構造は、一連のデフォルトのプロパティに基づいています。1 つまたは複数の instrumentationRules
で定義したプロパティを使用して、デフォルトのプロパティをオーバーライドできます。
apiVersion: 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
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
# ...
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
# ...
InstrumentationRules によるデフォルトのプロパティのオーバーライド
クラスタエージェントは、namespaceRegex
、matchString,
および labelMatch
プロパティの組み合わせを InstrumentationRule
で使用して、自動インストゥルメンテーションの名前空間の Deployments
、DeploymentConfigs
および StatefulSets
をターゲットにします。最初に一致した InstrumentationRule
が使用されます。一致するルールが見つからない場合は、デフォルトのプロパティを使用して自動インストゥルメンテーションを適用するかどうかが決定されます。
nsToInstrumentRegex
defaultInstrumentationLabelMatch
defaultInstrumentMatchString
たとえば、-matchString
"<string>"
が指定された次の InstrumentationRule
が、クラスタエージェントの構成ファイルに追加されたとします。
|
自動インストゥルメンテーションが機能するには、展開が必要です。
展開名がこの文字列と一致する場合、一致する instrumentationRule
にある残りのプロパティが適用され、設定されているデフォルトのプロパティがオーバーライドされます。文字列が一致しない場合、クラスタエージェントはプロパティ nsToInstrumentRegex, defaultInstrumentationLabelMatch
および defaultInstrumentMatchString
をデフォルト値に設定してインストゥルメンテーション ルールを決定します。
一般的な自動インストゥルメンテーション タスク
次のプロパティは、一般的な自動インストゥルメンテーション設定タスクをサポートするために使用できます。
自動インストゥルメンテーションの範囲内にある名前空間を設定するには、次のプロパティを設定します。
nsToInstrument
nsToInstrumentRegex
- (オプション)自動インストゥルメンテーションの範囲内にある名前空間内のアプリケーションのセットをフィルタリングしてターゲットにするには、次のプロパティを設定します。
instrumentationMatchString
labelMatch
- インストゥルメント化されたアプリケーションにアプリケーション名と階層名を割り当てるには、次のプロパティを設定します。
appNameStrategy
-
tierName
(オプション、デフォルトでは展開名を使用します)
「AppDynamics アプリケーションの命名のオプション」を参照してください。
- マルチコンテナ アプリケーションに含まれるコンテナをインストゥルメント化するには、次のプロパティを設定します。
instrumentContainer
containerMatchString
デフォルトでは、instrumentContainer
が Kubernetes API によって返される順序に基づいて最初のコンテナをインストゥルメント化します。
- Node.js アプリケーションにトランザクション分析が必要な場合は、分析ホストとポートを指定します。
analyticsHost
analyticsPort
「Analytics エージェントを使用しない分析の展開」を参照してください。トランザクション分析の設定は、.NET および Java アプリケーションには必要ありません。各アプリケーションポッドに分析エージェントコンテナを追加するサイドカーモデルを使用して分析エージェントを展開し、アプリケーションコンテナで開始/停止できます。サイドカーアプローチを使用する場合、アプリケーション サーバ エージェントはデフォルトのホストlocalhost
とポート9090
を使用し、自動的に接続します。追加設定は必要ありません。「Kubernetes でのエージェント側コンポーネントのインストール」を参照してください。
デフォルトの自動インストゥルメンテーション プロパティ
次の表に、cluster-agent.yaml
仕様で定義されている自動インストゥルメンテーションの設定に使用できるデフォルトプロパティを示します:
パラメータ名 | デフォルト値 | 説明 |
---|---|---|
appNameLabel | 該当なし | このラベルの値は、AppDynamics アプリケーション名になります。 |
appNameStrategy | 手動 | AppDynamics アプリケーションの名前を指定するオプション。このパラメータには、次のいずれかの値を指定できます。
「AppDynamics アプリケーションの命名オプション」を参照してください。 |
defaultAnalyticsHost | 該当なし | 分析エージェントのホスト名。 このパラメータは、Node.js エージェントまたは .NET Core エージェントでデフォルトのトランザクションデータを Analytics エージェントに送信する必要がある場合に必須となります。 デフォルト値は、 |
defaultAnalyticsPort | 該当なし | 分析エージェントのリスニングポート。 たとえば、分析エージェントがポート 9090 でリッスンしている場合、このパラメータの値は デフォルト値は、 このパラメータは、デフォルトのトランザクションデータを分析エージェントに送信するために Node.js または .NET Core エージェントを必須とする場合に、 |
defaultAnalyticsSslEnabled | 該当なし | この値は、Analytics エージェントポートが SSL 対応かどうかに基づいています。ポートが SSL 対応の場合は値を このパラメータは、デフォルトのトランザクションデータを Analytics エージェントに送信するために Node.js または .NET Core エージェントを必須とする場合に、 デフォルト値 |
| "" | (必須)コントローラに報告するためにエージェントによって使用されるアプリケーション名。 |
defaultCustomConfig | 該当なし | このパラメータは、Java アプリケーションに固有です。 アプリケーション フレームワークでインストゥルメンテーションに特定の設定が必要な場合は、カスタムシステムプロパティを追加できます。 この値は、他の Java エージェントプロパティとともに設定された |
defaultContainerMatchString | 該当なし | これは、インストゥルメント化するコンテナを選択するための正規表現値です。このパラメータを使用するには、インストゥルメンテーション ルールで指定された このパラメータとともに |
| JAVA_TOOL_OPTIONS | このパラメータは、Java アプリケーションに固有です。
この変数を上書きして、展開に最適な他の環境変数を使用できます。 |
| [ ] | インストゥルメンテーションのためのマークが付けられた特定の展開ラベル。 このパラメータは、インストゥルメント化する インストゥルメンテーションには、少なくとも 1 つのラベルを一致させる必要があります。 次に例を示します。
たとえば、 |
| .* | インストゥルメンテーションの対象になる展開の名前。 このパラメータは、instrumentationRules 内で指定された このパラメータは、正規表現として展開名を受け入れます。 インストゥルメント化する展開が複数ある場合は、スペースを使用せずに名前を " デフォルトでは、このパラメータは |
|
CODE
CODE
CODE
| Node.js エージェント、.NET Core for Linux、および Java エージェントがプルされた Docker リポジトリ。 次の値をサポートしています。
|
| None | アプリケーションのインストゥルメント化に使用されるインストゥルメンテーション方式。 次の値をサポートしています。
|
|
| 必須です。このパラメータを使用して、自動インストゥルメンテーションを有効にします。 「インストゥルメンテーション ルールのためのクラスタエージェントの構成」を参照してください。 |
| "" | 必須です。値を指定しない場合、自動インストゥルメンテーションは機能しません。 正規表現としてインストゥルメント化される名前空間を指定します。 インストゥルメント化する名前空間が複数ある場合は、スペースを使用せずに "|" を使用して名前空間を区切ります。 デフォルトでは、名前空間はインストゥルメント化されません。 |
numberOfTaskWorkers | 2 | 同時に自動インストゥルメント化される展開数のレート制限を設定します。 この値を大きくすると、クラスタ内でのポッドの同時再起動数が増加する可能性があります。 |
|
| ネットワークの可視性のアプリケーション エージェント( デフォルトでは、 次の値をサポートしています。
|
| 0 | アプリケーションコンテナを非ルートユーザとして構成した場合は、対応するグループのグループ ID(GID)を提供します。
デフォルト値 |
| 0 | アプリケーションコンテナを非ルートユーザとして構成した場合は、対応するユーザのユーザ ID(UID)を提供します。
デフォルト値 |
resourcesToInstrument | Deployment | クラスタエージェントは、このパラメータにリストされているリソースをインストゥルメント化します。サポートされる値は、次のとおりです。
たとえば、
|
InstrumentationRule プロパティ
次の表に、InstrumentationRule
で自動インストゥルメンテーションを設定するために使用できるプロパティを示します。
パラメータ名 | デフォルト値 | 説明 |
---|---|---|
analyticsHost | 該当なし | 分析エージェントのホスト名。 このパラメータは、Node.js エージェントまたは .NET Core エージェントでデフォルトのトランザクションデータを Analytics エージェントに送信する必要がある場合に必須となります。 |
analyticsPort | 該当なし | 分析エージェントのリスニングポート。 たとえば、分析エージェントがポート 9090 でリッスンしている場合、このパラメータの値は このパラメータは、デフォルトのトランザクションデータを分析エージェントに送信するために Node.js または .NET Core エージェントを必須とする場合に、 |
analyticsSslEnabled | 該当なし | この値は、Analytics エージェントポートが SSL 対応かどうかに基づいています。ポートが SSL 対応でない場合は、値を このパラメータは、デフォルトのトランザクションデータを分析エージェントに送信するために Node.js または .NET Core エージェントを必須とする場合に、 |
containerMatchString | 該当なし | これは、値を満たす名前を持つコンテナを選択するための正規表現値です。このパラメータでは、 このパラメータとともに このパラメータは、 |
customAgentConfigSource | 該当なし | このパラメータは、ConfigMaps を介してインストゥルメント化するエージェントのカスタム設定を使用するオプションを提供します。このパラメータでは、クラスタエージェントの名前空間に必要な ConfigMap を作成する必要があります。このパラメータは、クラスタエージェントの YAML ファイルから動的に設定できます。YAML ファイルに加えた変更は、アプリケーションを再起動することなく、インストゥルメント化されたすべてのエージェントに対して更新されます。同様に、ConfigMap の設定に加えた変更は、アプリケーションを再起動することなく、すべてのインストゥルメント化されたエージェントに対して更新されます。
展開から ConfigMap ファイル(ルールで使用)を削除する必要がある場合は、最初にこのパラメータをクラスタエージェントの YAML ファイルから削除し、次にクラスタエージェントの名前空間から ConfigMap を削除する必要があります。 |
| first | このパラメータは、インストゥルメント化する必要があるコンテナを選択するオプションを提供します。次の値のいずれでも指定できます。
|
language | 該当なし | インストゥルメント化されるアプリケーションの言語。 サポート対象の言語は次のとおりです。
|
matchString | 該当なし | ルールが適用される展開名を照合するための正規表現。 このパラメータに値を指定しない場合、クラスタエージェントは |
labelMatch | {} | このルールに含めるラベルの key-value ペアのリスト。 いずれかのラベルと一致すれば満たされます。例: |
appName | <defaultAppName > に移動してください。 | コントローラに報告するために Java エージェントによって使用されるアプリケーション名。 値が指定されていない場合は、構成された |
appNameLabel | 該当なし | このラベルの値は、AppDynamics アプリケーション名になります。 |
customAgentConfig | 該当なし | このパラメータは、Java アプリケーションに固有です。 アプリケーション フレームワークでインストゥルメンテーションに特定の設定が必要な場合は、カスタムシステムプロパティを追加できます。 この値は、他の Java エージェントプロパティとともに設定された |
tierName | "" | コントローラに報告するために Java エージェントによって使用される階層名。 階層名が指定されていない場合は、展開名がデフォルトとして使用されます。 |
env | "" | このパラメータは、Java アプリケーションに固有です。 アプリケーション エージェントのシステムプロパティが追加される環境変数。指定すると、このインストゥルメンテーション ルールと一致する展開の 何も指定されていない場合、デフォルトは |
imageInfo |
CODE
CODE
CODE
| エージェントイメージの場所。次のプロパティのいずれかを選択できます。
デフォルト値は このルールで言及されている特定の言語について、このインストゥルメンテーション ルールと一致する展開の デフォルトのクラスタレベルの構成を上書きし、この特定の選択したルールにカスタムのエージェントバージョンを使用する場合は、これを構成する必要があります。 |
|
| ネットワークの可視性のアプリケーション エージェント( デフォルトでは、 次の値をサポートしています。
|
| 0 | アプリケーションコンテナを非ルートユーザとして構成した場合は、対応するグループの これにより、エージェント アーティファクトに適切なファイル権限が設定されます。 この値は、インストゥルメント化されたすべてのリソースに適用されます。 デフォルトのインストゥルメンテーション用に設定されている |
| 0 | アプリケーションコンテナを非ルートユーザとして構成した場合は、対応するユーザの これにより、エージェント アーティファクトに適切なファイル権限が設定されます。 この値は、インストゥルメント化されたすべてのリソースに適用されます。 デフォルトのインストゥルメンテーション用に設定されている |