Envoy 统计

Envoy 代理会详细记录网络流量的统计数据。

Envoy 的统计数据仅涵盖特定 Envoy 实例的流量。有关持续的每服务 Istio 遥测,请参阅 可观察性。Envoy 代理记录的统计数据可以提供有关特定 Pod 实例的更多信息。

要查看 Pod 的统计数据

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

Envoy 会生成有关其行为的统计数据,并根据代理功能对统计数据进行范围划分。示例包括

默认情况下,Istio 会配置 Envoy 以记录最少的统计数据集,以减少已安装代理的整体 CPU 和内存占用。默认收集键是

  • 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"
这些信息是否有用?
您是否有任何改进建议?

感谢您的反馈!