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

Grafana v8.3.4搭配InfluxDB如何传递告警动态值至通知

Grafana v8.3.4对接InfluxDB告警动态值传参实现方案

以下为对应场景的可落地实现步骤,匹配你提供的配置截图:
InfluxDB查询配置界面
告警规则配置界面
现有通知模板配置

你当前使用Grafana v8.3.4经典面板告警模块对接InfluxDB,告警逻辑为查询结果last()值超过设定阈值时触发,需要把触发时刻的实际指标值、配置阈值动态传入通知内容,具体操作如下:

核心实现逻辑

Grafana告警模板只能读取查询链路返回的结构化结果,硬编码在告警条件输入框里的固定阈值不会被暴露给模板变量,因此要先把阈值从硬编码条件改成独立查询项,再通过内置模板变量取值。

具体操作步骤

  • 第一步:改造查询与告警条件
    • 保留原来取指标last()值的查询,默认查询别名为A即可
    • 新增一个常量查询,别名设为B,直接填写你要设定的阈值数值(比如阈值为90就直接填90,数据源可选择「-- Dashboard --」常量数据源,也可以用InfluxDB的常量查询语法)
    • 修改告警触发条件,从原来的WHEN last() OF query(A,5m,now) IS ABOVE [固定阈值]改成WHEN last() OF query(A,5m,now) IS ABOVE query(B,5m,now)
  • 第二步:修改通知模板
    直接在原有通知内容里用内置变量替换对应位置即可,常用变量说明:
    • 触发时刻的实际last()取值:${values.A.value},对应取值的时间戳用${values.A.time}获取
    • 配置的阈值:${values.B.value}
    • 告警规则名称:${rule.name}
    • 告警跳转链接:${rule.url}
    • 查询返回的维度标签(比如设备名、主机名这类InfluxDB tag):${tags.标签名},比如主机名标签是host就用${tags.host}
      可直接参考的模板示例:
【告警通知】指标超出阈值
告警规则:${rule.name}
触发时间:${values.A.time}
实际指标值:${values.A.value}
配置阈值:${values.B.value}
关联实例:${tags.host}
详情跳转:${rule.url}
  • 第三步:验证配置
    配置完成后点击告警规则页的「Test rule」按钮发送测试通知,确认所有动态值都能正常替换,不需要等待真实告警触发即可验证效果。

适配新版统一告警的补充说明

如果你手动开启了v8.3.4里的新版统一告警模块,模板变量语法略有区别:

  • 实际指标值用{{ $values.A.Value }}获取,需要格式化小数可以用{{ printf "%.2f" $values.A.Value }}
  • 阈值用{{ $values.B.Value }}获取
  • 核心的「阈值转独立查询」逻辑和经典告警完全一致。

常见踩坑

  • 不要直接把阈值写在告警条件的固定值输入框,这类硬编码值不会进入查询结果集,模板无法读取
  • 确保InfluxDB的last()查询返回的是数值类型,如果返回字符串类型模板会显示为空,必要时在InfluxQL里加类型转换
  • 如果多维度查询下出现值为空的情况,确认查询别名和模板里引用的别名(A/B)完全一致,配置大小写敏感。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 13:12:17