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

如何在Grafana中为长时间无变化的Prometheus Gauge指标创建告警?

检测自定义Gauge指标长时间无变化的PromQL查询语句

要实现当my-custom-metric超过1小时未更新(数值保持不变)时触发告警,核心思路是对比当前指标值与1小时前的数值,判断两者是否相等。以下是具体的查询语句和相关说明:

基础查询语句

my-custom-metric == my-custom-metric offset 1h

这个语句会匹配所有当前数值与1小时前数值完全相等的my-custom-metric时间序列,返回满足条件的序列(值为1,不满足则无结果)。

优化后的查询(处理边界情况)

如果需要强制返回布尔值(1表示未更新,0表示已更新),或者避免因样本缺失导致的误判,可以使用bool修饰符:

my-custom-metric bool == my-custom-metric offset 1h

若要针对“当前存在指标但1小时前无指标”的场景(比如服务刚启动)排除告警,可结合unless做进一步过滤:

my-custom-metric == my-custom-metric offset 1h unless my-custom-metric unless my-custom-metric offset 1h

不过对于长期运行、定期更新的Cron任务场景,基础查询已经足够覆盖需求。

Grafana告警配置注意事项

  • 在告警规则中,将上述查询作为数据源查询,设置评估时间窗口为5-10分钟(避免因单次采样偏差导致误报)。
  • 若指标包含多维度标签(如instance、operation_type),可以在查询中添加标签过滤,比如只监控特定实例:
    my-custom-metric{instance="backend-prod-01"} == my-custom-metric{instance="backend-prod-01"} offset 1h
    
  • 告警触发条件设为“查询结果不为空”(或当bool查询结果为1时),即可在指标长时间未更新时触发告警。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 03:55:04