FlashDuty SRE 实践
本技能覆盖错误预算、无责备事后分析、琐事分析和可靠性改进,基于 Google SRE 的做法。
可用 Sub-Agent
1. flashduty-postmortem-generator
用于:生成无责备事后分析报告
何时调用:
- •事件已解决并需要记录
- •用户请求 "postmortem" 或 "事后分析"
- •用户想要 "从事件中学习"
- •需要从事件中提取行动项
参数:
json
{
"incident_id": "FD123456",
"include_timeline": true,
"include_metrics": true,
"include_similar_incidents": true,
"time_range": "30d"
}
功能:
- •5 Whys 根因分析
- •时间线重建
- •无责备语言执行
- •可行动项提取
- •使用
list_similar_incidents查找相似历史事件 - •使用
query_changes关联事件前后的部署/变更
2. flashduty-error-budget-tracker
用于:追踪 SLO 合规性和错误预算消耗
何时调用:
- •用户询问 "error budget" 或 "SLO"
- •需要确定是否可以安全发布
- •监控可靠性趋势
- •规划容量/变更窗口
参数:
json
{
"service": "service-name",
"slo_target": 99.9,
"slo_type": "availability",
"time_range": "30d",
"channel_ids": []
}
功能:
- •预算消耗计算
- •燃烧率分析
- •多窗口追踪(7d/30d/90d)
- •发布建议
- •告警阈值建议
3. flashduty-toil-analyzer
用于:识别自动化机会和减少运营琐事
何时调用:
- •用户提到 "toil" 或 "琐事"
- •团队被运营工作压垮
- •想要提高效率
- •识别自动化机会
参数:
json
{
"time_range": "30d",
"channel_ids": [],
"analysis_type": "incident_response" | "alert_noise" | "manual_tasks"
}
功能:
- •琐事评分计算(0-10)
- •告警噪音识别
- •重复模式检测
- •自动化 ROI 分析
- •路线图优先级排序
SRE 工作流
工作流 1:事后事件审查
code
用户:生成事件 FD123456 的事后分析报告
→ 步骤 1:验证事件已关闭
使用 mcp__flashduty__get_incident 获取事件详情
→ 步骤 2:启动 flashduty-postmortem-generator
参数:{ incident_id, include_similar: true }
Agent 内部使用 `list_similar_incidents` 查找相似事件,使用 `query_changes` 关联部署变更
→ 步骤 3:展示结构化事后分析
包括:时间线、5 Whys、行动项、经验教训
→ 步骤 4:建议后续跟进
向事件添加评论,附上事后分析链接
工作流 2:错误预算审查
code
用户:查看支付服务的错误预算
→ 步骤 1:识别服务频道
使用 mcp__flashduty__list_channels 查询 "payment"
→ 步骤 2:启动 flashduty-error-budget-tracker
参数:{
service: "payment-service",
slo_target: 99.95,
time_range: "30d"
}
→ 步骤 3:展示预算状态
包括:消耗百分比、燃烧率、建议
→ 步骤 4:发布建议
"✅ 安全发布" 或 "⚠️ 冻结功能"
工作流 3:多服务预算对比
code
用户:对比所有核心服务的 SLO 达成情况 → 步骤 1:获取所有关键频道 使用 mcp__flashduty__list_channels → 步骤 2:为每个服务并行启动 error-budget-tracker Sub-Agent 1:flashduty-error-budget-tracker(api-gateway, 99.99%, time_range: "30d") Sub-Agent 2:flashduty-error-budget-tracker(payment-service, 99.95%, time_range: "30d") Sub-Agent 3:flashduty-error-budget-tracker(user-service, 99.9%, time_range: "30d") → 步骤 3:汇总结果到仪表板 展示:所有服务、预算、燃烧率、状态 → 步骤 4:识别有风险的服务 高亮显示消耗 > 50% 预算的服务
工作流 4:琐事分析
code
用户:分析我们团队的琐事工作量
→ 步骤 1:定义分析范围
最近 30 天,团队的频道
→ 步骤 2:启动 flashduty-toil-analyzer
参数:{ time_range: "30d", analysis_type: "all" }
→ 步骤 3:展示琐事报告
包括:琐事评分、分类、自动化机会
→ 步骤 4:确定自动化路线图优先级
速胜 → 中期 → 长期
工作流 5:发布前安全检查
code
用户:这周可以发布新版本吗?
→ 步骤 1:检查受影响服务的错误预算
为每个服务启动 flashduty-error-budget-tracker
→ 步骤 2:检查近期事件率
启动 flashduty-toil-analyzer 进行稳定性评估
→ 步骤 3:评估
如果所有预算 > 50% 剩余 且 toil_score < 5:
→ "✅ 可安全发布,使用标准金丝雀"
否则如果预算 20-50% 或 toil_score 5-7:
→ "⚠️ 减少发布范围,延长金丝雀"
否则:
→ "🛑 建议延迟,专注于稳定性"
工作流 6:月度 SRE 审查
code
用户:生成本月 SRE 运营报告 → 并行启动: Sub-Agent 1:flashduty-error-budget-tracker(所有服务,time_range: "30d") Sub-Agent 2:flashduty-toil-analyzer(运营效率,time_range: "30d") Sub-Agent 3:flashduty-stats-collector(MTTR/MTTA 趋势,time_range: "30d") → 汇总成综合报告: ## 月度 SRE 报告 - 可靠性:各服务 SLO 合规性 - 效率:琐事减少进展 - 性能:MTTR/MTTA 趋势 - 行动项:下月优先事项
SRE 黄金信号
分析事件时,始终考虑四个黄金信号:
- •延迟:响应需要多长时间?
- •流量:需求量有多大?
- •错误:失败请求的比率
- •饱和度:服务有多"满"?
事后分析和分析 Agent 应尽可能提取这些信息。
SLO 最佳实践
选择 SLO
- •从当前性能 + 余量开始
- •考虑用户可见的影响
- •避免过度设计(99.999% 很难)
- •每季度审查
常见 SLO 类型
| 服务类型 | 典型 SLO |
|---|---|
| API 网关 | 99.99% 可用性,p99 < 200ms |
| Web 应用 | 99.9% 可用性,p99 < 500ms |
| 批处理 | 99.5% 成功率 |
| 内部工具 | 99% 可用性 |
错误预算策略模板
code
## 错误预算策略:[服务] ### SLO - 可用性:99.9% - 错误预算:43.2 分钟/月 ### 预算消耗行动 - 0-50%:正常运营,常规发布 - 50-75%:减少发布频率,延长金丝雀 - 75-100%:功能冻结,仅稳定性修复 - >100%:紧急程序,全员响应 ### 升级 - >50%:通知团队负责人 - >75%:通知工程经理 - >100%:分配事件指挥官 ### 审查 每周:预算状态审查 每月:SLO 合规报告 每季度:SLO 目标审查
与其他技能集成
| 用例 | 主要技能 | 支持 Agent |
|---|---|---|
| 诊断事件 | incident-diagnosis | diagnosis-engine |
| 生成事后分析 | sre-practices | flashduty-postmortem-generator |
| 追踪可靠性 | sre-practices | flashduty-error-budget-tracker |
| 减少琐事 | sre-practices | flashduty-toil-analyzer |
| 查询事件 | incident-management | incident-analyzer |
| 查找值班 | team-collaboration | team-resolver |
最佳实践
- •48小时内做事后分析:趁记忆新鲜
- •每周看一次错误预算:早发现早处理
- •琐事不超过 50% 工时:给团队留项目时间
- •行动项必须有人负责
- •无责备:看系统,不看人
- •所有手动步骤都是琐事:能自动化就自动化