Skip to main content
通过 APIContext(原 APImetrics)的 Performance Results Webhook,把 API 监控的调用结果同步到 Flashduty On-call。每次调用结果的 result_class 为 FAIL、WARNING、SLOW 时,Flashduty 触发或更新告警;同一个调用在任一探测地点返回 PASS 时,关闭这条告警。

在 Flashduty On-call


您可通过以下两种方式获取集成推送地址,任选其一即可。

使用专属集成

  1. 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
  2. 选择 配置 → 集成数据 → 专属集成,点击 新增一个集成
  3. 选择 APIContext (APImetrics),点击 保存
  4. 打开生成的集成卡片,复制 推送地址

使用共享集成

  1. 进入 Flashduty 控制台,选择 集成中心 → 告警事件
  2. 选择 APIContext (APImetrics),填写集成名称
  3. 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
  4. 点击 保存,复制生成的 推送地址

在 APIContext 中配置


1

新增 Generic Webhook

  1. 登录 APIContext(client.apimetrics.io),进入要监控的项目
  2. 在左侧导航选择 Alerts & Webhooks,点击 + Add new action
  3. Type 选择 Generic,填写名称,例如 Flashduty
  4. URL 粘贴 Flashduty 集成的完整推送地址(含 integration_key)
  5. 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

启用并验证

  1. 打开右侧的 Enabled 开关,点击 Save
  2. 让一个被监控的 API 真正失败(例如把调用指向一个返回 5xx 的地址),确认 Flashduty 收到活动告警
  3. 恢复该 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 结果是否确实发出。
一条。告警按调用聚合,各地点的失败合并到同一条告警,任一地点返回 PASS 即关闭。如果一个调用只在部分地点失败,其他地点的成功结果会关闭告警,下一次失败再重新打开,可能出现反复打开和关闭。可以为协作空间开启超时自动关闭作为可选兜底,超时计时起点选择 故障触发;也可在 APIContext 的 Schedules 中固定 Node Locations,让调用总是从相同地点执行。
不会。同一个调用的 Alert Key 不变,重复的失败结果会合并到同一条告警。

排查问题


  • APIContext 收不到成功响应:确认 URL 是完整的推送地址,且包含 integration_key
  • Flashduty 返回参数错误:请求体缺少 call_id。请确认使用的是 Generic Webhook,而不是 OpenTelemetry 或其他类型的导出
  • 没有收到任何告警:检查 Webhook 的 Enabled 开关、Snooze 状态,以及组织设置中 Downtimes 的 Allow 开关是否为 ON
字段说明请参阅 APIContext 官方文档 Performance Results Webhook 和 Generic Webhook。