Skip to main content
通过 Atlassian Statuspage 的订阅者 Webhook,把上游服务状态页的变化同步到 Flashduty On-call。GitHub、Atlassian 等大量服务的公开状态页都托管在 Statuspage 上:订阅后,组件(Component)进入故障状态或状态页发布事件(Incident)时触发一条 Flashduty 告警,组件恢复为 operational 或事件变为 resolved 时这条告警自动恢复。 订阅者不需要 Statuspage 账号,也不需要付费。只有状态页的所有者开启了 Webhook 订阅,页面的订阅入口中才会出现 Webhook 选项。

在 Flashduty On-call


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

使用专属集成

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

使用共享集成

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

在 Statuspage 状态页上订阅


1

打开订阅入口

打开要订阅的状态页(例如 https://www.githubstatus.com),点击页面上的 Subscribe to updates(订阅更新),在弹出的订阅方式中选择 Webhook 图标。如果没有 Webhook 选项,说明状态页所有者没有开启 Webhook 订阅,无法通过本集成接入这个状态页。
2

填写推送地址

  1. Webhook URL:粘贴 Flashduty 集成的完整推送地址(包含 integration_key)
  2. Email address:填写一个团队邮箱。推送地址返回错误时,Statuspage 会发邮件到这个地址
  3. 点击 Subscribe 完成订阅。如果收到确认邮件,按邮件提示完成确认
同一个集成可以订阅多个状态页。不同状态页的告警由页面 ID 区分,不会互相合并或关闭。也可以为每个上游服务单独建一个集成,方便按集成设置路由。
3

(可选)订阅自己团队的状态页

如果状态页由您的团队用 Statuspage 维护,需要先在 Statuspage 管理后台进入 Subscribers → Options → Settings,在 Delivery types 中勾选 Webhook 并保存,状态页的订阅入口中才会出现 Webhook 选项。Free 套餐也可以开启。之后按上一步订阅即可;还没有激活(Activate)的状态页,团队成员登录后同样可以订阅,适合先用来验证。
4

验证

Statuspage 没有发送测试通知的按钮,订阅后要等状态页出现下一次组件状态变化或事件更新,Flashduty 中才会出现告警。如果您的团队维护着一个 Statuspage 状态页,可以用它验证:把一个组件的状态改为 Major outage,Flashduty 中出现一条 Critical 告警;再改回 Operational,这条告警恢复。在 Statuspage 中创建事件时,至少要勾选一个受影响的组件,Statuspage 才会发送通知。

推送内容


Statuspage 在组件状态变化和事件每次更新时推送一次 JSON,分为两类: 组件状态变化 告警标题形如 API Requests: major outage。 事件更新 每条告警还带有标签 source=statuspage。推送中的退订链接(meta.unsubscribe)含有订阅凭据,Flashduty 不会把它写入告警。

Alert Key


Flashduty 按推送类型分别生成 Alert Key:
  • 组件:状态页 ID + 组件 ID。同一组件从故障到恢复的每次状态变化落在同一条告警上
  • 事件:状态页 ID + 事件 ID。同一事件从 investigating 到 resolved 的每次更新落在同一条告警上
组件和事件的告警互不影响:一次上游故障通常会同时产生事件告警和组件告警,可以用协作空间的告警聚合把它们合并到同一个故障。 修改组件名称、事件名称或影响程度不会改变 Alert Key。等级升高时(例如事件的影响程度从 none 改为 critical),Flashduty 会新建一条更高等级的告警,原告警保持触发;恢复推送会同时关闭这两条告警。上一条告警恢复后,同一组件再次故障会生成一条新告警。

状态和告警等级


组件状态 事件 事件的告警等级取自影响程度(impact),告警状态取自事件状态(status): 计划维护(状态为 scheduled、in_progress、verifying、completed,或影响程度为 maintenance)属于计划内变更,Flashduty 返回成功但不生成告警。

常见问题


不会。monitoring 表示修复已上线、仍在观察,告警保持触发,直到状态页把事件标为 resolved。
under_maintenance 会被忽略,不作为恢复信号。组件维护结束、恢复为 operational 时,告警才会恢复;也可以在 Flashduty 中手动关闭。
Statuspage 的退订链接只出现在推送内容中,Flashduty 不保存它。您可以删除对应的 Flashduty 集成,或联系状态页的维护方移除订阅;推送失败时 Statuspage 会发邮件到订阅时填写的邮箱。

排查问题


  • 状态页上没有 Webhook 订阅选项:状态页所有者没有开启 Webhook 订阅,无法通过本集成订阅
  • Flashduty 返回参数错误:确认推送地址完整(包含 integration_key);推送内容缺少 page.id、组件 ID 或事件 ID 时会被拒绝
  • Statuspage 发邮件提示推送失败:Statuspage 要求 30 秒内返回 2xx 状态码,请确认集成没有被删除、推送地址没有被修改
  • 同一组件的告警没有恢复:确认组件已恢复为 operational;维护状态不会关闭告警