在 Flashduty On-call
您可通过以下两种方式获取集成推送地址,任选其一即可。使用专属集成
- 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
- 选择 配置 → 集成数据 → 专属集成,点击 新增集成
- 选择 UptimeObserver,点击 保存
- 打开生成的集成卡片,复制 推送地址
使用共享集成
- 进入 Flashduty 控制台,选择 集成中心 → 告警事件
- 选择 UptimeObserver,填写集成名称
- 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
- 点击 保存,复制生成的 推送地址
在 UptimeObserver 中配置
UptimeObserver 没有固定的 Webhook 报文,报文由您填写的模板决定。Flashduty 只解析下面两个模板,需要创建两个 Webhook:一个用于故障,一个用于恢复。1
在 UptimeObserver 中创建 Incident Webhook(故障)
操作路径:UptimeObserver › Integrations › Webhooks
Webhook 表单本身没有触发时机,触发时机在关联 Monitor 时选择。将下面的 JSON 粘贴到 HTTP Body,点击 Save Webhook:
2
在 UptimeObserver 中创建 Resolution Webhook(恢复)
操作路径:UptimeObserver › Integrations › Webhooks再新增一个 Webhook,其余字段与上一步相同(URL 同为
{integration_url}),名称例如 Flashduty Resolution,HTTP Body 粘贴:3
在 UptimeObserver 中为 Monitor 添加 Webhook 告警
操作路径:UptimeObserver › Monitor 编辑页 › Add Alert(入口位置未在官方 Webhook 文档中列出,以界面为准)每个需要通知的 Monitor 添加两条 Alert,Alert Type 都选择 Webhook:
然后点击 Save changes。
4
验证生命周期
操作路径:UptimeObserver › Integrations › Webhooks(Webhook 保存后点击其测试按钮)测试按钮只能验证连通性:它发送的示例 Incident 会被 Flashduty 确认并忽略,不生成告警,也不能证明故障与恢复能被关联。请让被监控的地址真实不可达,确认 Flashduty 收到活动告警;恢复访问后,确认同一条告警自动恢复。
Alert Key
Flashduty 使用incident_id(__INCIDENT_ID__)作为 Alert Key。UptimeObserver 文档将其定义为数字型 Incident 标识,并在故障与恢复两个示例模板中都使用它。在真实故障中,触发和恢复两个 Webhook 对同一 Incident 返回相同的 incident_id,因此恢复会关闭对应的告警。
monitor_id 只作为标签。监控名称、根因和 incident_status 的变化不会改变 Alert Key;同一监控的下一次故障会产生新的 Incident,因此是一条新的告警。
状态和告警等级
event_type 为空或其他值会被拒绝。请求体为空对象 {} 时返回 200 且不创建告警。
排查问题
- UptimeObserver 返回非 2xx:确认 URL 完整且包含
integration_key - Flashduty 返回参数错误:确认 Body 是有效 JSON。
__INCIDENT_ROOT_CAUSE__或监控名称含双引号时,UptimeObserver 直接替换文本,可能破坏 JSON,可删除root_cause字段或改用不含引号的监控名称 - 告警没有恢复:确认已创建 Resolution Webhook,其
event_type为resolved,且已关联到同一个 Monitor - 测试成功但真实告警没收到:检查 Monitor 是否真正进入 Incident,以及是否关联了两个 Webhook