Envoy 統計情報

Envoy プロキシは、ネットワークトラフィックに関する詳細な統計情報を保持します。

Envoy の統計情報は、特定の Envoy インスタンスのトラフィックのみを対象としています。永続的なサービスごとの Istio テレメトリについては、可観測性を参照してください。Envoy プロキシが記録する統計情報は、特定の Pod インスタンスに関する詳細な情報を提供できます。

Pod の統計情報を表示するには

$ kubectl exec "$POD" -c istio-proxy -- pilot-agent request GET stats

Envoy は、その動作に関する統計情報を生成し、プロキシ機能ごとに統計情報をスコープします。例としては、次のものがあります。

デフォルトでは、Istio は、インストールされたプロキシの全体的な CPU およびメモリフットプリントを削減するために、最小限の統計情報セットを記録するように Envoy を設定します。デフォルトの収集キーは次のとおりです。

  • cluster_manager
  • listener_manager
  • server
  • cluster.xds-grpc

統計データ収集の Envoy 設定を確認するには、istioctl proxy-config bootstrap を使用し、Envoy 設定の詳細に従ってください。Envoy は、stats_matcher JSON 要素内の inclusion_list に一致する項目の統計データのみを収集します。

Istio プロキシが追加の統計情報を記録するように設定するには、メッシュ設定に ProxyConfig.ProxyStatsMatcher を追加できます。たとえば、サーキットブレーカー、リクエストリトライ、アップストリーム接続、およびリクエストタイムアウトの統計情報をグローバルに有効にするには、次のように統計マッチャーを指定できます。

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    defaultConfig:
      proxyStatsMatcher:
        inclusionRegexps:
          - ".*outlier_detection.*"
          - ".*upstream_rq_retry.*"
          - ".*upstream_cx_.*"
        inclusionSuffixes:
          - "upstream_rq_timeout"

proxy.istio.io/config アノテーションを使用することで、プロキシごとにグローバルな統計情報マッチング設定をオーバーライドすることもできます。たとえば、上記と同じ統計情報生成インクルージョンを設定するには、ゲートウェイプロキシまたはワークロードに次のようにアノテーションを追加します。

metadata:
  annotations:
    proxy.istio.io/config: |-
      proxyStatsMatcher:
        inclusionRegexps:
        - ".*outlier_detection.*"
        - ".*upstream_rq_retry.*"
        - ".*upstream_cx_.*"
        inclusionSuffixes:
        - "upstream_rq_timeout"
この情報は役に立ちましたか?
改善のための提案はありますか?

フィードバックありがとうございます!