警报上下文Skill alerting-context

此技能用于从PagerDuty等警报平台获取事件上下文,包括分析事件历史、MTTR指标、警报模式和值班人员信息,帮助运维团队快速响应和优化警报管理。关键词:警报平台、事件管理、MTTR、DevOps、PagerDuty、运维自动化。

DevOps 0 次安装 0 次浏览 更新于 3/16/2026

名称: 警报上下文 描述: 从警报平台(如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次

### 建议
- [如果重复] 审查此警报的运行手册
- [如果持续时间长] 考虑升级
- [如果嘈杂] 考虑调整警报阈值

需避免的反模式

  1. 忽略过去事件 - 始终检查是否是已知问题
  2. 不检查值班人员 - 在调查前知道谁在响应
  3. 遗漏相关警报 - 一个事件可能掩盖真正问题
  4. 忘记MTTR上下文 - 知道“正常”解决时间
  5. 无限制查询 - 始终使用时间范围以避免超时