テレメトリ
Telemetry は、メッシュ内のワークロードに対してテレメトリがどのように生成されるかを定義します。
メッシュレベルの設定については、ワークロードセレクタ *なし* で、Istio インストールのルート設定ネームスペースにリソースを配置します。
ルート設定ネームスペースを含む任意のネームスペースでは、ワークロードセレクタのない Telemetry リソースは1つだけ有効です。
ワークロードセレクタを持つリソースの場合、任意のワークロードを選択するリソースは1つだけ有効です。
Telemetry 設定の階層は次のとおりです。
- ワークロード固有の設定
- ネームスペース固有の設定
- ルートネームスペース設定
例
トラフィックの10%に対してランダムサンプリングを有効にするポリシー
apiVersion: telemetry.istio.io/v1
kind: Telemetry
metadata:
name: mesh-default
namespace: istio-system
spec:
# no selector specified, applies to all workloads
tracing:
- randomSamplingPercentage: 10.00
foo
ワークロードのトレースレポートを無効にするポリシー(注:トレースコンテキストは引き続き伝播されます)
apiVersion: telemetry.istio.io/v1
kind: Telemetry
metadata:
name: foo-tracing
namespace: bar
spec:
selector:
matchLabels:
service.istio.io/canonical-name: foo
tracing:
- disableSpanReporting: true
トレースレポート用に代替Zipkinプロバイダーを選択するポリシー
apiVersion: telemetry.istio.io/v1
kind: Telemetry
metadata:
name: foo-tracing-alternate
namespace: baz
spec:
selector:
matchLabels:
service.istio.io/canonical-name: foo
tracing:
- providers:
- name: "zipkin-alternate"
randomSamplingPercentage: 10.00
クライアントワークロードからのみトレースをサンプリングするようにZipkinプロバイダーを調整するポリシー
apiVersion: telemetry.istio.io/v1
kind: Telemetry
metadata:
name: mesh-default
namespace: istio-system
spec:
# no selector specified, applies to all workloads
tracing:
- match: CLIENT
- providers:
- name: "zipkin"
リテラル値からカスタムタグを追加するポリシー
apiVersion: telemetry.istio.io/v1
kind: Telemetry
metadata:
name: mesh-default
namespace: istio-system
spec:
# no selector specified, applies to all workloads
tracing:
- randomSamplingPercentage: 10.00
customTags:
my_new_foo_tag:
literal:
value: "foo"
メッシュ全体でPrometheusのサーバー側メトリクスを無効にするポリシー
apiVersion: telemetry.istio.io/v1
kind: Telemetry
metadata:
name: mesh-default
namespace: istio-system
spec:
# no selector specified, applies to all workloads
metrics:
- providers:
- name: prometheus
overrides:
- match:
metric: ALL_METRICS
mode: SERVER
disabled: true
foo
名前空間のすべてのPrometheusメトリクスにディメンションを追加するポリシー
apiVersion: telemetry.istio.io/v1
kind: Telemetry
metadata:
name: namespace-metrics
namespace: foo
spec:
# no selector specified, applies to all workloads in the namespace
metrics:
- providers:
- name: prometheus
overrides:
# match clause left off matches all istio metrics, client and server
- tagOverrides:
request_method:
value: "request.method"
request_host:
value: "request.host"
bar.foo
ワークロードの一部のPrometheusメトリクスからresponse_code
ディメンションを削除するポリシー
apiVersion: telemetry.istio.io/v1
kind: Telemetry
metadata:
name: remove-response-code
namespace: foo
spec:
selector:
matchLabels:
service.istio.io/canonical-name: bar
metrics:
- providers:
- name: prometheus
overrides:
- match:
metric: REQUEST_COUNT
tagOverrides:
response_code:
operation: REMOVE
- match:
metric: REQUEST_DURATION
tagOverrides:
response_code:
operation: REMOVE
- match:
metric: REQUEST_SIZE
tagOverrides:
response_code:
operation: REMOVE
- match:
metric: RESPONSE_SIZE
tagOverrides:
response_code:
operation: REMOVE
メッシュ全体でアクセスログを有効にするポリシー
apiVersion: telemetry.istio.io/v1
kind: Telemetry
metadata:
name: mesh-default
namespace: istio-system
spec:
# no selector specified, applies to all workloads
accessLogging:
- providers:
- name: envoy
# By default, this turns on access logging (no need to set `disabled: false`).
# Unspecified `disabled` will be treated as `disabled: false`, except in
# cases where a parent configuration has marked as `disabled: true`. In
# those cases, `disabled: false` must be set explicitly to override.
foo
名前空間でアクセスログを無効にするポリシー
apiVersion: telemetry.istio.io/v1
kind: Telemetry
metadata:
name: namespace-no-log
namespace: foo
spec:
# no selector specified, applies to all workloads in the namespace
accessLogging:
- disabled: true
テレメトリ
トレーシング
Tracingは、メッシュ内のワークロードのトレース動作を設定します。トレースの有効/無効化、サンプリングレートの設定、カスタムタグの抽出に使用できます。
Tracing構成は、構成階層の各レベルでproviders
、random_sampling_percentage
、disable_span_reporting
、custom_tags
フィールドの上書きをサポートし、欠落している値は親リソースから補われます。ただし、custom_tags
を指定した場合、親構成によって提供される値は完全に置き換えられます。
ProviderRef
テレメトリ構成を特定のプロバイダーにバインドして、ターゲットを絞ったカスタマイズを行うために使用されます。
メトリクス
Metricsは、メッシュ内のメトリクス生成動作のワークロードレベルの上書きを定義します。メトリクス生成の有効/無効化、生成されたメトリクスのディメンションのカスタマイズに使用できます。
MetricSelector
上書き動作の適用のためのメトリクスの照合メカニズムを提供します。
MetricsOverrides
MetricsOverridesは、個々のメトリクスまたはすべての標準メトリクスのセットに対するカスタムメトリクス生成動作を定義します。
AccessLogging
アクセスロギングは、アクセスログ生成のワークロードレベルの上書きを定義します。プロバイダーの選択、またはワークロードのアクセスログ生成の有効/無効化に使用できます。
Tracing.TracingSelector
TracingSelectorは、特定のトラフィックメタデータ(トラフィックの方向など)に基づいてトレース動作を構成するための粗粒度の機能を提供します。
Tracing.CustomTag
CustomTagは、オペレーターが提供した値に基づいてトレーススパンに追加されるタグを定義します。この値は、ハードコードされた値、サイドカープロキシに認識されている環境変数から取得された値、またはリクエストヘッダーからの値のいずれかです。
注:custom_tags
を指定した場合、親構成によって提供される値は完全に置き換えられます。
Tracing.Literal
Tracing.Environment
Tracing.RequestHeader
MetricsOverrides.TagOverride
TagOverrideは、メトリクスディメンション(label
とも呼ばれる)に対して実行する操作を指定します。タグを追加、削除、またはデフォルト値を上書きできます。
AccessLogging.LogSelector
LogSelectorは、特定のトラフィックメタデータ(トラフィックの方向など)に基づいて、ログ記録動作を粗粒度に設定するための機能を提供します。LogSelectorは、現在フィルタでサポートされている属性セットには含まれていないトラフィックメタデータに適用されます。これにより、制御プレーンは個々のワークロードに送信される設定を制限できます。より細粒度のログ記録動作は、filter
を使用してさらに設定できます。
AccessLogging.Filter
アクセスログフィルタの指定を許可します。
MetricSelector.IstioMetric
Istioメトリックプロバイダでサポートされている既知のメトリックタイプの厳選されたリスト。こちらも参照してください:https://istio.dokyumento.jp/latest/docs/reference/config/metrics/#metrics
名前 | 説明 |
---|---|
ALL_METRICS | この列挙型を使用すると、オーバーライドをすべてのIstioデフォルトメトリックに適用する必要があることを示します。 |
REQUEST_COUNT | アプリケーションへの/からのリクエストのカウンター。HTTP、HTTP/2、およびGRPCトラフィックに対して生成されます。 Prometheusプロバイダはこのメトリックを次のようにエクスポートします: Stackdriverプロバイダはこのメトリックを次のようにエクスポートします。
|
REQUEST_DURATION | リクエスト期間のヒストグラム。HTTP、HTTP/2、およびGRPCトラフィックに対して生成されます。 Prometheusプロバイダはこのメトリックを次のようにエクスポートします: Stackdriverプロバイダはこのメトリックを次のようにエクスポートします。
|
REQUEST_SIZE | リクエスト本文サイズのヒストグラム。HTTP、HTTP/2、およびGRPCトラフィックに対して生成されます。 Prometheusプロバイダはこのメトリックを次のようにエクスポートします: Stackdriverプロバイダはこのメトリックを次のようにエクスポートします。
|
RESPONSE_SIZE | レスポンス本文サイズのヒストグラム。HTTP、HTTP/2、およびGRPCトラフィックに対して生成されます。 Prometheusプロバイダはこのメトリックを次のようにエクスポートします: Stackdriverプロバイダはこのメトリックを次のようにエクスポートします。
|
TCP_OPENED_CONNECTIONS | ワークロードのライフタイム中に開かれたTCP接続のカウンター。 Prometheusプロバイダはこのメトリックを次のようにエクスポートします: Stackdriverプロバイダはこのメトリックを次のようにエクスポートします。
|
TCP_CLOSED_CONNECTIONS | ワークロードのライフタイム中に閉じられたTCP接続のカウンター。 Prometheusプロバイダはこのメトリックを次のようにエクスポートします: Stackdriverプロバイダはこのメトリックを次のようにエクスポートします。
|
TCP_SENT_BYTES | TCP接続を介したレスポンス中に送信されたバイト数のカウンター。 Prometheusプロバイダはこのメトリックを次のようにエクスポートします: Stackdriverプロバイダはこのメトリックを次のようにエクスポートします。
|
TCP_RECEIVED_BYTES | TCP接続を介したリクエスト中に受信されたバイト数のカウンター。 Prometheusプロバイダはこのメトリックを次のようにエクスポートします: Stackdriverプロバイダはこのメトリックを次のようにエクスポートします。
|
GRPC_REQUEST_MESSAGES | クライアントから送信されたすべてのgRPCメッセージごとにインクリメントされるカウンター。 Prometheusプロバイダはこのメトリックを次のようにエクスポートします: |
GRPC_RESPONSE_MESSAGES | サーバーから送信されたすべてのgRPCメッセージごとにインクリメントされるカウンター。 Prometheusプロバイダはこのメトリックを次のようにエクスポートします: |
MetricsOverrides.TagOverride.Operation
名前 | 説明 |
---|---|
UPSERT | 指定された値の式を使用してタグを挿入または更新します。 |
REMOVE | 生成時にメトリックにタグを含めないように指定します。 |
WorkloadMode
WorkloadModeは、ネットワークトラフィックにおける基盤となるワークロードの役割を選択します。ワークロードは、トラフィックの宛先である場合(つまり、ワークロードの観点から見たトラフィックの方向は着信です)、SERVER
として機能していると見なされます。ワークロードがネットワークトラフィックの送信元である場合、CLIENT
モード(トラフィックはワークロードから発信)であると見なされます。
名前 | 説明 |
---|---|
CLIENT_AND_SERVER | ワークロードがネットワークトラフィックの送信元または宛先のいずれかであるシナリオを選択します。 |
CLIENT | ワークロードがネットワークトラフィックの送信元であるシナリオを選択します。 |
SERVER | ワークロードがネットワークトラフィックの宛先であるシナリオを選択します。 |