跳转到主要内容
慧筑数科
技术探索

告警太多怎么办?把去噪、事件状态和工单幂等连成一条链

同一异常反复生成通知和工单,会让值班人员难以判断真正需要处理的事件。本文将阈值抖动、关联抑制与重复执行分开讨论,给出事件状态、幂等键、维修窗口和恢复确认的设计方法,避免降噪后漏掉责任。

存量建筑机房更新与数字化盘点的概念示意(AI 生成)
存量建筑机房更新与数字化盘点的概念示意(AI 生成)

运维平台中的告警噪声有不同来源:测量值在阈值附近来回波动、一个上游故障引发多个下游异常、网络重试重复提交同一事件。它们都表现为“消息太多”,却需要不同处理方式。单纯减少通知频率,可能只是让问题暂时不再出现在屏幕上。

把采样、告警事件和工单分开

采样是某一时刻的观测,告警事件是一段持续异常,工单是人员处理任务。三者应有关联,但不宜一条采样对应一张工单。

可先为事件定义正常、待确认异常、持续异常、待确认恢复和已恢复等状态,再为工单定义受理、执行、验收和关闭等流程。事件恢复不等于维修任务自动合格,工单关闭也不等于传感器已经恢复正常。界面应能同时表达这两条状态线。

阈值附近的抖动需要时间与幅度两种约束

时间约束要求异常持续一定时长或满足约定采样条件后才成立;幅度约束则使用不同的触发线和恢复线。具体阈值与等待时间应由设备工况、厂商要求和项目责任人确定,不应套用一个全站统一数字。

Prometheus 的告警规则使用持续条件和恢复保持机制处理告警触发与反复变化。这提供了一种可借鉴的状态设计方式,而不是建筑设备阈值本身的依据。Prometheus:Alerting rules

例如某个非关键环境点位波动,可先确认它是传感器噪声、采样间隔变化还是实际工况变化,再决定增加持续判定。涉及关键安全功能时,降噪策略应由相应专业人员审核,不能为了让大屏“更干净”而扩大等待时间。

分组和抑制必须保留原始事件

一个网关离线可能带来多个点位中断。可以把它们关联到同一上游事件,突出根因候选,减少重复通知。Alertmanager 将分组、抑制与静默作为不同能力,这种区分有助于明确每条规则的目的。Prometheus:Alertmanager

处理方式 适用目的 应保留的记录
分组 一起展示相关事件 组内每个事件及其状态
抑制 上游事件存在时减少下游通知 被抑制原因、关联关系
维修静默 计划作业期间调整通知 审批人、范围、起止时间
重复去除 同一消息重试时避免重复动作 重试次数与执行结果

“没有发通知”不应被统计为“没有异常”。被抑制或静默的事件仍应可查询,并在规则失效后重新判断。维修窗口必须有明确到期时间,避免一次临时静默变成长期漏报。

用事件身份实现工单幂等

幂等意味着同一个业务请求被重复执行时,不会创建多份相同结果。对告警派单,可使用租户、设备、规则版本和本次事件 ID 组成业务唯一键。在同一事务中检查事件状态、创建或关联工单,并保存执行结果。

不要仅把“设备 ID 加当天日期”作为去重条件。同一设备一天可能发生两次相互独立的故障;过宽的规则会把第二次事件吞掉。也不宜每次重试都生成新随机键,否则形式上有 ID,实际上仍会重复派单。

网络超时后,调用方应能用原请求标识查询结果。若首次创建已经成功,只是响应没有送达,重试应返回同一工单。通知发送可与业务提交分开记录,通过待发送任务与重试状态衔接,避免通知失败导致重复建单。

恢复和关闭要留出证据位置

设备读数恢复后,可以将事件转为待确认恢复,但是否立即恢复、是否需要观察窗口,应由具体规则决定。工单验收则应检查处理措施、现场证据和复核结果。必要时允许“事件已恢复,工单待复核”,避免为了统一颜色而强行关闭任务。

对同一事件升级严重程度,也应沿用关联关系并记录升级轨迹。值班人员需要看到第一次出现时间、持续时长、最近变化与已经采取的行动,而不是每次升级收到一条失去历史的新消息。

验收时故意制造重复与反复变化

建议准备以下测试:连续越限但未满足持续条件、短暂恢复后再次异常、上游中断引发多个点位事件、维修窗口到期、派单响应丢失后重试、事件恢复但工单仍待验收。逐项核对事件数、工单数、通知数和审计轨迹。

还要用一段经过标注的历史数据回放旧规则与新规则,比较漏报、延迟和重复情况。只有噪声减少而应处理事件仍然可达,降噪才有意义。有关现场流程组织,可结合设备台账到工单闭环一起设计。

返回新闻中心联系慧筑