Skip to main content
通过 Honeycomb 的 Webhook 接收方将 Trigger 告警和 SLO Burn Alert 同步到 Flashduty On-call。Honeycomb 用 .Alert.InstanceID 标识一次告警触发,Flashduty 用它作为 Alert Key:同一次触发的告警通知和恢复通知会更新同一条 Flashduty 告警。

在 Flashduty On-call


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

使用专属集成

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

使用共享集成

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

在 Honeycomb 中配置


以下步骤需要能编辑 Team Settings 中集成的 Honeycomb 账号。Trigger 在所有套餐中可用;SLO 和 Burn Alert 需要 Pro 或 Enterprise 套餐。
1

创建 Webhook 接收方

  1. 进入 Team Settings,打开 Integrations 页面
  2. 在 Trigger and SLO Recipients 中点击 Add Integration,Provider 选择 Webhook
  3. Name 填写 Flashduty,Webhook URL 粘贴 Flashduty 集成的完整推送地址;Shared Secret 可以留空
2

定义 severity 变量

打开 Variables 页签,点击 Add variable,名称填写 severity,默认值填写 critical。Flashduty 用这个变量确定告警等级,可选值为 critical、warning、info。之后在 Trigger 或 Burn Alert 中选择这个接收方时,可以为单条规则覆盖默认值。
3

配置 Payload 模板

打开 Payload 页签,为三种告警类型分别点击 Enable,粘贴对应的模板。只启用了部分类型时,未启用的类型不能选择这个接收方。Triggers:
Budget Rate Burn Alerts:
Exhaustion Time Burn Alerts:
完成后点击 Add。
请保留 instance_id、status 和 is_test。缺少 instance_id 时 Flashduty 会拒绝请求,因为无法把恢复关联到原告警;status 只接受 TRIGGERED 和 OK。模板中的字符串都用 toJson 输出,名称或描述里有引号、换行时渲染结果仍是有效 JSON。
4

将接收方添加到 Trigger

  1. 打开 Triggers,编辑已有 Trigger 或点击 New Trigger
  2. 在 Recipients 中点击 Add Recipient,选择 Flashduty 接收方;需要其他告警等级时,在变量行中覆盖 severity
  3. Frequency of Alerts 选择 Limited alerts(默认)或 Group resolution alerts,保存 Trigger
Continuous alerts 在条件满足期间每次评估都会发送通知,但不会发送恢复通知,对应的 Flashduty 告警需要手动关闭。
5

将接收方添加到 SLO Burn Alert

  1. 打开 SLOs,在目标 SLO 的 Burn Alerts 列点击 Configure,再点击 New Burn Alert
  2. 设置 Exhaustion Time 或 Budget Rate 条件,在 Notify 中选择 Flashduty 接收方;需要时覆盖 severity
  3. 点击 Create Burn Alert
6

验证生命周期

Trigger 和 Burn Alert 的 Test 会发送 is_test 为 true 的测试通知(Limited alerts 的 Trigger 和 Burn Alert 发送一条 TRIGGERED 和一条 OK,Continuous alerts 的 Trigger 只发送 TRIGGERED)。Flashduty 对测试通知返回成功,但不会生成告警,可以用来确认推送地址可达。要验证完整流程,请让 Trigger 条件真正满足,确认 Flashduty 收到活动告警;再让条件恢复,确认原告警恢复。

Alert Key


Flashduty 直接使用 instance_id(.Alert.InstanceID)作为 Alert Key。Honeycomb 在模板变量说明中将它定义为一次 Trigger 或 Burn Alert 触发的唯一标识,可用于去重和关联告警;Honeycomb 官方的 incident.io 模板也用它作为 deduplication_key,在 OK 时解决对应告警。
  • 同一次触发期间的重复通知(例如 Trigger 有新的分组越过阈值)和最终的恢复通知,都更新同一条 Flashduty 告警
  • 同一个 Trigger 或 Burn Alert 恢复后再次触发,会生成新的 InstanceID,在 Flashduty 中是一条新告警
  • 名称、描述、告警等级和环境的变化都不会改变 Alert Key
使用 Group resolution alerts 时,Flashduty 同样按 instance_id 合并通知,收到 status 为 OK 的通知时恢复告警;告警描述列出当前越过阈值的分组。

状态和告警等级


Flashduty 根据 status 判断触发或恢复,根据 severity 变量确定告警等级。 status 为 OK 时,Flashduty 恢复原告警,并保留最后一次的告警等级。空值或其他 status 会被拒绝。

标签


排查问题


  • Honeycomb 中选不到 Flashduty 接收方:确认 Payload 页签中对应的告警类型已启用并填写了模板
  • Flashduty 返回参数错误:确认模板与上文一致,instance_id 和 status 非空;Honeycomb 对 4xx 响应不会重试
  • 告警等级都是 Critical:确认定义了 severity 变量,并在 Trigger 或 Burn Alert 中按需覆盖
  • 告警没有恢复:确认 Trigger 没有使用 Continuous alerts;测试通知不会生成或恢复告警
更多信息请参阅 Honeycomb 文档 Send Alerts to Webhooks、Custom Webhook Variables 和 Monitor SLOs。