如何让PagerDuty等待Stack Driver滚动窗口结束后关闭对应事件?
如何让PagerDuty等待Stack Driver滚动窗口结束后关闭对应事件?
先跟你梳理下你遇到的这个边缘场景导致孤儿事件的完整流程:
- Stack Driver基于指标触发了告警事件
- 事件通知推送到了PagerDuty(PD)
- 手动解决了PD中的事件,同时此时指标停止发送数据(这个是比较特殊的边缘情况)
- 结果PD没有关闭对应的Stack Driver事件,导致这个事件一直残留
你提到你的Stack Driver告警策略配置是不希望数据缺失时自动关闭事件,而PD无法自动关闭SD事件的原因,大概率是SD本身的机制:必须等滚动窗口完全结束后,才允许关闭对应的告警。
针对这个问题,我给你几个可行的解决思路:
调整PD与SD的集成触发规则
把PD的事件关闭逻辑改为仅接收SD的“告警清除”信号才关闭事件,而不是允许手动解决后直接关闭PD事件。这样就算你手动标记PD事件为解决状态,它也会保持和SD事件的关联,直到SD滚动窗口结束、发送了明确的清除通知后,PD才会同步关闭对应的事件,避免孤儿事件产生。优化Stack Driver的告警清除配置
检查你的SD告警策略,确保当滚动窗口结束后,不管指标是恢复正常还是停止发送数据,SD都能触发“告警解除”的动作并推送给PD。你需要确认策略里的清除条件是否覆盖了“滚动窗口到期后无符合触发条件的指标数据”这种场景,确保SD能及时给PD发送关闭信号。在PD中设置自动化规则兜底
可以在PD里创建一条自动化规则:当手动解决关联SD的事件时,不直接关闭事件,而是将其转为“待确认”状态,同时设置等待SD的清除信号。一旦收到SD的清除通知,再自动将PD事件标记为关闭。这样能避免手动操作和SD窗口机制之间的冲突。
备注:内容来源于stack exchange,提问作者red888
相关产品推荐
相关产品推荐

