Grafana Cloud中两个PromQL查询相除返回no data如何解决
故障原因
- PromQL算术运算默认要求两个操作数的时间序列标签完全匹配才能完成计算,无匹配对的序列不会返回结果。
- 第一条
rate查询的结果携带cloud、environment、location、container、namespace等多组业务标签;第二条avg聚合查询未指定by/without子句,聚合后返回的是无任何额外标签的全局单值,两者标签无交集,因此运算后返回no data。 - 该问题触发是因为Grafana Cloud默认使用标准PromQL匹配规则,旧版本Grafana 6.7.5可能搭配的Prometheus版本或面板配置存在隐式宽松匹配逻辑,因此之前可以正常返回结果。
解决方案
在除法运算后添加group_left修饰符,指定以多标签的左侧查询结果为基准,将右侧的全局平均值匹配到所有左侧序列上即可,修改后的完整查询语句如下:
rate(container_cpu_usage_seconds_total{cloud=~"${cloud}",environment=~"${environment}",location=~"${location}",container="tlm-telemetry-service",namespace="tlm"}[5m]) / avg(kube_pod_container_resource_limits_cpu_cores{namespace="tlm"}) group_left()
修改后可先在Grafana Explore页面执行验证,确认数据返回正常后再保存面板配置即可。
内容的提问来源于stack exchange,提问作者Ken Tsoi
相关产品推荐
相关产品推荐

