关于 pagerduty-automation
面向 PagerDuty 运维的自动化技能,通过 Rube MCP 和 Composio 工具包处理事件、服务、值班计划及升级策略。适用于维护事件响应流程的团队。
主要功能
- 01创建和更新事件
- 02查看告警与事件分析
- 03管理服务配置
- 04查看和调整值班计划
- 05管理升级策略与团队
适用场景
- 01确认并处理触发的事件
- 02查看事件告警和响应指标
- 03查询当前值班人员
- 04调整服务的升级流程
MCP 相关
通过 Rube MCP 调用 Composio 的 PagerDuty 工具包;需连接 Rube MCP 并完成 PagerDuty 身份验证。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ davepoon/ buildwithclaude --skill pagerduty-automation安装后在 Claude Code 中输入/pagerduty-automation确认已加载。
详细介绍
通过 Rube MCP 自动化 PagerDuty
通过 Rube MCP 使用 Composio 的 PagerDuty 工具包,自动化 PagerDuty 事件管理和运维。
工具包文档:composio.dev/toolkits/pagerduty
前提条件
- 必须已连接 Rube MCP(可使用 RUBE_SEARCH_TOOLS)
- 通过
RUBE_MANAGE_CONNECTIONS激活 PagerDuty 连接,工具包为pagerduty - 始终先调用
RUBE_SEARCH_TOOLS,以获取最新的工具架构
设置
获取 Rube MCP:在客户端配置中将 https://rube.app/mcp 添加为 MCP 服务。无需 API 密钥——添加端点即可使用。
- 确认
RUBE_SEARCH_TOOLS有响应,以验证 Rube MCP 可用 - 调用
RUBE_MANAGE_CONNECTIONS,并指定工具包pagerduty - 如果连接状态不是 ACTIVE,请根据返回的授权链接完成 PagerDuty 身份验证
- 运行任何工作流前,确认连接状态为 ACTIVE
核心工作流
1. 管理事件
适用场景:用户希望创建、更新、确认或解决事件
工具调用顺序:
PAGERDUTY_FETCH_INCIDENT_LIST- 按条件筛选并列出事件[必需]PAGERDUTY_RETRIEVE_INCIDENT_BY_INCIDENT_ID- 获取特定事件的详细信息[可选]PAGERDUTY_CREATE_INCIDENT_RECORD- 创建新事件[可选]PAGERDUTY_UPDATE_INCIDENT_BY_ID- 更新事件状态或分配情况[可选]PAGERDUTY_POST_INCIDENT_NOTE_USING_ID- 为事件添加备注[可选]PAGERDUTY_SNOOZE_INCIDENT_BY_DURATION- 将事件暂缓一段时间[可选]
关键参数:
statuses[]:按状态筛选('triggered'、'acknowledged'、'resolved')service_ids[]:按服务 ID 筛选urgencies[]:按紧急程度筛选('high'、'low')title:事件标题(用于创建)service:包含id和type的服务对象(用于创建)status:更新操作的新状态
注意事项:
- 创建事件时,
service对象必须同时包含id和type: 'service_reference' - 状态转换顺序为:triggered -> acknowledged -> resolved
- 无法直接从 resolved 转换回 triggered
PAGERDUTY_UPDATE_INCIDENT_BY_ID需要将事件 ID 作为路径参数- 暂缓时长以秒为单位;暂缓期结束后,事件会再次触发
2. 查看事件告警和分析数据
适用场景:用户希望查看事件中的告警或分析事件指标
工具调用顺序:
PAGERDUTY_GET_ALERTS_BY_INCIDENT_ID- 列出事件的告警[必需]PAGERDUTY_GET_INCIDENT_ALERT_DETAILS- 获取特定告警的详细信息[可选]PAGERDUTY_FETCH_INCIDENT_ANALYTICS_BY_ID- 获取事件分析数据/指标[可选]
关键参数:
incident_id:事件 IDalert_id:事件中的特定告警 IDstatuses[]:按状态筛选告警
注意事项:
- 一个事件可能包含多个告警;每个告警都有自己的状态
- 告警 ID 的作用范围仅限于所属事件
- 分析数据包括响应时间、参与度指标和解决时间
3. 管理服务
使用时机:用户想要创建、更新或列出服务
工具调用顺序:
PAGERDUTY_RETRIEVE_LIST_OF_SERVICES- 列出所有服务 [必需]PAGERDUTY_RETRIEVE_SERVICE_BY_ID- 获取服务详情 [可选]PAGERDUTY_CREATE_NEW_SERVICE- 创建新的技术服务 [可选]PAGERDUTY_UPDATE_SERVICE_BY_ID- 更新服务配置 [可选]PAGERDUTY_CREATE_INTEGRATION_FOR_SERVICE- 为服务添加集成 [可选]PAGERDUTY_CREATE_BUSINESS_SERVICE- 创建业务服务 [可选]PAGERDUTY_UPDATE_BUSINESS_SERVICE_BY_ID- 更新业务服务 [可选]
关键参数:
name:服务名称escalation_policy:包含id和type的升级策略对象alert_creation:告警创建模式('create_alerts_and_incidents' 或 'create_incidents')status:服务状态('active'、'warning'、'critical'、'maintenance'、'disabled')
注意事项:
- 创建服务需要已有升级策略
- 业务服务不同于技术服务;它们代表业务级分组
- 服务集成定义了告警的创建方式(电子邮件、API、事件)
- 禁用服务会停止为该服务创建所有事件
4. 管理排班和待命安排
使用时机:用户想要查看或管理待命排班和轮班安排
工具调用顺序:
PAGERDUTY_GET_SCHEDULES- 列出所有排班 [必需]PAGERDUTY_RETRIEVE_SCHEDULE_BY_ID- 获取指定排班的详情 [可选]PAGERDUTY_CREATE_NEW_SCHEDULE_LAYER- 创建新的排班 [可选]PAGERDUTY_UPDATE_SCHEDULE_BY_ID- 更新现有排班 [可选]PAGERDUTY_RETRIEVE_ONCALL_LIST- 查看当前待命人员 [可选]PAGERDUTY_CREATE_SCHEDULE_OVERRIDES_CONFIGURATION- 创建临时覆盖安排 [可选]PAGERDUTY_DELETE_SCHEDULE_OVERRIDE_BY_ID- 移除覆盖安排 [可选]PAGERDUTY_RETRIEVE_USERS_BY_SCHEDULE_ID- 列出排班中的用户 [可选]PAGERDUTY_PREVIEW_SCHEDULE_OBJECT- 保存前预览排班变更 [可选]
关键参数:
schedule_id:排班标识符time_zone:排班时区(例如,'America/New_York')schedule_layers:轮班层配置数组since/until:待命查询的日期范围(ISO 8601)override:包含用户、开始时间和结束时间的覆盖对象
注意事项:
- 排班层定义轮班顺序;多个层可以重叠
- 覆盖安排是临时的,优先级高于正常排班
- 待命查询需要提供
since和until,以限定时间范围 - 时区必须是有效的 IANA 时区字符串
- 复杂排班变更保存前应先预览,以验证其正确性
5. 管理升级策略
使用时机:用户想要创建或修改升级策略
工具调用顺序:
PAGERDUTY_FETCH_ESCALATION_POLICES_LIST- 列出所有升级策略 [必需]PAGERDUTY_GET_ESCALATION_POLICY_BY_ID- 获取策略详情 [可选]PAGERDUTY_CREATE_ESCALATION_POLICY- 创建新的策略 [可选]PAGERDUTY_UPDATE_ESCALATION_POLICY_BY_ID- 更新现有策略 [可选]PAGERDUTY_AUDIT_ESCALATION_POLICY_RECORDS- 查看策略的审计记录 [可选]
关键参数:
name:策略名称escalation_rules:升级规则对象数组num_loops:停止前循环执行规则的次数(0 = 不循环)escalation_delay_in_minutes:升级级别之间的延迟时间
注意事项:
- 每条升级规则至少需要一个目标(用户、排班或团队)
escalation_delay_in_minutes定义升级到下一级别前的等待时间- 将
num_loops设为 0 表示策略运行一次后停止 - 如果仍有服务引用某策略,则无法删除该策略
6. 管理团队
适用场景:用户想要创建或管理 PagerDuty 团队
工具调用顺序:
PAGERDUTY_CREATE_NEW_TEAM_WITH_DETAILS- 创建新团队[必需]
关键参数:
name:团队名称description:团队描述
注意事项:
- 团队名称在账户内必须唯一
- 团队用于限定服务、升级策略和排班表
常见模式
ID 解析
服务名称 -> 服务 ID:
1. Call PAGERDUTY_RETRIEVE_LIST_OF_SERVICES
2. Find service by name in response
3. Extract id field
排班表名称 -> 排班表 ID:
1. Call PAGERDUTY_GET_SCHEDULES
2. Find schedule by name in response
3. Extract id field
事件生命周期
1. Incident triggered (via API, integration, or manual creation)
2. On-call user notified per escalation policy
3. User acknowledges -> status: 'acknowledged'
4. User resolves -> status: 'resolved'
分页
- PagerDuty 使用基于偏移量的分页
- 检查响应中的
more布尔字段 - 使用
offset和limit参数 - 持续请求,直到
more为 false
已知注意事项
ID 格式:
- 所有 PagerDuty ID 都是字母数字字符串(例如,'P1234AB')
- 服务引用需要
type: 'service_reference' - 用户引用需要
type: 'user_reference'
状态转换:
- 事件:triggered -> acknowledged -> resolved(只能向前转换)
- 服务:active、warning、critical、maintenance、disabled
速率限制:
- PagerDuty API 会对每个账户实施速率限制
- 收到 429 响应时应采用指数退避策略
- 批量操作之间应留出间隔
响应解析:
- 响应数据可能嵌套在
data或data.data下 - 使用回退模式进行稳健解析
- 分页采用
offset/limit/more模式
快速参考
| 任务 | 工具标识 | 关键参数 |
|---|---|---|
| 列出事件 | PAGERDUTY_FETCH_INCIDENT_LIST | statuses[], service_ids[] |
| 获取事件 | PAGERDUTY_RETRIEVE_INCIDENT_BY_INCIDENT_ID | incident_id |
| 创建事件 | PAGERDUTY_CREATE_INCIDENT_RECORD | title, service |
| 更新事件 | PAGERDUTY_UPDATE_INCIDENT_BY_ID | incident_id, status |
| 添加事件备注 | PAGERDUTY_POST_INCIDENT_NOTE_USING_ID | incident_id, content |
| 暂缓事件 | PAGERDUTY_SNOOZE_INCIDENT_BY_DURATION | incident_id, duration |
| 获取事件警报 | PAGERDUTY_GET_ALERTS_BY_INCIDENT_ID | incident_id |
| 事件分析 | PAGERDUTY_FETCH_INCIDENT_ANALYTICS_BY_ID | incident_id |
| 列出服务 | PAGERDUTY_RETRIEVE_LIST_OF_SERVICES | (none) |
| 获取服务 | PAGERDUTY_RETRIEVE_SERVICE_BY_ID | service_id |
| 创建服务 | PAGERDUTY_CREATE_NEW_SERVICE | name, escalation_policy |
| 更新服务 | PAGERDUTY_UPDATE_SERVICE_BY_ID | service_id |
| 列出排班表 | PAGERDUTY_GET_SCHEDULES | (none) |
| 获取排班表 | PAGERDUTY_RETRIEVE_SCHEDULE_BY_ID | schedule_id |
| 获取值班人员 | PAGERDUTY_RETRIEVE_ONCALL_LIST | since, until |
| 创建排班表覆盖配置 | PAGERDUTY_CREATE_SCHEDULE_OVERRIDES_CONFIGURATION | schedule_id |
| 列出升级策略 | PAGERDUTY_FETCH_ESCALATION_POLICES_LIST | (none) |
| 创建升级策略 | PAGERDUTY_CREATE_ESCALATION_POLICY | name, escalation_rules |
| 创建团队 | PAGERDUTY_CREATE_NEW_TEAM_WITH_DETAILS | name, description |
由 Composio 提供支持
评论
支持 Markdown