Envoy 的统计信息

Envoy 代理收集了关于网络流量的详细统计信息。

Envoy 的统计信息只覆盖了特定 Envoy 实例的流量。参考可观测性 了解关于服务级别的 Istio 遥测方面的内容。这些由 Envoy 代理产生的统计数据记录能够提供更多关于 Pod 实例的具体信息。

查看某个 Pod 的统计信息:

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

Envoy 会生成与 Pod 行为相关的统计数据,并通过代理函数来限定统计范围。参考示例包括:

Istio 默认配置下 Envoy 只会记录最小化的统计信息,以减少代理服务器的整体 CPU 和内存占用情况。缺省的关键词集合有:

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

要查看关于统计数据收集的 Envoy 配置,可以使用 istioctl proxy-config bootstrap 命令,还可以参考 深入研究 Envoy 配置。 Envoy 只收集在 stats_matcher JSON 字段中能匹配上 inclusion_list 的统计数据。

想让 Istio 代理能够记录更多的统计信息,您可以在您的网格配置中添加 ProxyConfig.ProxyStatsMatcher。例如,为了启用断路器、重试、全局上游连接的统计数据,你可以指定如下的数据统计的匹配配置:

proxyStatsMatcher:
  inclusionRegexps:
    - ".*circuit_breakers.*"
  inclusionPrefixes:
    - "upstream_rq_retry"
    - "upstream_cx"

你也可以通过使用 proxy.istio.io/config 注解覆盖全局的数据统计匹配配置。例如,为了配置生成与上面相同的统计数据,你可以在一个 Gateway 代理或者一个工作负载上添加下面的注解:

proxy.istio.io/config: |-
  proxyStatsMatcher:
    inclusionRegexps:
    - ".*circuit_breakers.*"
    inclusionPrefixes:
    - "upstream_rq_retry"
    - "upstream_cx"
这些信息有用吗?
Do you have any suggestions for improvement?

Thanks for your feedback!