docs(knowledge): 添加测试知识库文档
新增 6 个知识库文档,用于测试 L0+L1 混合检索功能: API 类: - payment-errors.md - 支付网关错误码定义 领域知识类: - spring-ai-tool-best-practices.md - Spring AI 工具定义最佳实践 基础设施类: - redis-config.md - Redis 缓存配置指南 - mysql-connection-pool.md - MySQL 连接池配置 - flyway-best-practices.md - Flyway 数据库迁移最佳实践 故障排查类: - fault-diagnosis-process.md - 故障诊断流程规范 所有文档均包含: - 标准 frontmatter 元数据 (title, keywords, summary, category) - 实用配置示例和代码片段 - 支持 L0 精确匹配的关键词
This commit is contained in:
@@ -0,0 +1,157 @@
|
||||
---
|
||||
title: 故障诊断流程规范
|
||||
keywords: [故障诊断, 排查, 根因分析, RCA, 应急响应]
|
||||
summary: 生产环境故障的标准诊断流程、根因分析方法和文档规范
|
||||
category: troubleshooting
|
||||
---
|
||||
|
||||
# 故障诊断流程规范
|
||||
|
||||
## 应急响应流程
|
||||
|
||||
### 1. 初步评估(5 分钟内)
|
||||
|
||||
**关键问题**:
|
||||
- 影响范围:多少用户受影响?
|
||||
- 严重程度:P0(全站挂)/ P1(核心功能)/ P2(次要功能)
|
||||
- 开始时间:什么时候开始的?
|
||||
|
||||
**立即行动**:
|
||||
- 通知相关人员
|
||||
- 开启故障战室
|
||||
- 记录时间线
|
||||
|
||||
### 2. 快速止血(15-30 分钟)
|
||||
|
||||
**优先级**:恢复服务 > 找根因
|
||||
|
||||
**常见止血手段**:
|
||||
- 回滚最近部署
|
||||
- 重启服务
|
||||
- 流量切换
|
||||
- 降级非核心功能
|
||||
|
||||
**验证止血**:
|
||||
- 检查监控指标恢复
|
||||
- 抽样验证用户功能
|
||||
- 确认错误日志减少
|
||||
|
||||
### 3. 根因分析
|
||||
|
||||
**信息收集**:
|
||||
- 错误日志(ELK/Kibana)
|
||||
- 监控指标(Grafana)
|
||||
- 慢查询日志
|
||||
- 堆栈信息
|
||||
- 最近变更记录
|
||||
|
||||
**分析方法**:
|
||||
- 5-Why 分析法
|
||||
- 时间线对比(问题前后变化)
|
||||
- 相关性分析(哪些指标同时异常)
|
||||
|
||||
## 5-Why 分析法
|
||||
|
||||
**示例:API 超时故障**
|
||||
|
||||
1. **为什么 API 超时?**
|
||||
- 数据库查询慢
|
||||
|
||||
2. **为什么数据库查询慢?**
|
||||
- 索引失效
|
||||
|
||||
3. **为什么索引失效?**
|
||||
- 表数据量暴增,执行计划变更
|
||||
|
||||
4. **为什么表数据量暴增?**
|
||||
- 定时清理任务失败
|
||||
|
||||
5. **为什么清理任务失败?**
|
||||
- 磁盘空间不足,任务异常退出
|
||||
|
||||
**根因**:磁盘空间监控未配置告警
|
||||
|
||||
## 故障报告模板
|
||||
|
||||
### 1. 故障概要
|
||||
- 发生时间:
|
||||
- 影响时长:
|
||||
- 影响范围:
|
||||
- 严重程度:
|
||||
|
||||
### 2. 故障现象
|
||||
- 用户反馈:
|
||||
- 错误日志:
|
||||
- 监控截图:
|
||||
|
||||
### 3. 根本原因
|
||||
- 直接原因:
|
||||
- 根本原因:(5-Why 分析)
|
||||
- 相关变更:
|
||||
|
||||
### 4. 解决方案
|
||||
- 临时方案:
|
||||
- 长期方案:
|
||||
- 预防措施:
|
||||
|
||||
### 5. 时间线
|
||||
```
|
||||
10:00 - 用户反馈 API 超时
|
||||
10:05 - 确认影响范围,通知团队
|
||||
10:10 - 发现数据库慢查询
|
||||
10:15 - 执行索引优化,服务恢复
|
||||
10:30 - 根因分析完成
|
||||
```
|
||||
|
||||
### 6. 改进措施
|
||||
- 技术改进:
|
||||
- 流程改进:
|
||||
- 监控增强:
|
||||
|
||||
## 常见故障分类
|
||||
|
||||
### 性能类
|
||||
- 慢查询
|
||||
- 内存溢出
|
||||
- CPU 飙高
|
||||
- 线程池耗尽
|
||||
|
||||
### 可用性类
|
||||
- 服务宕机
|
||||
- 网络故障
|
||||
- 依赖服务挂
|
||||
- 数据库连接池满
|
||||
|
||||
### 数据类
|
||||
- 数据不一致
|
||||
- 数据丢失
|
||||
- 重复数据
|
||||
|
||||
### 安全类
|
||||
- 认证失败
|
||||
- 权限绕过
|
||||
- SQL 注入
|
||||
- DDoS 攻击
|
||||
|
||||
## 最佳实践
|
||||
|
||||
### 日志规范
|
||||
```java
|
||||
// 关键操作记录请求 ID
|
||||
log.info("[{}] 开始处理支付请求: userId={}, amount={}",
|
||||
requestId, userId, amount);
|
||||
|
||||
// 异常必须记录完整堆栈
|
||||
log.error("[{}] 支付失败", requestId, e);
|
||||
```
|
||||
|
||||
### 监控指标
|
||||
- **Golden Signals**:延迟、流量、错误率、饱和度
|
||||
- **业务指标**:订单量、支付成功率
|
||||
- **资源指标**:CPU、内存、磁盘、网络
|
||||
|
||||
### 告警阈值
|
||||
- 错误率 > 1%
|
||||
- P99 延迟 > 2s
|
||||
- 数据库连接池使用率 > 80%
|
||||
- 内存使用率 > 85%
|
||||
Reference in New Issue
Block a user