同比、环比告警,减少周期波动误报
告警复核时,运维林工准备把一台批处理主机的 CPU 阈值调高。每天任务启动后都会报警,值班人员查过进度和业务响应,往往又确认是一次预期高峰。
但拉开低峰时段的曲线,他又发现另一种变化:CPU 使用率比平时明显升高,却一直没有达到原来的告警阈值。如果这时继续调高阈值,这类变化就更难被同一条规则发现。
林工需要决定的,既包括什么时候应该响应,也包括怎样减少重复确认。下面沿着这次简化的策略复核,说明历史比较如何帮助他作出判断;数值均为示例,不代表通用阈值或实际效果。
同比、环比告警可以把历史表现变成明确的比较依据,让周期性高峰不必每次都从头解释,也让低峰时值得关注的偏离更容易进入核查范围。

一条阈值承担了两种判断
林工原来的条件很直接:CPU 使用率超过 60% 就触发。他希望它既能提醒资源压力,也能发现运行状态偏离平时的情况。
这两种需求放在有明显周期的指标上,很容易互相牵制。
批处理启动时,负载本来就高;日常低峰时,同样的数值可能已经需要检查。若只看绝对数值,规则并不知道这台主机此刻处于什么运行阶段。
抬高阈值能够减少部分触发,但也扩大了低峰时的判断空白。反过来,为了捕捉低峰变化而降低阈值,正常高峰又可能反复触发。
容量边界回答“是否接近需要干预的水平”;历史比较回答“是否偏离可比时段的表现”。
林工因此先保留容量判断,把策略复核的重点转到另一个问题:这台主机应该与哪段历史比较,以及怎样表达偏离。
让比较依据逐步明确
一、找出可比时段
林工先查看几轮批处理前后的指标趋势,并与任务计划对照。他要确认高峰是不是稳定出现,持续时间是否接近,而不能因为“昨天也高”就直接把昨天当成正确参照。
如果任务每天固定启动,前一天对应时段可能有参考价值。若工作日与周末的任务量不同,则需要考虑周周期;任务临时延后时,即使时钟上的时间相同,也未必处于同一运行阶段。
环比能够帮助观察相邻时段的变化,但从低峰进入批处理高峰,本来就可能有一次明显增长。它适合回答变化有多快,是否值得响应仍需结合业务节奏。
节假日、扩容或批处理时间调整以后,原来选好的历史窗口也要重新核查。若参考时段恰好发生过故障,把它当成常态,后续判断就会跟着失准。
对林工来说,选择历史窗口的依据应当能说清:为什么这些时段可以放在一起比较,哪些业务变化会让这个选择失效。
二、统一统计口径
找到了相似时段,林工还要确认两边比较的是同一类数据。
例如,当前值来自一台主机,参考却混入了其他实例;当前看最大值,参考看平均值;或者两边的单位与汇聚时间不同。即使最后都能得到一个百分比,差异也未必来自业务变化。
核对时可以先固定四项:
- 对象范围: 同一指标、实例及相应过滤条件。
- 分组维度: 比较结果是否对应同一组对象。
- 统计方法: 汇聚方式及数据周期是否可比。
- 数值单位: 原始单位、计算单位及百分比口径是否一致。
这一步会影响后续所有阈值解释。若比较对象本身不一致,再精细的偏离条件也很难帮助林工确认问题。
三、说明偏离程度
口径对齐后,再看同一台主机的两段示例数据:
| 运行阶段 | 可比历史值 | 当前值 | 差值 | 相对增长 |
|---|---|---|---|---|
| 批处理高峰 | 60% | 66% | 6 个百分点 | 10% |
| 日常低峰 | 10% | 30% | 20 个百分点 | 200% |
原来的“超过 60%”会命中第一行,不会命中第二行。加入历史参照后,林工可以进一步判断:高峰的这次增长是否符合预期,低峰的这次偏离是否需要检查进程与任务。
表中的差值与变化率表达了不同信息。CPU 从 10% 到 30%,增加 20 个百分点,相对原值增长 200%,当前值则是历史值的 3 倍。不能把这些数字当成同一种阈值单位使用。
差值适合描述绝对增减,变化率和倍数适合观察相对幅度。但参考值很小时,轻微的绝对变化也可能产生很大的比例;历史数据缺失时,更不能直接按正常基准处理。
到这里,林工已经不需要先争论“66% 和 30% 哪个更危险”。他可以分别说明它们相对平时变了多少,再结合资源边界和业务现象决定响应。

技术洞察:保留双重判断
历史比较让规则具备了运行背景,但历史本身不能保证安全。某台主机若长期接近容量边界,当前值与过去相近,也仍可能需要干预。
因此,林工不会把原有绝对值条件全部替换掉,而是将两类判断分别维护:
| 判断依据 | 主要回答的问题 | 需要核验的内容 |
|---|---|---|
| 绝对值条件 | 是否达到需要干预的资源水平 | 容量余量、业务影响及处置要求 |
| 历史偏离条件 | 是否偏离可比时段的表现 | 窗口可比性、数据完整性与偏离口径 |
历史偏离提供新的核查入口,容量条件继续保留必要的风险边界。 两者可以服务于不同响应目的,不能仅以告警总数是否下降来评估效果。
把比较条件留在策略里

林工已经找到了可解释的参照,接下来要让这份判断持续生效,并能由其他值班人员接手。若每次报警都重新拉曲线、靠个人经验解释,重复确认的成本仍会保留下来。
WeOpsX 监控中心可以将历史参照写进策略的比较基准与告警条件,把这部分经验变成可检查的配置。
选择参照与比较方式
监控策略支持当前值、环比和同比比较。同比可选择 N 小时前、N 天前、近 N 天均值或近 N 周均值;比较值支持差值、变化率与倍数。这里的同比按产品所选历史窗口理解,不限于上一年。
配置时,林工需要先明确监控目标、指标、过滤与分组条件,再确定汇聚方式和周期,最后选择对应的历史参照与偏离条件。
还要区分两个时间概念:汇聚周期决定一段指标数据怎样参与计算,历史对照窗口决定参照哪段过去的数据。产品要求对照窗口不能等于汇聚周期,具体选项按策略页面支持的范围设置。
这些能力能够承接林工已经确认的运行规律。业务周期是否成立、异常样本是否适合参考,仍需要他结合任务计划与真实指标判断。
预览条件并查看现场
策略页提供指标预览、阈值对照与查询结果预览,便于林工检查目标和条件是否对应。对于一段明确的偏离,应能说明参考来自哪里,触发使用的是差值、变化率还是倍数。
历史时段可以通过指标检索进行人工对照。策略启用后,再结合实际触发记录与指标现场观察,确认条件是否产生预期判断;监控告警详情保留生命周期内的指标快照,可用于复核当时的情况。
这形成了两步验证:配置前检查比较依据,运行后检查触发结果。预览中有数据,还不足以证明策略已经适合长期值班。
从一个指标开始核验
林工可以先选这台批处理主机,在小范围内验证,再考虑推广。核验对象至少同时包含正常高峰、正常低峰和已知异常时段。
| 检查项 | 需要回答的问题 |
|---|---|
| 数据是否可比 | 实例、指标、维度、单位和汇聚口径是否一致?历史是否完整? |
| 窗口是否合理 | 是否对应真实运行周期?是否混入节假日、故障或任务调整? |
| 正常样本是否得到解释 | 正常爬升为何不应反复响应?所选条件是否支持这一判断? |
| 异常线索是否保留 | 已知异常时段的偏离,是否能由条件表达并继续核查? |
| 容量风险是否仍受关注 | 长期高位是否仍有必要的绝对值条件? |
| 运行结果是否一致 | 实际触发记录、指标现场和业务解释是否对应? |
验证过程中,也应记录窗口的选择理由以及需要重新评估的情形。批处理改了时间、主机扩了容量或业务节奏变化后,接手的人就知道该从哪里重新检查。
回到最初那次复核,林工最终要交付的,是一套能被说明和验证的判断依据:预期高峰不必每天重复确认,低峰偏离有明确的核查条件,接近容量边界时仍保留响应入口。
当这些依据真正进入策略并经运行核验,同比、环比告警才能持续减少周期波动带来的干扰,让值班人员把时间更多用在值得检查的变化上。