代理级指标
-
Envoy会生成其资源级别(例如Listener、Cluster等)的指标
-
获取Envoy统计信息的常用方式有两程
-
Admin Interface的/stats或/stats/prometheus
-
用于接收统计信息的StatsD集群
-
-
Envoy常用的统计指标的说明
-
HTTP连接器相关
-
https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_conn_man/stats#config-http-conn-man-stats
-
-
Cluster管理器相关
-
https://www.envoyproxy.io/docs/envoy/latest/configuration/upstream/cluster_manager/cluster_stats#config-cluster-manager-cluster-stats
-
-
-
-
网格上的代理级指标
- 默认情况下,Istio仅启用了Envoy生成的统计信息的一小部分,以免导致指标后端过载,也能够减少与指标收集相关的CPU开销
-
同时,Istio也支持由用户在指定的Envoy实例上自定义要收集统计指标
Istio启用的代理级指标
-
解Envoy启用的统计指标
-
相关的端点:/stats和/stats/prometheus
-
获取命令:
-
kubectl exec "$POD" -c istio-proxy -- pilot-agent request GET /stats
-
kubectl exec "$POD" -- curl localhost:15000/stats
- curl $POD_IP:15020/stats/prometheus
-
-
查看启用的统计指标
-
命令:~$ istioctl proxy-config bootstrap $POD.$NAMESPACE | jq .bootstrap.statsConfig
-
statsMatcher.inclusionList段:要暴露的各指标
- statsTags段:支持在指标上使用的标签
-
-
-
-
默认情况下,Istio仅在Envoy上启用了统计信息中的一个较小的子集,相关的指标键包括
-
键前缀匹配
-
cluster_manager、listener_manager、server、cluster.xds-grpc、wasm、component
-
-
键后缀匹配
-
rbac.allowed、rbac.denied、shadow_allowed和shadow_denied
-
-
-
Istio Proxy暴露指标的位置
-
网格中的各Envoy实例使用15020端口上的/stats/prometheus端口对外暴露指标
-
相关工作负载的Pod上会借助于Annotation向Prometheus的Scraper指定该位置
-
在网格上配置代理级指标
- Istio上与网格代理相关的默认配置定义在MeshConfig.defaultConfig配置段中,而每个Pod之上Sidecar Envoy的指标定义则要通过Annotations完成
-
要自定义启用的统计指标可以使用MeshConfig.defautConfig.proxyStatsMatcher进行定义
-
inclusionRegexps:基于正则表达式模式指定要启用的统计指标键
-
inclusionPrefixes:基于前缀匹配指定要启用的统计指标键
-
inclusionSuffixes:基于后缀匹配指定要启用的统计指标键
-
应用指标
# istio install -f filename
还原指标
# Istio install --set profile=demo -y
代理级指标示例
Annotations
apiVersion: v1
kind: Pod
metadata:
name: client
annotations:
proxy.istio.io/config: |-
proxyStatsMatcher:
inclusionRegexps:
- ".*circuit_breakers.*"
inclusionPrefixes:
- "upstream_rq_retry"
- "upstream_cx"
spec:
containers:
- image: ikubernetes/admin-box:v1.2
name: client
command: ['/bin/bash','-c','sleep 99999']
resources: {}
dnsPolicy: ClusterFirst
restartPolicy: Never
MeshConfig
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
profile: demo
meshConfig:
defaultConfig:
proxyStatsMatcher:
inclusionRegexps:
- ".*circuit_breakers.*"
inclusionPrefixes:
- "upstream_rq_retry"
- "upstream_cx"
参考文档
https://istio.io/latest/zh/docs/tasks/observability/metrics/
标签:stats,启用,Envoy,Istio,代理,指标,cluster From: https://www.cnblogs.com/wangguishe/p/16866258.html