result_class 为 FAIL、WARNING、SLOW 时,Flashduty 触发或更新告警;同一个调用在任一探测地点返回 PASS 时,关闭这条告警。
在 Flashduty On-call
您可通过以下两种方式获取集成推送地址,任选其一即可。
使用专属集成
- 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
- 选择 配置 → 集成数据 → 专属集成,点击 新增一个集成
- 选择 APIContext (APImetrics),点击 保存
- 打开生成的集成卡片,复制 推送地址
使用共享集成
- 进入 Flashduty 控制台,选择 集成中心 → 告警事件
- 选择 APIContext (APImetrics),填写集成名称
- 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
- 点击 保存,复制生成的 推送地址
在 APIContext 中配置
1
新增 Generic Webhook
- 登录 APIContext(
client.apimetrics.io),进入要监控的项目 - 在左侧导航选择 Alerts & Webhooks,点击 + Add new action
- Type 选择 Generic,填写名称,例如
Flashduty - URL 粘贴 Flashduty 集成的完整推送地址(含
integration_key) - Authentication 选择 None,无需自定义 HTTP Header
2
选择触发的结果类型
在 Trigger alerts 中同时勾选 Fail、Warning、Slow 和 Pass。必须勾选 Pass,否则 Flashduty 收不到恢复通知,告警不会自动关闭。Only alert after this many failures in a row 建议填
1,连续失败一次即告警;填 0 表示每个结果都发送。可用 Include tags / Exclude tags 限定哪些 API 调用发送通知。勾选 Pass 后,每次成功的调用都会向 Flashduty 发送一个请求。没有对应活动告警的
PASS 不会产生新告警,只有同一调用的活动告警会被关闭。3
启用并验证
- 打开右侧的 Enabled 开关,点击 Save
- 让一个被监控的 API 真正失败(例如把调用指向一个返回 5xx 的地址),确认 Flashduty 收到活动告警
- 恢复该 API,确认下一次
PASS结果到达后原告警关闭
推送内容
APIContext 以 HTTP POST 发送 JSON,每个请求对应一次调用结果,无需配置模板。Flashduty 使用以下字段:
告警标题为“调用名称: result”,例如
Orders API: HTTP_SERVER_ERROR。
Alert Key
Alert Key 由
call_id 计算得到,每个 API 调用对应一条告警。APIContext 文档说明 call_id 是“每次执行该调用都相同的固定 ID”,所以同一个调用的失败和恢复结果落在同一条告警上,无论结果来自哪个探测地点。默认调度下每次执行只从一个随机地点探测,因此任一地点返回的 PASS 都会关闭该调用的告警,下一次失败再重新打开。location_id 只作为标签和描述保留。
修改调用名称、结果详情、响应时间或 HTTP 状态码不会改变 Alert Key。请求缺少 call_id 时,Flashduty 返回参数错误,因为无法可靠地把恢复关联到原告警;不含 call_id、result_id 和 result_class 的请求(如空对象)视为测试请求,返回成功且不创建告警。
状态和告警等级
SLOW 表示调用成功但响应慢,Flashduty 记为 Warning,不会关闭已有的失败告警。需要调整等级时,可在协作空间的 配置 中用规则改写。
常见问题
告警没有自动恢复?
告警没有自动恢复?
确认 APIContext 的 Webhook 已勾选 Pass。APIContext 会把
PASS 结果发送到 Webhook,Flashduty 关闭 call_id 一致的那条告警,与探测地点无关。若仍不关闭,检查该调用的 PASS 结果是否确实发出。同一个 API 在多个地点失败,会有几条告警?
同一个 API 在多个地点失败,会有几条告警?
一条。告警按调用聚合,各地点的失败合并到同一条告警,任一地点返回
PASS 即关闭。如果一个调用只在部分地点失败,其他地点的成功结果会关闭告警,下一次失败再重新打开,可能出现反复打开和关闭。可以为协作空间开启超时自动关闭作为可选兜底,超时计时起点选择 故障触发;也可在 APIContext 的 Schedules 中固定 Node Locations,让调用总是从相同地点执行。APIContext 的重试会产生重复告警吗?
APIContext 的重试会产生重复告警吗?
不会。同一个调用的 Alert Key 不变,重复的失败结果会合并到同一条告警。
排查问题
- APIContext 收不到成功响应:确认 URL 是完整的推送地址,且包含
integration_key - Flashduty 返回参数错误:请求体缺少
call_id。请确认使用的是 Generic Webhook,而不是 OpenTelemetry 或其他类型的导出 - 没有收到任何告警:检查 Webhook 的 Enabled 开关、Snooze 状态,以及组织设置中 Downtimes 的 Allow 开关是否为 ON