如何用 Flashduty 分析看板发现告警噪音来源

本文介绍如何用 Flashduty 分析看板从团队、协作空间、严重程度、时间、中断次数和告警 TOP 等维度定位告警噪音来源,并把治理动作做成可验证的持续改进。

作者 快猫星云

如何用 Flashduty 分析看板发现告警噪音来源

很多团队接入 Flashduty 以后,第一反应是看通知有没有发出去。

电话有没有打到。
短信有没有收到。
飞书、钉钉、企业微信有没有推送。
值班人有没有被分派。
升级策略有没有生效。

这些当然要验证。

但如果只验证通知链路,很容易把 On-call 平台用成一个更强的消息转发器。

真正的告警治理不能停在“通知到人”。

它还要回答几个更难的问题:

到底是谁在制造最多告警?
哪些服务贡献了最多无效打扰?
哪些检查项每天重复触发?
哪些对象长期排在告警 TOP?
哪些团队 MTTA 高,是因为响应慢,还是告警太乱?
哪些时间段的中断最伤人?
哪些告警应该聚合、静默、抑制,而不是继续通知?

这些问题靠群消息看不出来。

群里只能看到当前一条告警。

分析看板才能看到一段时间内的结构。

Flashduty 的分析看板不是为了做一张漂亮报表。

它更适合被当成告警治理的入口:先用数据找到噪音来源,再回到告警规则、标签、路由、降噪和值班策略里做调整。

这篇文章讲的就是这个过程。

Flashduty 分析看板定位告警噪音的关键维度

先别急着看 MTTR,先看告警从哪里来

很多团队一打开分析看板,第一眼会去看 MTTA 和 MTTR。

这很自然。

MTTA 代表平均认领时长。
MTTR 代表平均恢复时长。

它们确实是重要指标。

但在告警噪音治理的第一阶段,我不建议先盯着 MTTR。

原因很简单:MTTR 高,不一定是告警噪音导致的。

可能是故障真的复杂。
可能是回滚流程慢。
可能是依赖系统恢复慢。
可能是缺少预案。
可能是需要多个团队协作。

如果一开始就问“为什么 MTTR 高”,很容易把问题带到处理人身上。

但告警噪音的问题,经常发生在更前面。

告警规则太敏感。
告警标签不完整。
严重级别映射不准。
重复事件没有聚合。
低价值告警没有静默。
同一根因下的次要告警没有抑制。
测试环境告警走了生产升级链路。

所以,第一步应该先看告警来源结构。

Flashduty 分析看板支持按团队、协作空间、严重程度、时间范围等维度筛选。这个能力很重要,因为它让你不必在一堆混合数据里猜。

建议先用最近 7 天或最近 14 天作为观察窗口。

窗口太短,容易被一次偶发故障影响。
窗口太长,又会把历史治理前后的状态混在一起。

如果团队刚接入 Flashduty,可以先看 7 天。

如果已经稳定运行一段时间,可以看 14 天或 30 天。

先回答三个问题:

哪个团队故障数量最多?
哪个协作空间故障数量最多?
哪个严重程度的故障数量异常偏高?

这三个问题比单看全局总量更有价值。

全局一天 500 条故障,只能说明多。

但如果其中 300 条来自一个测试环境协作空间,处理方式就不是全局治理,而是先改这个空间的分派和静默策略。

如果 500 条里 350 条都是 Warning,且响应比例很低,说明团队可能把不需要立即处理的风险提醒推成了待响应故障。

如果 Critical 数量异常高,先不要急着调低通知强度,应该先检查严重级别映射是不是失真。

很多告警治理失败,不是因为没有数据。

而是因为只看总量,不看分布。

团队维度:谁承受了最多告警压力

团队维度适合回答一个管理问题:

告警压力是不是均匀分布?

在多团队环境里,告警数量不均匀很常见。

有的团队负责核心链路,告警自然更多。
有的团队管理基础设施,资源类告警更多。
有的团队接入了很多历史监控规则,噪音更多。
有的团队标签比较规范,看起来告警少,其实只是路由更准。

所以,团队维度不能只看“谁多谁少”。

要结合几个指标一起看:

故障数量
响应比例
MTTA
响应投入
中断次数

如果某个团队故障数量高,但响应比例也高,MTTA 不差,说明它确实承担了大量生产响应工作。

这种情况不一定优先做降噪。

可能更应该看排班是否公平,主备是否合理,是否需要拆分服务责任,或者是否需要增加值班人。

如果某个团队故障数量高,响应比例低,MTTA 也高,问题就不只是工作量。

它可能说明:

告警没有分派到正确的人
告警本身价值低,没人愿意认领
严重级别混乱,值班人无法判断优先级
团队只把 Flashduty 当通知入口,没有形成认领习惯

这时,不应该简单要求团队“响应快一点”。

应该回到路由、标签和分派策略。

比如检查:

team 标签是否稳定
service 标签是否能映射到责任团队
Critical 是否真的只包含需要立即处理的故障
低优先级告警是否应该只进群或只记录
未认领是否会自动升级

如果某个团队故障数量不高,但中断次数很高,也要警惕。

中断次数统计的是短信、语音、App 推送这类强打扰通知。一个团队故障数量少,但中断次数高,往往说明通知策略过重。

典型情况是:

Warning 也打电话。
同一故障通知多人。
主备同时被强触达。
低价值告警也进入升级链路。
告警抖动反复触发强通知。

这类问题不一定靠删告警解决。

先把通知强度分层,效果通常更直接。

协作空间维度:先找到失控的入口

协作空间维度适合回答另一个问题:

哪个入口正在把噪音带进来?

Flashduty 里,一个协作空间通常承接某类服务、团队或业务域的故障响应。

如果空间划分合理,协作空间维度会非常有用。

比如你可以看到:

生产支付空间告警是否显著高于其他空间
基础设施空间是否承接了太多业务告警
测试环境空间是否仍在产生大量强通知
某个历史 Zabbix 空间是否贡献了大部分重复故障
某个 Prometheus 空间是否因为规则过敏导致告警风暴

协作空间维度最大的价值,是帮助你决定“先治理哪里”。

不要一上来做全局规范。

全局规范很容易变成漫长项目。

更好的方式是找出 TOP 1 或 TOP 3 的噪音空间,先在那里做小范围治理。

一个空间的治理动作通常包括:

检查事件聚合是否开启
检查告警聚合是否适合当前告警类型
检查静默规则是否覆盖维护窗口和低价值提醒
检查抑制规则是否能压住同根因次要告警
检查分派策略是否按严重级别区分通知强度
检查值班表是否存在主备和升级链路

Flashduty 的降噪发生在两个环节。

第一层是事件到告警。

相同 alert_key 的事件可以在事件聚合窗口内合入同一条告警,避免同一告警反复触发、恢复时生成大量独立告警。

第二层是告警到故障。

多条相似告警可以通过智能聚合或规则聚合合入同一条故障,避免一次故障变成一堆重复通知。

Flashduty 从事件到故障的两层降噪链路

如果某个协作空间故障数量异常高,先别急着去源头删规则。

先看这个空间的事件聚合和告警聚合有没有正确配置。

很多重复通知并不是“规则太多”,而是“同一问题没有被合并处理”。

严重程度维度:找出被错误升级的告警

严重程度是告警治理里最容易被低估的维度。

很多团队嘴上说有 Critical、Warning、Info。

实际使用时却变成:

所有告警都是 Critical
所有告警都打电话
所有告警都需要立即认领
所有告警都进入同一条升级链路

这等于没有分级。

分析看板按严重程度筛选时,应该重点看两个异常。

第一个异常是 Critical 数量过高。

Critical 应该代表正在影响核心服务、需要立即响应的问题。

如果 Critical 长期占比很高,通常有三种可能:

上游监控系统没有正确映射严重级别
团队习惯把所有告警都标成最高级别
业务影响和资源异常没有区分

这时,治理动作不是让值班人忍耐。

而是重新定义级别。

比如:

Critical:用户可感知、核心链路受影响、需要立即处理
Warning:存在风险或局部异常,需要关注但不一定立即打断
Info:记录上下文或低风险提醒,不进入强触达链路

第二个异常是 Warning 和 Info 数量很高,但仍然产生大量中断。

这说明分派策略没有按级别区分。

Warning 可以通知到 IM 或工作时间处理。
Info 可以只记录,或者只进入低强度通知。
Critical 才需要电话、短信、App 推送和升级。

不要把所有告警都设计成“宁可多打扰,也不能漏”。

这句话听起来保守,长期看却会制造更大的风险。

因为当每条告警都打扰人时,真正重要的告警反而会被忽略。

时间维度:夜间中断比白天告警更贵

告警治理不能只看数量。

还要看发生时间。

同样一条 Warning,工作日下午出现和凌晨三点出现,对团队的影响完全不同。

Flashduty 分析看板会把时间拆成工作时间、休息时间和睡眠时间,用来观察不同时间段对团队成员的影响。

这个拆分很实用。

因为很多团队的真实痛点不是白天告警多。

而是夜里被无效告警打醒。

看时间维度时,我建议把中断次数和严重程度放在一起看。

如果睡眠时间的 Critical 中断多,要先判断这些 Critical 是否真实。

如果是真实 Critical,应该优化响应链路。

比如:

主值班是否明确
备值班是否能自动升级
故障是否能快速认领
作战室是否能快速拉起
常见故障是否有预案

如果睡眠时间的 Warning 或 Info 中断多,优先处理通知策略和静默策略。

比如:

Warning 夜间是否只通知值班群
Info 夜间是否只记录
维护窗口是否配置周期静默
测试环境是否避免走生产强通知
抖动告警是否开启提醒后静默

不要把夜间治理做成“大家辛苦一下”。

睡眠时间的无效中断,是 On-call 机制里最贵的成本之一。

它会降低值班质量,也会让团队更快进入告警疲劳。

告警 TOP:真正的噪音通常藏在 checkresource

团队、空间、严重程度和时间维度,能帮你找到治理范围。

但要找到具体噪音,还是要看告警 TOP。

Flashduty 分析看板的全局维度可以查看告警检查项和告警对象的 TOP 数据。

这里依赖两个很关键的标签:

check
resource

check 表示告警检查项。

它回答的是:

这是什么类型的问题?

比如:

http_5xx_rate
cpu_idle_low
disk_usage_high
pod_restart
mysql_replication_lag
queue_backlog

resource 表示告警对象。

它回答的是:

这个问题发生在哪个对象上?

比如:

host=db-master-01
pod/payment-api-7d9c
cluster=prod-shanghai-01
instance=10.0.12.37:9100
service=payment-gateway

如果告警 TOP 里某个 check 长期排第一,说明这个检查项值得被单独治理。

治理方式可能是:

调整阈值
增加持续时间
降低严重级别
改成业务影响型告警
只在生产环境通知
对相同检查项配置聚合或抑制

如果告警 TOP 里某个 resource 长期排第一,说明这个对象本身可能有稳定性问题,或者它的告警规则过敏。

治理方式可能是:

修复对象本身的问题
检查该对象是否处于维护状态
排查是否有抖动
为该对象临时静默
把该对象相关告警聚合到同一故障

这就是为什么前一篇文章强调标签设计。

如果告警没有稳定的 checkresource,分析看板就很难给出可行动的 TOP。

你只能看到一堆标题相似但无法归类的告警。

最后还是回到人工猜。

响应比例:判断告警是否真的值得处理

响应比例经常被当成响应效率指标。

但它也能用来判断告警质量。

响应比例的计算逻辑很直观:

响应比例 = 认领故障数 / 故障数 × 100%

如果某类告警长期无人认领,通常有两种解释。

第一,它没有被正确分派。

值班人没收到,或者收到的人不是负责人。

这时应该检查协作空间、路由规则、值班表和升级策略。

第二,它不值得认领。

大家都知道这类告警没什么用,所以默认忽略。

这时应该检查告警规则、严重级别和降噪策略。

这两种问题的处理方式完全不同。

所以不要只看“响应比例低”,然后要求团队提高响应率。

要继续下钻:

是哪个团队响应比例低?
是哪个空间响应比例低?
是哪个严重级别响应比例低?
是哪个 check 或 resource 对应的故障没人认领?
低响应比例是否集中在夜间?

如果 Critical 响应比例低,这是机制问题,必须优先处理。

如果 Info 响应比例低,也许不是问题,反而说明它不应该进入需要认领的故障流。

数据本身不做判断。

判断来自你对指标口径和业务上下文的理解。

响应投入:不要只看故障数,也要看人花了多少时间

故障数量多,不一定代表响应成本最高。

有些故障很多,但都是轻微提醒。
有些故障不多,但每次都拖很久。
有些团队故障量中等,但每次都需要多人参与。

这时要看响应投入。

Flashduty 的响应投入会根据成员从认领故障到恢复故障之间的时间差做汇总,用来粗略估计成员花在故障响应中的时间。

这个指标不适合被理解成精确工时。

它更适合做趋势判断。

比如:

某个团队本月故障数量下降,但响应投入上升,说明故障变重了
某个服务故障数量不高,但响应投入长期很高,说明处理复杂度高
某类 check 响应投入高,说明它不是噪音,而是真正消耗人力的问题
某些 Warning 响应投入几乎为零,说明它可能只是背景噪音

响应投入能帮管理者避免一个误区:

只治理数量最多的告警。

有些数量最多的告警,聚合或静默就能解决。

但有些数量不多、响应投入很高的故障,才是真正影响稳定性和团队效率的重点。

中断次数:衡量值班人被打扰了多少次

告警治理还有一个经常被忽略的指标:中断次数。

Flashduty 分析看板里的中断次数只统计短信、语音、App 推送三种渠道的分派通知。一个响应人员多渠道同时推送只算一次,如果距离上一次通知不超过 1 分钟,也不算新的中断。

这个口径很有价值。

因为它比“通知数量”更接近人的真实感受。

一条 IM 消息可能只是提醒。

一次电话或短信,尤其是夜间电话,就是一次明确中断。

看中断次数时,建议重点找三类问题。

第一类:同一团队中断次数长期偏高。

这可能说明该团队排班压力大,或者告警分级、通知强度没有做好。

第二类:同一空间中断次数高于故障数量预期。

这可能说明主备同时通知、升级过快,或者抖动告警反复触发。

第三类:睡眠时间中断次数高。

这通常是最该优先治理的部分。

治理中断次数,不一定要减少所有告警。

更准确的动作是:

减少无效强触达
把低级别告警降为轻通知
让重复告警合并处理
让抖动告警只提醒一次
把维护窗口告警静默
把同根因次要告警抑制

这比粗暴删除告警更稳。

用一套固定节奏做告警噪音治理

分析看板最好不要只在出问题时看。

它更适合做成固定节奏。

比如每周一次,SRE 或平台团队拉一次 30 分钟告警治理例会。

不需要很复杂。

每次只看六件事:

本周故障数量 TOP 团队
本周故障数量 TOP 协作空间
本周 Critical / Warning / Info 分布
本周告警检查项 TOP 20
本周告警对象 TOP 20
本周夜间中断次数和响应比例

然后只选 1 到 3 个治理动作。

不要开会列 20 个问题。

告警治理最怕变成大而全项目。

更有效的方式是每周稳定推进几个小动作。

比如:

把 cpu_idle_low 的 Warning 阈值从 5 分钟改为 15 分钟
为 staging 环境的部署窗口配置周期静默
给 payment-api 的 pod_restart 增加事件聚合
把 test 环境 Info 告警改为只记录不强通知
为 Critical 存在时的同 check Warning 配置抑制
把某个资源长期 TOP 的问题交给服务 owner 修复

每个动作都应该能在下周的分析看板里验证效果。

用固定节奏把告警噪音治理做成闭环

故障数量有没有下降。
中断次数有没有下降。
响应比例有没有提升。
MTTA 有没有更稳定。
夜间打扰有没有减少。

如果看不到变化,说明动作可能没有打到噪音来源。

继续下钻,而不是继续加规则。

分析看板不是替代故障列表和复盘

还要注意一个边界。

分析看板适合看趋势和分布。

但它不能替代故障详情、故障列表和复盘。

当你在看板里发现一个异常,比如某个 check 排名第一,下一步应该进入具体故障列表和详情。

看标题。
看标签。
看时间线。
看告警合入情况。
看是否有人认领。
看是否触发升级。
看恢复方式。
看是否有相似历史故障。

只有这样,才能判断它到底是:

源头规则问题
标签规范问题
路由分派问题
降噪配置问题
通知强度问题
服务稳定性问题

分析看板告诉你“哪里不正常”。

故障详情告诉你“为什么不正常”。

复盘告诉你“下次怎么减少它”。

这三者要连起来。

数据口径要提前说清楚

用分析看板做治理时,还有几个口径不要忽略。

第一,被收敛的故障不进入指标统计。

这很合理。

被收敛的故障通常不会触发通知,也不应该用来衡量真实响应压力。

但这也意味着,如果你刚开启了大量收敛策略,看板上的故障量变化要结合配置调整一起解释。

第二,当前数据可能有延迟。

Flashduty 文档里说明,查询当前数据时可能出现一小时左右的计算延迟。

所以不要拿刚刚发生的一条告警去质疑看板没立刻变化。

第三,分析看板最多支持查询最近 1 年数据,具体还取决于订阅版本的数据保留周期。

如果要做更长周期分析,可以通过 API 查询。

第四,查询时间范围超过 31 天后,折线图无法以天维度查看。

这意味着长期趋势和短期治理最好分开看。

短期治理看 7 到 14 天。
月度复盘看周或月粒度。

不要把所有分析都塞进一个时间范围。

一份可执行的看板检查清单

如果你不知道第一次打开分析看板该看什么,可以按下面这份清单走。

选择最近 7 天或 14 天
先看全局故障数量趋势
按团队排序,找故障数量和中断次数最高的团队
按协作空间排序,找噪音入口
按严重程度过滤,检查 Critical 是否过多
查看工作时间、休息时间、睡眠时间的中断分布
查看告警检查项 TOP 20
查看告警对象 TOP 20
对 TOP 3 的 check 和 resource 进入故障详情抽样
判断问题属于规则、标签、路由、降噪、通知还是服务稳定性
每周只落地 1 到 3 个治理动作
下周用同一口径复查效果

这份清单不复杂。

但它能避免团队只看总量、只看平均值、只凭感觉治理。

告警治理最需要的不是更多会议。

而是稳定的口径和持续的动作。

最后,分析看板的价值是让治理可验证

告警噪音最麻烦的地方,是它很容易变成感受问题。

值班人说太吵。
研发说规则不能删。
管理者说 MTTR 要降。
平台团队说已经做了降噪。

每个人都可能有道理。

但如果没有数据,讨论很快会变成互相解释。

分析看板的价值,就是把这些感受变成可以追踪的指标。

不是笼统地说告警太多。

而是说:

过去 14 天,支付空间的 Warning 故障占比过高
睡眠时间中断主要来自 staging 环境的 pod_restart
cpu_idle_low 连续两周排在 check TOP 1
db-master-01 长期排在 resource TOP,需要修复或调整规则
基础设施团队中断次数高,但响应比例低,说明通知策略和告警质量都要看

这种讨论才有行动空间。

Flashduty 不只是把告警通知到人。

它还可以把告警响应变成一套可度量、可下钻、可复盘、可持续治理的机制。

如果你已经接入了第一个告警源,下一步不要只问“有没有通知到人”。

打开分析看板。

先找到告警噪音从哪里来。

再决定应该改规则、改标签、改路由、改降噪,还是改值班策略。

这样,On-call 平台才不只是多了一个通知入口。

而是真的开始帮助团队降低无效打扰,缩短响应时间,并把稳定性治理做成可以持续改进的工作。

延伸路径

继续看解决方案和产品对比

如果你正在做监控、可观测性或故障定位相关选型,建议从解决方案和产品对比继续往下看。

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云