Istio遥测中reporter标签destination与source的区别及查询调整咨询
Istio reporter字段调整是否能忽略健康检查请求?
先把reporter的实际作用拆解清楚,避免歧义:
- reporter="destination":由目标服务的Sidecar代理上报,只要请求到达目标Pod的Sidecar(不管是直接访问Pod IP还是通过服务名转发),都会被统计进来。K8s的健康检查(存活/就绪探针)是Kubelet直接发往Pod IP的,这类请求会被目标Sidecar捕获,以
destination身份上报。 - reporter="source":由发起请求的客户端Sidecar或者网关上报,只有那些经过客户端代理转发的请求(比如其他服务通过服务名调用、网关进来的请求)才会被统计,Kubelet直接发的健康检查不会走客户端Sidecar,所以不会出现在这个维度里。
你想通过改成reporter="source"来忽略健康检查,这个思路是可行的,但得注意两个点:
- 改完后,所有直接访问Pod IP的请求(除了健康检查,比如运维直接访问Pod IP调试的请求)都会被排除在外。如果你的业务场景里没有这类合法的直接访问Pod的请求,那这个调整没问题。
- 确认下Istio有没有改过健康检查的默认配置——比如如果开启了让健康检查经过Sidecar的特殊设置,那健康检查可能也会出现在
source里,但默认Istio不会这么配置。
总结:如果你的业务不存在直接访问Pod IP的合法请求,只是要过滤掉Kubelet的健康检查,把reporter从"destination"改成"source"是合理的。
内容的提问来源于stack exchange,提问作者Wesley Freitas
相关产品推荐
相关产品推荐

