首页 > 解决方案 > Grafana Cloud:划分两个查询显示“无数据”

问题描述

在 Grafana 仪表板面板中,我有两个查询:

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"})

这可以很好地单独显示: 在此处输入图像描述

但是当我尝试使用“avg”来划分“rate”时:

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"})

结果显示“没有数据”。 在此处输入图像描述

该查询曾经在 Grafana 版本 6.7.5 中工作,但是当我尝试将其移动到 Grafana Cloud 时,出现了这个问题。

任何人有任何想法?

标签: grafanapromqlgrafana-templating

解决方案


这会引发 a No data,因为您有两种不同的表达式数据类型。在左侧,您有一个range vector和右侧scalar类型。查询应该在每个部分中返回相同的 LabelSet,因此您需要将右侧也与by子句一起分组。

例如,以下查询应该有效:

sum by (namespace,container) (rate(container_cpu_usage_seconds_total{cloud=~"${cloud}",environment=~"${environment}",location=~"${location}",container="tlm-telemetry-service",namespace="tlm"}[5m])) / 
avg by (namespace,container) (kube_pod_container_resource_limits_cpu_cores{namespace="tlm"})


推荐阅读