テレメトリ カスタムリソース定義 (CRD) は、サービスメッシュ (ASM) インスタンスにおけるデータの監視と収集に関連するポリシーと動作を定義および構成するために使用されます。ログ、メトリック、トレースなど、詳細なレベルで Istio が提供するテレメトリ機能を管理できます。テレメトリ CRD を使用すると、ビジネス要件に基づいてテレメトリデータを収集および処理する方法をカスタマイズおよび調整できます。このトピックでは、テレメトリ CRD を構成する方法と、CRD のフィールドについて説明します。
構成例
Istio は、3 つの異なるレベルの可観測性構成をサポートしています。これらは、ASM コンソールでは次の可観測性構成に対応しています。
グローバル構成 (ASM コンソール の [グローバル] タブ)
名前空間固有の構成 (ASM コンソール の [名前空間] タブ)
ワークロード固有の構成 (ASM コンソールの[カスタム]タブ)
次のテレメトリ YAML ファイルのサンプルは、さまざまなレベルで可観測性を構成する方法を示しています。
グローバル構成
名前空間固有の構成
ワークロード固有の構成
フィールドの説明
テレメトリ
フィールド | タイプ | 必須 | 説明 |
selector | いいえ | テレメトリ ポリシーを構成するワークロードを指定します。 | |
tracing | いいえ | 選択したすべてのワークロードのトレース動作を指定します。 | |
metrics | いいえ | 選択したすべてのワークロードのメトリック動作を指定します。 | |
accessLogging | いいえ | 選択したすべてのワークロードのアクセス ログ記録動作を指定します。 |
トレース
フィールド | タイプ | 必須 | 説明 |
randomSamplingPercentage | double | いいえ | トレース対象としてトラフィックが選択される割合を指定します。値 0 は、サンプリングが実行されないことを示します。 |
customTags | map<string, CustomTag> | いいえ | 生成されたトレース スパンに追加される追加のカスタム タグを指定します。 |
メトリック
フィールド | タイプ | 必須 | 説明 |
overrides | いいえ | 特定のメトリックまたはすべての定義済み標準メトリックのカスタム生成方法と表示を定義します。 | |
providers | いいえ | 構成が適用されるプロバイダーの名前を指定します。 値は prometheus に設定する必要があります。 |
アクセスログ記録
フィールド | 種類 | 必須 | 説明 |
無効 | ブール値 | いいえ | ログの動作を指定します。 |
プロバイダー | いいえ | 構成が適用されるプロバイダーの名前を指定します。値は envoy に設定する必要があります。 |
WorkloadSelector
フィールド | タイプ | 必須 | 説明 |
matchLabels | map<string, string> | いいえ | ポリシーが適用される ポッド または 仮想マシン (VM) のセットを示す 1 つ以上のラベルを指定します。ラベル検索の範囲は、リソースが存在する構成名前空間に限定されます。 |
カスタムタグ
フィールド | タイプ | 必須 | 説明 |
literal | いいえ | このフィールドは、各スパンに同じハードコードされた値を追加します。 | |
environment | いいえ | このフィールドは、環境変数の値を各スパンに追加します。 | |
header | いいえ | このフィールドは、リクエストのヘッダーの値を各スパンに追加します。 |
Tracing
フィールド | 種類 | 必須 | 説明 |
一致 | いいえ | オーバーライドされるメトリックと一致します。すべてのクライアント メトリックとサーバー メトリックを追加および構成する必要があります。 | |
無効 | ブール値 | いいえ | メトリックレポートを無効にするかどうかを指定します。このパラメーターが true に設定されている場合、メトリックレポートは無効になります。 |
タグの上書き | map<string、MetricsOverrides> | いいえ | 選択したメトリックでオーバーライドするタグ名とタグ式の コレクション を指定します。 |
Metrics
フィールド | 種類 | 必須 | 説明 |
メトリック | いいえ | メトリックを指定します。 | |
モード | いいえ | メトリック生成のモードを指定します。有効な値:CLIENT および SERVER。 |
ProviderRef
フィールド | タイプ | 必須 | 説明 |
name | 文字列 | はい | MeshConfig 内の Telemetry プロバイダーの名前を指定します。 |
Tracing.Literal
フィールド | タイプ | 必須 | 説明 |
value | string | はい | 使用するタグ値。 |
Tracing.Environment
フィールド | タイプ | 必須 | 説明 |
name | string | はい | タグ値の抽出元の環境変数の名前を指定します。 |
defaultValue | string | いいえ | 環境変数が見つからない場合に使用されるデフォルト値を指定します。 |
Tracing.RequestHeader
フィールド | タイプ | 必須 | 説明 |
name | string | はい | タグ値の抽出元のヘッダーの名前を指定します。 |
defaultValue | string | いいえ | ヘッダーが見つからない場合に使用されるデフォルト値を指定します。 |
MetricsOverrides.TagOverride
フィールド | タイプ | 必須 | 説明 |
operation | いいえ | タグを更新、追加、または削除するかどうかを指定します。 | |
value | string | いいえ |
|
MetricSelector.IstioMetric
名前 | 説明 |
REQUEST_COUNT | アプリケーションに対する、またはアプリケーションからの HTTP、HTTP/2、および gRPC リクエストのカウンター |
REQUEST_DURATION | HTTP、HTTP/2、および gRPC リクエストの期間 |
REQUEST_SIZE | HTTP、HTTP/2、および gRPC リクエストの本文サイズ |
RESPONSE_SIZE | HTTP、HTTP/2、および gRPC 応答の本文サイズ |
TCP_OPENED_CONNECTIONS | ワークロードのライフタイム全体で開かれた TCP 接続のカウンター |
TCP_CLOSED_CONNECTIONS | ワークロードのライフタイム全体で閉じられた TCP 接続のカウンター |
TCP_SENT_BYTES | TCP 接続での応答中に送信されたバイト数のカウンター |
TCP_RECEIVED_BYTES | TCP 接続での応答中に受信されたバイト数のカウンター |
GRPC_REQUEST_MESSAGES | クライアントから送信された gRPC メッセージのカウンター |
GRPC_RESPONSE_MESSAGES | サーバーから送信された gRPC メッセージのカウンター |
MetricsOverrides.TagOverride.Operation
名前 | 説明 |
UPSERT | タグを挿入または更新することを指定します。 |
REMOVE | メトリックの生成中に、メトリックにタグを含めないことを指定します。 |
WorkloadMode
名前 | 説明 |
CLIENT | ワークロードがネットワーク トラフィックの送信元であるシナリオの場合は、この値を選択します。 |
SERVER | ワークロードがネットワーク トラフィックの宛先であるシナリオの場合は、この値を選択します。 |
注意事項
原則として、このトピックで説明されていないフィールドは、対応するバージョンの ASM と Istio 間で互換性があります。 ASM コンソールでは、これらのフィールドの編集はサポートされていません。そのため、これらのフィールドを使用する場合は、kubectl またはその他のメソッドを使用して、対応する Telemetry カスタム リソース(CR)のフィールドを直接更新できます。 Telemetry CRD のフィールドの詳細については、「Telemetry」をご参照ください。