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

如何用New Relic与Prometheus指标实现周均值对比基线告警?

解决New Relic中本周指标均值低于上周均值的告警配置问题

核心方案:用WITH子句计算双周期均值并比较

由于COMPARE WITH语法无法在告警条件中使用,我们可以通过NRQL的WITH子句分别计算本周和上周的指标均值,再直接比较二者大小,以此作为告警触发条件。

1. 先处理Prometheus计数器指标

Prometheus计数器是单调递增的,直接取均值没有业务意义,必须先转换为速率值。使用rate()函数计算1分钟内的速率(可根据你的指标频率调整窗口,比如[5m]):

rate(prometheus_my_counter[1m])

2. 完整NRQL查询语句

替换prometheus_my_counter为你的实际指标名,可按需添加标签过滤条件(比如AND job="your_job"):

WITH
  this_week_avg AS (
    SELECT average(rate(prometheus_my_counter[1m]))
    FROM Metric
    WHERE timestamp >= now() - 7 days AND timestamp < now()
  ),
  last_week_avg AS (
    SELECT average(rate(prometheus_my_counter[1m]))
    FROM Metric
    WHERE timestamp >= now() - 14 days AND timestamp < now() - 7 days
  )
SELECT (this_week_avg.value < last_week_avg.value) AS alert_trigger
FROM this_week_avg, last_week_avg

3. 配置告警条件

基于上述NRQL创建告警规则时:

  • 设置告警触发逻辑为:当alert_trigger等于true时触发
  • 可根据需求调整查询的时间窗口、聚合粒度,或者添加阈值缓冲(比如this_week_avg.value < last_week_avg.value * 0.9,即低于上周90%才告警)

关键注意事项

  • 时间范围要严格隔离:本周是now()-7d到now(),上周是now()-14d到now()-7d,避免时间重叠导致数据不准确
  • 如果指标有多个维度(比如不同实例),要在SELECT中添加FACET instance,并确保告警条件针对每个维度单独判断
  • 若遇到数据缺失问题,可在查询中添加FILL(0)来填充空值,避免比较逻辑失效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 18:12:31