发布后故障排查常被海量报错淹没。本文介绍炬鲸 OBSERVE 的 AI 错误摘要:对错误日志聚类、去重、提炼,输出可读的根因结论,缩短定位时间。
接入日志平台之后,团队最常说的新抱怨不是「查不到」,而是「查到太多」。一次发布故障,error 级别日志几分钟内能涌进来几百上千条,堆栈、异常、超时混在一起,值班的人只能一条条翻,靠经验猜到底哪条是先出问题的。
更麻烦的是,第一条报错往往不是根因,它多半是十分钟前、隔了几个服务的某个上游故障的症状。顺着原始日志按时间读,解决不了这个问题,只会把值班工程师的夜越熬越长。
AI 错误摘要就是针对这个场景做的:它把一段时间内的一组错误日志做聚类、去重、提炼,最后输出几句人话结论,而不是让你盯着原始日志看。
处理流程分三步:
最终输出更像一份分诊记录,而不是日志堆:
1. order-service — 412 条错误,最早 14:02
新券发布后 paymentMethod 为空导致的 NullPointerException
2. pay-service — 88 条错误,最早 14:04
调用 channel-gateway 超时,源于同一次上游故障
输出的不是含糊的「可能有问题」,而是「这条堆栈指向订单服务下单方法里对空对象的解引用」。
有人会说,日志搜索做得好就够了。差距在于:搜索要求你先知道自己要找什么。故障当下,你并不知道该查哪个异常类型、哪个服务、哪个时间切片,只能一条条试探性地查,再手工把画面拼起来。
摘要把这个流程反过来:平台负责探索,你负责判断。差别就像「给我 14:00 之后的 error」和「告诉我 14:00 左右出了什么事」。
它不替代人工,只是把「读日志」的前置成本降下来,让人把精力放在真正的判断上。
摘要质量取决于日志是否规范,三条建议:
ERROR: failed 没什么可摘要的;在控制台「故障分析」页,选定时间范围和服务,一键生成摘要,结果可以直接复制进工单当排查依据。