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
要查看关于统计数据收集的 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
注解,您也可以重载全局数据统计对应的配置。
例如,为了生成上述相同的统计数据,您可以在一个 Gateway 代理或者工作负载上添加以下注解:
metadata:
annotations:
proxy.istio.io/config: |-
proxyStatsMatcher:
inclusionRegexps:
- ".*outlier_detection.*"
- ".*upstream_rq_retry.*"
- ".*upstream_cx_.*"
inclusionSuffixes:
- "upstream_rq_timeout"