Grafana Cloud:划分两个查询显示 "no data"

Grafana Cloud: dividing two queries shows "no data"

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

可以很好的分开展示:

但是当我尝试使用“平均”除以“比率”时:

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 时,出现了这个问题。

有人知道吗?

这会引发 No data,因为您有两种不同的表达式数据类型。在左侧,您有一个 range vector 类型,在右侧有一个 scalar 类型。查询应该 return 在每个部分中使用相同的 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"})