FlashDuty 事件诊断
本技能通过委托给具有独立上下文的专用诊断 Agent 来帮助诊断事件。
边界说明
- 本技能:针对具体事件的深度诊断(根因、时间线、关联告警)
- incident-analytics:跨事件的聚合统计和趋势分析
- 判断标准:用户提到具体事件 ID 或要求"诊断/根因"→ 本技能;用户要求"统计/趋势/对比"→ analytics
前置条件
- FlashDuty API 授权:用户已配置 FlashDuty MCP 工具,API 连接可用
- 频道访问权限:用户有权访问目标协作空间(Channel)
- 数据保留期限:查询受 FlashDuty 数据保留策略限制
内部逻辑模式
本技能采用 Tool Wrapper 模式:包装 diagnosis-engine Sub-Agent,提供事件诊断的统一入口。
与 SRE 实践集成
诊断事件时,注意:
- 四大黄金信号: 延迟、流量、错误、饱和度
- 无责备分析: 看系统设计,不看个人
- 每个发现都要能带来改进
- 这是新问题还是老问题? 如果重复出现,说明上次的改进没落地
如需全面的事后分析,请委托给 flashduty-sre-practices 技能,它将启动 flashduty-postmortem-generator。
主要 Sub-Agent
flashduty-diagnosis-engine
用于: 所有事件诊断任务
能力:
- 并行获取事件详情、时间线和告警
- 使用
list_similar_incidents查找历史相似事件,识别反复出现的问题 - 使用
query_changes查询事件前后的近期部署/变更,识别部署引发的故障 - 分析模式和相关性
- 识别根因指标
- 生成结构化诊断报告
传递参数:
{
"incident_id": "FD123456",
"include_timeline": true,
"include_alerts": true,
"find_related": true,
"time_range": "1h"
}
注意:
time_range用于搜索相关事件,支持相对时间范围(如'1h'、'24h'、'7d')。也可以使用time_window(秒数)作为替代。
并行执行策略
diagnosis-engine 内部并行化:
并行获取 (同时进行):
- 获取事件详情
- 获取事件时间线
- 获取事件告警
- 查找相似历史事件(
list_similar_incidents) - 查询近期部署/变更(
query_changes,时间窗口为事件前后 1-2 小时)
顺序分析 (依赖步骤 1):
- 查找相关事件
- 综合诊断结果
工作流
步骤 1: 识别目标事件
如果用户提供事件 ID,直接使用。
如果没有,快速查询 list_incidents 查找匹配项。
无结果处理:如果
list_incidents返回空结果,请用户提供更多信息(事件 ID、时间范围、关键词)或扩大搜索范围。
步骤 2: 启动诊断引擎
Task({
subagent_type: "general-purpose",
description: "诊断事件 " + incident_id,
prompt: `你是 flashduty-diagnosis-engine。
参数:{
"incident_id": "${incident_id}",
"include_timeline": true,
"include_alerts": true,
"find_related": true,
"time_range": "1h"
}
诊断此事件,启用完整分析,包括时间线、告警、相似事件和近期变更。`
})
步骤 3: 展示结果
展示来自 Agent 的结构化诊断报告。
使用模式
单事件诊断
用户: "诊断事件 FD123456"
→ 启动 flashduty-diagnosis-engine
→ 展示诊断报告
多事件对比
用户: "对比这几个事件的根因"
→ 并行启动多个诊断引擎
→ 每个分析一个事件
→ 展示对比分析
深度调查
用户: "深入分析这个事件的所有细节"
→ 启动诊断引擎,启用所有选项
→ 引擎内部并行化数据收集
→ 返回综合报告
响应格式
diagnosis-engine 返回结构化数据。按以下方式展示:
## 事件诊断: [标题]
### 概览
ID: [id] | 严重级别: [severity] | 状态: [status]
持续时间: [X 分钟] | Channel: [channel_name]
### 时间线
- 创建: [时间]
- 确认: [时间] (创建后 [X] 分钟)
- 解决: [时间] (耗时 [X] 分钟解决)
### 关联告警 ([数量])
| 告警 | 严重级别 | 事件数 | 状态 |
|------|---------|--------|------|
| ... | ... | ... | ... |
### 关键元数据
- 来源: [From label]
- 范围: [namespace/cluster]
- 告警规则: [alertname]
### 相关事件
[相似历史事件列表,通过 `list_similar_incidents` 获取]
### 部署关联
[事件前后的近期变更,通过 `query_changes` 获取]
### 诊断
**潜在根因**:
- [观察 1]
- [观察 2]
**影响范围**: [分析]
**响应效果**: [分析]
何时使用多个 Agent
在以下情况并行启动诊断 Agent:
- 用户提到多个事件 ID
- 用户要求 "对比" / "compare" 事件
- 用户询问 "相关事件" 且你需要诊断每个
用户: "分析事件 A、B、C"
→ 并行:
Agent 1: 诊断事件 A
Agent 2: 诊断事件 B
Agent 3: 诊断事件 C
→ 汇总发现
Converted and distributed by TomeVault — claim your Tome and manage your conversions.