You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Grafana多值变量搭配avg()函数查询异常求助

解决Grafana多选变量下Prometheus avg()聚合过度的问题
  • 核心修改:给avg()函数加上by(label1, label2)子句,让Prometheus按你需要的标签维度分别计算平均值,而非将所有匹配序列聚合为单一值。
    修改后的查询示例:

    avg(metric{label1="$label1",label2=~"$label2",label3=~"$label3"}) by(label1, label2)
    
  • 原理说明:
    默认情况下,Prometheus的avg()函数会移除所有标签,将所有符合条件的时间序列聚合为一个单一平均值。加上by(label1, label2)后,会保留这两个标签的组合,对每个唯一的(label1, label2)配对分别计算平均值,这样就能得到你期望的host1-host4 10%、host2-host5 15%这类分维度的结果。

  • 适配多选和ALL选项:
    这个修改完全兼容多选和ALL变量模式——当你选择多个标签值或ALL时,变量会自动展开为对应的匹配规则,by子句依然会按每个(label1, label2)的唯一组合独立聚合,不会出现所有结果揉在一起的情况。

  • 额外提示:
    如果你还需要保留其他标签维度(比如label3的某些值),可以把对应的标签也加到by的括号里,比如by(label1, label2, label3),确保每个你需要区分的维度都被包含进去。

内容的提问来源于stack exchange,提问作者Sammi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 05:15:32