ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

排障周报写清楚:改动、证据、收益和未知各归其位

排障周报写清楚:改动、证据、收益和未知各归其位

“修了一个空指针”可以写得更清楚,但不该被改写成“阻止了一场P0事故”。后一句多出来的不是文采,而是需要证据的新事实。模型能把句子写得有气势,不负责替我们承担这些事实。

我希望读完一份排障周报的人,能知道改动解决了什么、怎样验证、还欠什么,而不是靠一串百分比判断工作是否重要。

先说改了哪里,再说为什么改

以下是构造示例,不是本账号经历:一个订单查询分支在地址缺失时抛空指针。合理的记录可以是:明确该分支允许地址为空,增加边界处理,并为缺地址输入补充回归测试。

这里可以写“新增了这个回归用例”,前提是确有代码和结果;不能顺势写“稳定性提升99.8%”,因为单元测试没有提供线上失败率的分母。更不能补出某位领导的表扬,作为效果证据。

三种改动,三种证据

构造案例可以记录的事实尚不能直接宣称的收益
修复空值分支差异、用例输入、运行结果防住多少生产事故
调整调用超时配置前后值、测试场景和返回状态可用性必然提高
增加联合索引DDL、目标查询、执行计划及实测条件所有查询均加速

比如把等待从1秒改成3秒,可能增加成功等待,也可能占用更多连接;没有到达率、并发、排队和失败分布,无法给它贴“提升韧性”的标签。DDL执行成功同样不等于索引对全部SQL都有价值。

MySQL官方死锁处理资料建议缩短事务、保持一致的访问顺序并准备重试,但不能把一项措施写成所有工作负载的无死锁保证。官方手册可用于解释判断依据,不代替本业务回归。

收益要有可回查的分母

如果有数据,记录环境、窗口、采样方法、总请求数、失败定义及变更期间其他影响。只有一条Trace,就写这个样本的观察;没有对照,不把时间先后当因果。

Prometheus的窗口增量是监控估计,离线请求明细又是另一种口径。两者能相互检查,但不应为了图好看而悄悄换分母。函数文档提供计算语义,实际收益仍来自真实记录。

未知项也值得交接

一份有用的结尾可以写:“已验证空地址输入不再走异常分支;未做生产回放,尚不清楚历史请求中这类输入的占比;下一步核对脱敏样本与接口契约。”这段话没有战果数字,却让下一个人知道怎样继续。

本文是写作与证据整理的方法,没有执行数据库变更、在线测量或模型调用。之后发生的排障,只能在真实记录产生后再写进去。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进