3. 静默窗口与 On-Call 的关系
静默窗口与 On-Call 交接并非两个独立的功能模块,而是告警生命周期中前后衔接、相互制约的两个环节。静默窗口决定了“哪些告警在何时不产生通知”,而 On-Call 交接决定了“这些通知由谁处理”。两者协同不当,轻则导致告警遗漏,重则引发故障响应延迟。
3.1 两者如何协同工作
在标准的事件响应流程中,静默窗口与 On-Call 调度按以下时序协同:
- 告警触发:监控系统检测到指标异常,生成告警事件。
- 静默窗口匹配:系统检查当前时间是否处于任何活跃的静默窗口内。
- 通知路由决策:
- 若命中静默窗口 → 告警被抑制,不产生通知,事件进入静默日志。
- 若未命中静默窗口 → 告警进入通知队列,查询当前 On-Call 排班表。
- On-Call 分配:根据轮值表将告警分配给当前值班人。
- 升级与交接:若值班人未确认或超时,告警升级至下一级;交接时静默窗口状态作为上下文传递。
3.2 静默窗口对交接流程的影响
On-Call 交接时,静默窗口的状态直接影响交接内容的完整性和值班人的决策。以下是静默窗口对交接流程的四个主要影响维度:
| 影响维度 | 具体表现 | 风险等级 |
|---|---|---|
| 告警上下文丢失 | 交接时未传递静默窗口的生效时间、原因和关联告警,接班人不清楚哪些告警被临时抑制 | 高 |
| 静默到期盲区 | 静默窗口在交接后立即到期,大量告警集中爆发,接班人未提前准备 | 高 |
| 重复确认 | 交班人已确认的告警因静默窗口重新打开,接班人再次收到相同通知 | 中 |
| 升级策略冲突 | 静默窗口覆盖了升级时间窗口,导致告警在静默期间无法升级,交接后突然升级 | 中 |
3.3 常见冲突场景
以下是生产环境中静默窗口与 On-Call 交接之间最常见的三种冲突场景,以及对应的处理建议:
场景一:静默窗口覆盖交接时段
现象:团队在凌晨 2:00-4:00 设置了静默窗口用于数据库维护,而 On-Call 交接恰好安排在 3:00。交班人无法确认维护期间的告警是否正常,接班人也不清楚维护进度。
建议:将静默窗口与交接时间错开至少 30 分钟;若无法错开,在交接备注中明确标注“当前处于静默窗口 [DB-MAINT-20250321],预计 4:00 到期,到期后请检查告警恢复情况”。
场景二:静默窗口到期与交接同时发生
现象:静默窗口在 9:00 到期,交接也在 9:00 进行。到期瞬间,被抑制的 20 条告警同时触发通知,接班人在交接会议上被大量告警淹没。
建议:静默窗口到期时间应避开交接时间点,建议设置在交接后 15-30 分钟,给接班人留出缓冲期。同时,在交接报告中提前列出即将到期的静默窗口清单。
场景三:跨时区交接的静默窗口漂移
现象:交班人在 UTC+8 时区设置了静默窗口 22:00-23:00,接班人在 UTC-5 时区,其本地时间与静默窗口不匹配,导致接班人在其白天收到大量本应被静默的告警。
建议:静默窗口应统一使用 UTC 时间定义,并在交接时明确标注时区。On-Call 排班系统应自动将静默窗口转换为值班人本地时间显示。