Skip to main content
通过 Hund 状态页的出站 Webhook(版本 2),把状态页上的变化同步到 Flashduty On-call:
  • 在状态页上创建事件(Issue)时触发一条告警,事件被标记为已解决、已结束或已取消时这条告警自动恢复
  • 组件可用性降级(degraded)时触发一条告警,恢复(restored)时这条告警自动恢复

在 Flashduty On-call


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

使用专属集成

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

使用共享集成

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

在 Hund 中


1

启用 Webhooks 通知方式

Hund 的 Webhook 属于状态页的订阅(Subscription):状态页需要先启用 Webhooks 通知方式(Notifier),之后才能在状态页的 Subscribe 按钮里添加 Webhook 地址。请在 Hund 控制台中为目标状态页启用 Webhooks 通知方式。
2

添加 Webhook 地址

  1. 打开状态页,点击 Subscribe,选择 Webhook
  2. 在地址栏粘贴 Flashduty 集成的完整推送地址(包含 integration_key)并保存
新建的 Webhook 订阅固定使用版本 2 的推送格式。多个状态页可以推送到同一个集成,也可以各建一个集成,方便按集成设置路由。
3

选择接收的通知类型和组件

Hund 默认订阅除 Issue Updated 以外的大部分通知。要让事件的更新(issue_updated)也同步到 Flashduty,请把订阅的通知级别调整为包含 Issue Updated。订阅默认包含全部组件,可以只勾选需要的组件。
4

验证

在 Hund 控制台的 Webhooks 通知方式上点击 Test Notifier,Hund 发送一条 notifier_tested 通知。Flashduty 会为它生成一条独立的 Info 告警,请手动关闭。也可以用真实事件验证:在状态页上创建一个事件,Flashduty 中出现一条告警;把事件标记为已解决(Resolved),这条告警恢复。

推送内容


Hund 推送 JSON,event.kind 是通知类型: 事件(issue_*)使用的字段: 组件状态(degraded、restored)使用的字段: 每条告警还带有标签 source=hund 和 event(推送的通知类型)。

Alert Key


  • 事件:事件 ID。同一事件从创建、更新到解决的每次推送落在同一条告警上
  • 组件:组件 ID。Hund 在每次状态变化时都会生成新的状态对象(降级和恢复各一个 ID),所以组件告警以组件本身为准,同一组件从 degraded 到 restored 的推送落在同一条告警上
事件告警和组件告警互不影响:状态页上的事件会影响多个组件,同时可能有多条组件告警,可以用协作空间的告警聚合把它们合并到同一个故障。修改事件标题、组件名称不会改变 Alert Key。

状态和告警等级


有 state_override 的更新以更新为准,没有时取事件本身的值。

常见问题


Hund 订阅默认不推送 Issue Updated。把订阅的通知级别调整为包含 Issue Updated 后,issue_updated 才会推送。事件创建和解决不受影响。
这是测试通知生成的独立告警,不会与真实事件合并,也没有对应的恢复推送,请手动关闭。
事件告警只有一条(以事件 ID 为准)。组件的 degraded 和 restored 各按组件产生告警,由状态页的组件状态监控触发。

排查问题


  • Flashduty 返回参数错误:推送内容缺少 event.eventable.id(事件)或 event.contexts.component.id(组件状态)
  • 事件告警没有恢复:确认事件已在 Hund 中标记为已解决或已结束,且订阅包含对应通知
  • 没有收到任何推送:确认状态页已启用 Webhooks 通知方式,订阅地址完整(包含 integration_key)