AI 告警分级为何连续两天漏报
一个日志分诊流水线将无法解析的模型输出默认归为低优先级,导致数据库超时告警进入日报而未及时通知。作者将故障整理为可本地复现的最小项目,保留输出模式定义与契约测试。
原文暂未完整获取,基于公开信息的快读
一条 AI 日志分诊流水线连续运行了 48 小时,进程没崩,日报照常生成,但本该触发值班通知的数据库超时告警,却被送进了日报。作者排查后发现,无法解析的模型输出被默认归为低优先级,类型自动转换又掩盖了部分异常。他随后把故障整理成了可本地复现的最小项目。
目前能确认什么
这条流水线读取错误日志,让模型返回 severity 和 category,再按严重程度发送到 Slack 频道。
问题有两层。第一层是校验异常后直接返回最低等级,把「无法判断」当成了「不重要」。第二层是 Pydantic 的宽松校验:示例中的 true 会被转换为整数 1,字符串 "3" 也能转成整数。这些输入不会触发异常,却可能掩盖模型输出偏离约定的问题。
程序正常运行,只能证明流程没停,不能证明告警送对了地方。
作者最初的 20 个测试样例来自提示词中的示例,全部通过,却没有覆盖异常输出。日志也只记录解析结果,没有保留原始响应。
节选展示的修复包括:用固定字符串集合约束等级,开启严格校验、拒绝额外字段,把校验失败的输出送到独立频道,并同时记录原始响应和解析结果。文章披露带有 MonkeyCode 产品推广背景,不能据此判断其模型表现。
我的判断
程序员接入模型分级时,应该把「业务等级」和「处理失败」分开。否则,低优先级队列会同时容纳普通事件与系统看不懂的事件,安静就失去了参考价值。
契约测试最该补的是边界:布尔值、未知等级、缺失字段、额外字段进入后,系统是否明确暴露失败,是否走到预期路由。格式校验通过后,等级判错仍是另一类问题。
独立收集解析失败,还不等于及时通知了值班人员。
节选没有交代独立频道是否有人持续关注,也没有展示完整契约测试及模型调用失败的处理路径。因此,目前能确认的是静默降级路径被拆开了,还不能确认整条告警链路已经补齐。