Grafana OSS 9.1.8:带阈值过滤查询时Y轴起始值异常(非零)
解决Grafana OSS 9.1.8中带标量过滤的PromQL查询Y轴起始值异常问题
问题现象
- 在Grafana OSS 9.1.8中,使用标量值过滤实例向量(即给PromQL查询添加阈值过滤条件,比如筛选CPU使用率超标的实例)时,图表Y轴会从随机非零值起始
- 示例查询:
(container_cpu_usage_seconds_total{...}/kube_pod_container_resource_requests{...}) > ${CPU_THRESHOLD} - 即便在图表设置里配置了
soft min和soft max,Y轴起始值仍显示异常;但移除查询中的阈值过滤条件后,Y轴显示恢复正常
原因分析
这是Grafana 9.1.x版本存在的已知渲染逻辑bug:当PromQL返回经过标量过滤后的向量时,Grafana的Y轴计算逻辑会错误跳过配置的soft min参数,转而以过滤后数据的最小值作为起始基准。而过滤后的数据最小值本身就高于设定的阈值,因此Y轴会从该值附近开始,呈现出“随机非零”的异常表现。
解决方案
方案1:用clamp_min函数替代直接过滤
修改查询逻辑,保留所有实例但将低于阈值的值设为0,既满足关注高使用率实例的需求,又能让Y轴正确识别0作为起始基准:
clamp_min((container_cpu_usage_seconds_total{...}/kube_pod_container_resource_requests{...}), ${CPU_THRESHOLD})
如果需要完全隐藏低于阈值的实例,可配合图表的「隐藏零值系列」功能,效果比直接过滤更稳定。
方案2:硬限制Y轴起始值为0
放弃使用soft min,直接将Y轴的min参数设置为0(硬限制),强制Y轴从0开始。此方法操作简单,但如果过滤后的数据均远高于0,可能会压缩图表可视化空间,影响数据细节查看。
方案3:升级Grafana版本
该Y轴计算逻辑bug在Grafana 9.2及以上版本已被修复,升级至较新的稳定版本(如9.2.x或更高)可彻底解决此问题。
内容的提问来源于stack exchange,提问作者Sudhakar MNSR
相关产品推荐
相关产品推荐

