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

Grafana+Prometheus如何实现当前值超近24点最大值110%时触发告警

可行性结论

该动态告警逻辑完全可以在Grafana+Prometheus技术栈中原生实现,无需额外安装插件或接入第三方服务,直接通过标准PromQL编写规则即可满足需求。

前提说明

你提到24个数据点对应2小时监控时长,可推算当前指标采集间隔为5分钟,以下语句默认基于该采集间隔编写,如果你的实际采集间隔有调整,对应修改窗口时长和偏移量即可。

注意:逻辑实现默认做了合理性修正:如果直接将最新采集点纳入24个基准点的计算范围,当最新点本身就是24个点中的最大值时,它永远不可能超过自身的110%,会导致告警逻辑失效。因此常规突增类告警的基准统计窗口会偏移一个采集周期,排除当前判断的最新点,取此前24个连续点作为统计基准。如果你确实需要将最新点纳入基准统计,删除语句中的offset配置即可。

PromQL查询语句

推荐写法(逻辑无缺陷,适配突增告警场景)

# 将your_metric_name替换为你实际要监控的指标名,可按需加标签筛选条件
your_metric_name > 1.1 * max_over_time(your_metric_name[2h] offset 5m)

语句各部分作用:

  • your_metric_name:取对应指标的最新采集值,会自动按指标自带的标签维度(如实例ID、业务标签、资源标识等)做分组独立计算,不会跨维度混算阈值
  • max_over_time(your_metric_name[2h] offset 5m):统计最新采集点之前、连续2小时内24个数据点的最大值,偏移5m是为了排除当前最新点对基准值的干扰
  • 1.1 *:将基准最大值乘以1.1,即你要求的110%触发阈值

严格匹配原描述写法(含逻辑缺陷,仅作参考)

如果你确认需要将最新点纳入24个基准点的统计范围,使用以下语句即可:

your_metric_name > 1.1 * max_over_time(your_metric_name[2h])
Grafana侧配置方式
  • 若使用Grafana统一托管告警:新建告警规则时,在Prometheus数据源的查询栏填入上述语句,触发条件设置为查询结果值大于0即可——满足告警条件的时序会返回正数,不满足条件的时序不会出现在查询结果中
  • 若使用Prometheus原生告警规则:将上述语句填入告警规则的expr字段,按需配置for等待时长、告警标签、注解内容即可
适配调整说明

如果你的指标采集间隔不是5分钟,按以下规则调整参数即可:

  • 统计窗口长度 = 采集间隔 * 24
  • 偏移量 = 实际采集间隔
    举个例子:如果采集间隔为1分钟,24个点对应24分钟时长,语句就调整为your_metric_name > 1.1 * max_over_time(your_metric_name[24m] offset 1m)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 04:54:18