Envoy 的统计信息
Envoy 代理收集保留了关于网络流量的详细统计信息。
Envoy 的统计信息只覆盖了特定 Envoy 实例的流量。参考 可观测性了解关于服务级别的 Istio 遥测方面的内容。这些由 Envoy 代理产生的统计数据记录能够提供更多关于 pod 实例的具体信息。
查看某个 pod 的统计信息:
$ kubectl exec $POD -c istio-proxy -- pilot-agent request GET stats
参考 Envoy 文档了解更多有关于这些记录数据的解释。
Istio 默认配置下 Envoy 只会记录最小化的统计信息。缺省的关键词集合有:
cluster_manager
listener_manager
http_mixer_filter
tcp_mixer_filter
server
cluster.xds-grpc
要查看关于统计数据收集的 Envoy 配置,可以使用istioctl proxy-config bootstrap
命令,还可以参考深入研究 Envoy 配置 更加深入的了解相关的配置。需要注意的是, 只有那些 stats_matcher
JSON 字段能匹配上 inclusion_list
的元件,Envoy 才会去收集他们的统计数据。
要想让 Envoy 去收集出站和入站流量的统计信息,只需将 sidecar.istio.io/statsInclusionPrefixes
注解加到 Kubernetes Deployment
的 pod 模板里去。在模板里加上 cluster.outbound
前缀就能统计出站流量活动和熔断事件的数据, 相似,如果要收集入站流量的数据,只需加上 listener
前缀。这个例子 fortio-deploy.yaml 中用 cluster.outbound
前缀展示了 sidecar.istio.io/statsInclusionPrefixes
的用法。
你可以通过覆盖 Envoy 的默认配置去收集比通常更少的数据。比如可以使用sidecar.istio.io/statsInclusionPrefixes: cluster_manager,listener_manager
去收集尽可能少的统计数据。