# 一次线上告警,我们把事故排查从 30 分钟降到了 2 分钟
想问大家一个问题:
你们线上事故排查一般要多久?
我们以前的流程基本是这样:
告警 → 打开 Grafana → 查 Loki 日志 → 找异常 → 整理问题 → 写事故记录
如果日志比较多,一次排查通常要 **20~40 分钟**。
尤其是那种情况:
- ERROR 日志很多
- 不确定哪个是真正的异常
- 日志分散在不同时间段
排查起来其实挺费时间。
---
## 一个真实的例子
某次线上系统突然出现异常告警。
Loki 里有大量日志,大致是这样的:
ERROR GlobalExceptionHandler error message: com.example.oa.dto.exception.BusinessException: BusinessException -> code : 300, desc : 该业务功能已绑定流程
如果按传统方式排查,一般流程是:
1. 找到 ERROR 日志
2. 查看异常堆栈
3. 判断是否业务异常
4. 总结原因
5. 写事故记录
---
## 后来做了个小工具
因为这个过程太重复了,我写了一个小工具做三件事:
1️⃣ 告警触发后自动抓取相关日志
2️⃣ 自动整理异常信息
3️⃣ 生成结构化事故报告
流程变成:
Loki告警 ↓ 自动抓取异常日志 ↓ 自动分析 ↓ 生成事故报告 ↓ 推送企业微信
生成的报告大概是这样的:
事故摘要 服务:oa-server 环境:prod 严重等级:P3
已确认异常 BusinessException -> code 300
可能原因 业务功能已绑定流程
建议处理 检查流程配置
同时会附带:
- 异常时间线
- 关键日志
- 错误趋势
---
## 实际体验
最大的变化其实不是 AI,而是:
**不用自己翻日志整理信息了。**
以前流程:
告警 ↓ 查日志 ↓ 整理异常 ↓ 写事故记录
现在基本是:
告警 ↓ 看报告
排查时间从 **20~30 分钟**降到了 **1~2 分钟**。
---
## 想问问大家
你们团队现在的事故排查流程是怎样的?
是:
- Grafana + Loki 手动查日志?
- 有自动化工具?
- 还是直接写脚本处理?
挺好奇不同团队是怎么做事故复盘的。