关于 incident-runbook-generator
incident-runbook-generator 是一项用于编写常见事件操作手册的技能,面向运维和当班团队。内容涵盖症状、调查、缓解、回滚、沟通及预防措施。
主要功能
- 01记录症状与检测方法
- 02提供逐步缓解措施
- 03包含调查和回滚步骤
- 04附带事件沟通模板
- 05列出预防措施
适用场景
- 01编写数据库连接故障指南
- 02记录部署回滚流程
- 03规范事件状态更新
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ patricio0312rev/ skills --skill incident-runbook-generator安装后在 Claude Code 中输入/incident-runbook-generator确认已加载。
详细介绍
事件应急手册生成器
为常见事件创建可执行的应急手册。
应急手册模板
# Runbook: Database Connection Pool Exhausted
**Severity:** P1 (Critical)
**Estimated Time to Resolve:** 15-30 minutes
**Owner:** Database Team (On-call)
## Symptoms
- Application errors: "connection pool exhausted"
- Increased API latency (>5s)
- Failed health checks
- CloudWatch alarm: `DatabaseConnectionsHigh`
## Detection
- Alert: DatabaseConnectionPoolExhausted
- Metrics: `active_connections > max_connections * 0.9`
- Logs: "Error: connect ETIMEDOUT"
## Immediate Actions (5 min)
1. **Verify the issue**
```bash
# Check current connections
SELECT count(*) FROM pg_stat_activity;
```
-
找出长时间运行的查询
SELECT pid, now() - pg_stat_activity.query_start AS duration, query FROM pg_stat_activity WHERE state = 'active' ORDER BY duration DESC LIMIT 10; -
终止阻塞查询(确认安全后)
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE state = 'idle in transaction' AND now() - state_change > interval '5 minutes';
缓解措施(10 分钟)
-
扩展连接池(临时)
# Update RDS parameter group aws rds modify-db-parameter-group \ --db-parameter-group-name prod-params \ --parameters "ParameterName=max_connections,ParameterValue=200" -
重启应用程序(如有需要)
kubectl rollout restart deployment/api -
监控恢复情况
watch -n 5 'psql -c "SELECT count(*) FROM pg_stat_activity;"'
根本原因调查
检查以下情况:
- 最近是否有部署(新代码存在连接泄漏)
- 是否出现流量激增(正常流量或 DDoS)
- 是否有慢查询占用连接
- 连接池配置是否过小
- 应用程序是否未释放连接
回滚步骤
如果由部署导致:
# Rollback to previous version
kubectl rollout undo deployment/api
# Verify
kubectl rollout status deployment/api
沟通模板
初始通知(5 分钟内):
🚨 INCIDENT: Database connection pool exhausted
Status: Investigating
Impact: API errors and slowness
ETA: 15-30 min
Next update: 10 min
更新(每 10 分钟):
UPDATE: Killed long-running queries
Status: Mitigating
Impact: Still degraded, improving
Actions: Scaling connection pool
Next update: 10 min
解决通知:
✅ RESOLVED: Database connections normalized
Duration: 25 minutes
Root cause: Connection leak in v2.3.4
Fix: Rolled back to v2.3.3
Follow-up: Bug fix PR #1234
Postmortem: [link]
预防措施
- 在仪表板中添加连接池指标
- 设置连接超时(30s)
- 在测试中添加连接泄漏检测
- 设置部署前负载测试
- 检查连接池大小是否合适
相关应急手册
- 数据库 CPU 使用率过高
- 数据库查询缓慢
- 应用程序内存不足
## Output Checklist
- [ ] Symptoms documented
- [ ] Detection criteria
- [ ] Step-by-step actions
- [ ] Owner assigned
- [ ] Rollback procedure
- [ ] Communication templates
- [ ] Prevention measures
ENDFILE
评论
支持 Markdown