名称: 警报上下文 描述: 从警报平台(如PagerDuty)获取事件上下文。在调查值班人员、事件历史、警报模式或MTTR指标时使用。 允许工具: Bash(python *)
警报上下文
认证
重要: 凭据由代理层自动注入。请勿检查环境变量中的PAGERDUTY_API_KEY - 它不会对您可见。直接运行脚本;认证是透明处理的。
警报上下文的重要性
在深入日志和指标之前,了解:
- 这之前发生过吗? 检查类似的过去事件
- 谁在响应? 知道谁在值班和被分配
- 还有什么在报警? 相关警报揭示范围
- 类似问题需要多长时间? MTTR设置期望
可用脚本
所有脚本位于.claude/skills/alerting-context/scripts/
get_incident.py - 获取事件详情
python .claude/skills/alerting-context/scripts/get_incident.py --id INCIDENT_ID [--timeline]
# 示例:
python .claude/skills/alerting-context/scripts/get_incident.py --id P123ABC
python .claude/skills/alerting-context/scripts/get_incident.py --id P123ABC --timeline
list_incidents.py - 列出事件并过滤
python .claude/skills/alerting-context/scripts/list_incidents.py [--status STATUS] [--days N] [--limit N]
# 示例:
python .claude/skills/alerting-context/scripts/list_incidents.py
python .claude/skills/alerting-context/scripts/list_incidents.py --status triggered
python .claude/skills/alerting-context/scripts/list_incidents.py --status acknowledged --limit 10
python .claude/skills/alerting-context/scripts/list_incidents.py --days 30
calculate_mttr.py - 计算平均解决时间
python .claude/skills/alerting-context/scripts/calculate_mttr.py [--service SERVICE_ID] [--days N]
# 示例:
python .claude/skills/alerting-context/scripts/calculate_mttr.py
python .claude/skills/alerting-context/scripts/calculate_mttr.py --days 30
python .claude/skills/alerting-context/scripts/calculate_mttr.py --service PSERVICE123 --days 90
调查工作流程
步骤 1: 获取当前事件上下文
# 获取当前事件详情
python get_incident.py --id P123ABC --timeline
返回:
- 事件标题、状态、紧急程度
- 受影响的服务
- 谁确认了、何时确认
- 采取行动的时间线
步骤 2: 查找类似过去事件
# 获取过去30天的事件
python list_incidents.py --days 30 --status resolved
# 检查特定服务的模式
python list_incidents.py --service PSERVICE123 --days 90
寻找:
- 相同警报标题重复出现 → 已知问题或抖动
- 警报集群 → 系统性问题
- 低确认率 → 可能的警报疲劳
步骤 3: 检查历史MTTR
# 获取此服务的MTTR
python calculate_mttr.py --service PSERVICE123 --days 30
返回:
- 平均MTTR(分钟/小时)
- 中位数MTTR
- 95百分位数
- 最快/最慢解决时间
快速命令参考
| 目标 | 命令 |
|---|---|
| 获取事件 | get_incident.py --id P123ABC |
| 带时间线 | get_incident.py --id P123ABC --timeline |
| 活跃事件 | list_incidents.py --status triggered |
| 已确认事件 | list_incidents.py --status acknowledged |
| 过去30天 | list_incidents.py --days 30 |
| 计算MTTR | calculate_mttr.py --service X --days 30 |
常见模式
模式 1: “这是已知问题吗?”
# 搜索过去30天类似警报
python list_incidents.py --days 30
# 检查输出中重复出现的警报标题
# 寻找相同服务、类似模式
模式 2: “升级调查”
# 获取带时间线的完整事件详情
python get_incident.py --id P123ABC --timeline
# 检查输出中的'assignments'和'acknowledgements'
# 时间线显示升级事件
模式 3: “SLA/MTTR跟踪”
# 获取MTTR以进行比较
python calculate_mttr.py --service PSERVICE123 --days 30
# 比较当前事件持续时间与历史平均值
# 如果当前 > p95,这是一个异常长的事件
输出格式
## 警报上下文摘要
### 当前事件
- **ID**: [事件ID]
- **标题**: [标题]
- **状态**: [触发/已确认/已解决]
- **服务**: [服务名称]
- **紧急程度**: [高/低]
- **创建时间**: [时间戳]
- **持续时间**: [自创建以来的时间]
### 值班人员
- **主要**: [姓名] ([邮箱])
- **次要**: [姓名] ([邮箱])
- **升级策略**: [策略名称]
### 历史上下文
- **类似事件(30天)**: N个事件,标题相同或类似
- **此服务的平均MTTR**: X分钟
- **此警报触发频率**: 平均每周Z次
### 建议
- [如果重复] 审查此警报的运行手册
- [如果持续时间长] 考虑升级
- [如果嘈杂] 考虑调整警报阈值
需避免的反模式
- ❌ 忽略过去事件 - 始终检查是否是已知问题
- ❌ 不检查值班人员 - 在调查前知道谁在响应
- ❌ 遗漏相关警报 - 一个事件可能掩盖真正问题
- ❌ 忘记MTTR上下文 - 知道“正常”解决时间
- ❌ 无限制查询 - 始终使用时间范围以避免超时