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

如何在Grafana Alerting中合并查询?基于Prometheus与SQL的告警过滤需求

在Grafana 9.4中实现SQL过滤Prometheus告警的方案

可以实现,不过不能直接照搬仪表盘面板的转换步骤(告警规则不支持面板里的Merge/Filter这类可视化转换操作),但可以通过变量+Prometheus正则匹配的方式达到同样效果,具体步骤如下:

1. 创建SQL数据源的有效租户变量

  • 进入Grafana的「变量」设置页面,新建一个查询类型变量
  • 数据源选择你的SQL数据源,查询语句写:
    SELECT tenant FROM your_table WHERE is_visible = 1
    
  • 变量名设为valid_tenants,变量类型选「查询」,勾选「多值」(如果需要匹配多个租户),保存变量

2. 在告警规则中引用变量过滤Prometheus指标

  • 新建告警规则,数据源选择Prometheus
  • 告警查询语句修改为:
    your_metric{tenant=~"$valid_tenants", ...}
    
    这里用Prometheus的=~正则匹配操作符,Grafana会自动把变量中的多个租户值拼接成tenant1|tenant2|tenant3的正则格式,只返回符合条件的租户指标

3. 验证和调整

  • 先在仪表盘的Prometheus查询中测试这个变量引用,确认只返回is_visible=1的租户数据
  • 回到告警规则,设置你的告警阈值条件(比如指标值>XX),完成配置

补充说明

如果你的SQL过滤逻辑更复杂(比如需要动态关联更多字段),可以考虑用Prometheus的记录规则先预处理指标,但变量方案是最贴合你现有逻辑、实现成本最低的方式,完全适配Grafana 9.4版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 09:15:11