凌晨2点,PagerDuty(事件响应平台)的警报把工程师从床上拽起来。服务挂了,用户骂街,团队手忙脚乱修了三小时。复盘时有人翻日志,发现一条警告从21天前就躺在那,像张被揉皱的彩票——开奖号码全对上了。
这事发生在一家做数据管道的创业公司,工程师叫Dave。他把经历发出来,评论区炸了:不是幸灾乐祸,是集体PTSD。太多人见过这种"事后诸葛亮型日志"——平时淹没在噪音里,出事了才显灵。
3周前的警告,为什么没人看
Dave的团队每天产生约2TB日志,警告级别的条目超过400条。那条关键警告混在一堆"磁盘使用率78%""某API响应慢200ms"里,优先级被算法标为P3——理论上"有空再看"。
真正的问题不是漏看,是"狼来了"效应。团队之前被太多误报折腾过:某次阈值设太激进,半夜把人叫起来发现只是流量小高峰。后来大家学乖了,对P3警告集体免疫。Dave承认:"我看到那条日志了,当时想'又是那个老问题',划过去了。"
那条警告说的是连接池耗尽。数据管道服务依赖一个PostgreSQL(开源关系型数据库)集群,连接数配置在两年前定的,当时峰值只有现在的1/5。业务涨了,配置没动,警告在3周前开始触发,每天凌晨2-4点准时出现——正好和这次故障的时间点吻合。
日志监控的"信噪比"死局
这事的讽刺之处在于:团队不是没投入监控。他们用了Datadog(云监控平台)、PagerDuty、还有自研的异常检测脚本。工具堆叠的结果,是工程师被淹没在仪表盘里。
Dave算过一笔账:平均每个on-call(值班)工程师每班次要处理17条"需要关注"的告警,其中真正需要人工介入的不到2条。剩下的15条,大部分是"已知问题""预期内的波动""上次说修但没排期的技术债"。
连接池警告就属于"已知问题"——团队其实开会讨论过,结论是"下次迭代优化"。下次迭代排期在6周后,而故障在第3周就来了。
更隐蔽的陷阱是"相关性幻觉"。那条警告每次出现都伴随着另一个现象:某个批处理任务结束。工程师误以为这是任务收尾的正常现象,没意识到"任务结束→连接释放→警告触发"这个因果链本身就在暗示配置不足。换句话说,他们看到了模式,但解读错了含义。
事后复盘:哪些信号本可以抓住
故障后的根因分析(RCA)文档里,Dave列了三个本可以阻断灾难的时间窗口。
第一窗口是警告首次出现时。如果当时有人花10分钟看上下文,会发现连接数在触及阈值前的增长曲线是指数型,不是线性——这是典型的"即将崩溃"前兆。但指数增长在早期看起来和线性几乎一样,需要刻意对比历史数据才能识别。
第二窗口是警告开始"准时出现"时。每天同一时间的规律触发,通常意味着某个定时任务在制造压力。团队后来查到,是一个新上的数据清洗作业,设计时没评估对下游连接池的影响。作业上线3周,警告也响了3周,两个时间点完全重叠。
第三窗口是故障前48小时。那时连接池耗尽的速度开始加快,从"凌晨触发10分钟"变成"触发2小时"。这个变化被当成"最近业务涨了的正常波动",没人联想到配置硬上限。
Dave在帖子里写:「我们不是没数据,是没注意力。监控工具给了我们把所有问题变成P3的能力,也让我们失去了区分P3和P0的直觉。」
行业里的"警告疲劳"有多普遍
这事发酵后,Honeycomb(可观测性平台)的工程师转发了帖子,附了组内部数据:他们的客户里,73%的"生产环境严重事件"在发生前24小时内,监控系统中存在明确的前置信号。这些信号被看到的概率是91%,被正确解读并采取行动的概率是12%。
差距在哪?Honeycomb的分析是"上下文碎片化"。现代系统的监控数据分散在七八个工具里,工程师排查时需要切窗口、对时间戳、手动关联。一个警告在A工具里是"数据库连接慢",在B工具里是"API超时",在C工具里是"队列堆积"——其实是同一件事的三张脸。
Dave的团队后来做了个实验:把连接池相关的所有指标抽出来,做在一个仪表盘上,加上"过去7天趋势"对比。结果那个仪表盘再也没被打开过——"太长了,滑动超过两屏就没人看"。
他们现在的解法很朴素:给每个P3警告强制加"如果不管,最坏会怎样"的注释字段。连接池那条如果当时写了"耗尽=全服务不可用,预计影响4小时",优先级可能会被人工上调。这个机制运行了两个月,误报率没降,但"被忽略的致命警告"从每月3-4条降到0。
Dave最后更新帖子,说那条日志现在被他设成了桌面壁纸。不是自虐,是提醒自己:系统崩溃前,通常会先小声嘀咕很久——区别只在于你有没有学会那种方言。
你的团队有没有那种"事后看很明显"的警告?是工具问题,还是人的注意力分配问题?
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.