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

Grafana中$project变量设为All时查询无结果该如何解决

问题原因说明

你的猜测是正确的,问题根源在于PromQL匹配符和变量值的逻辑冲突:

  • 你当前使用的=是精确相等匹配符,当$project选具体值时,传入的project_A/project_B会被解析为精确匹配对应标签值,因此查询正常。
  • 当你选择All选项时,变量实际传入值为*,此时查询条件变成project="*",代表匹配project标签值为字符*的指标,而你的业务指标里没有符合该条件的数据,因此返回空结果。
解决方法

最简便的修复方案是将精确匹配符=替换为正则匹配符=~,修改后的查询语句如下:

sum by (uri,status,method)(
 rate(http_server_requests_seconds_sum{team="myTeam",uri!="/actuator/prometheus",uri!="/actuator/health",project=~"$project"}[10m])  / 
 rate(http_server_requests_seconds_count{team="myTeam",uri!="/actuator/prometheus",uri!="/actuator/health",project=~"$project"}[10m]) 
)

额外优化建议:

  • 如果需要提升兼容性,可以到Grafana变量设置页,将All选项的自定义值从*改为.+,该值是正则语法中匹配任意非空字符串的标准写法,避免特殊场景下*的解析异常。
  • 该写法天然支持变量的多选配置,Grafana会自动将多选的多个值拼接为值1|值2的正则格式,可直接正常匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:15:10