在 Flashduty On-call
您可通过以下两种方式获取集成推送地址,任选其一即可。
使用专属集成
- 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
- 选择 配置 → 集成数据 → 专属集成,点击 新增一个集成
- 选择 Robotalp,点击 保存
- 打开生成的集成卡片,复制 推送地址
使用共享集成
- 进入 Flashduty 控制台,选择 集成中心 → 告警事件
- 选择 Robotalp,填写集成名称
- 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
- 点击 保存,复制生成的 推送地址
在 Robotalp 中配置
1
添加自定义 Webhook 集成
- 登录 Robotalp,点击右上角头像打开账号菜单,选择 Integrations
- 点击 Add Integration,选择 Custom Webhook
- 填写名称,在 URL 中填入 Flashduty 集成的完整推送地址(含
integration_key) - 保存。无需添加自定义请求头
2
在监控项上启用该 Webhook
- 编辑要监控的监控项(Robot,创建或编辑窗口均可),进入 Alerts 标签页
- 在 Notification Preferences 中打开刚创建的 Webhook
- 如果提供了通知频率选项,建议使用 only once until resolved(宕机期间只通知一次,恢复时再通知一次)
3
验证
- 在添加或编辑 Webhook 集成的表单里点击 Test Connection,Flashduty 会创建一条 Info 级别的测试告警,标题为
Robotalp test notification。它不会自动恢复,验证后请手动关闭 - 临时把监控项的地址改成一个会返回错误的地址(例如返回 HTTP 503),等待下一次检测,Flashduty 出现一条 Critical 告警
- 把地址改回正常值,等待下一次检测,原告警恢复
Alert Key
Flashduty 用请求体里的
incident_id 作为 Alert Key。Robotalp 对同一次宕机的宕机通知和恢复通知发送相同的 incident_id,我们在真实的 Robotalp 上验证过:同一个监控项先宕机、后恢复,两次推送的 incident_id 一致。
- 监控项名称、地址、错误信息、持续时间的变化都不会改变 Alert Key
- 同一个监控项两次不同的宕机,
incident_id不同,对应两条告警 - 缺少
incident_id的请求会被拒绝,因为无法可靠关联后续恢复
状态和告警等级
Robotalp 的请求体没有告警等级字段,只有
status。
其他值会被拒绝。恢复事件会带上
resolved_at 和 downtime_seconds,Flashduty 将它们和宕机原因 result_message 一起保存为标签。
排查问题
- Flashduty 没有收到事件:确认 Webhook 已在监控项的 Notification Preferences 中启用,且推送地址完整并包含
integration_key - 告警没有恢复:确认没有在 Custom payload 中覆盖
incident_id或status;如果监控项被暂停或删除,Robotalp 不会发送恢复通知,需要手动关闭告警,也可以在协作空间中开启告警自动关闭作为兜底 - 测试告警没有关闭:Test Connection 的推送不会恢复,需手动关闭