POST 请求发送到一个 HTTPS 端点。可用它把服务状态同步到聊天群、工单系统或内部状态看板。
组件、事件、维护与订阅者管理视图的说明见状态页。
订阅如何生效
1
登记端点
在公开页面或通过 API 提交端点 URL。订阅先处于待确认状态。
2
接收确认请求
MoleSignal 向端点发送一次
status_page_subscription_confirmation 请求。端点必须返回 2xx 状态码,否则登记失败。3
用 Token 确认
打开请求中的
confirm_url,或把 token 发送到确认接口。订阅随即生效。4
接收更新
确认之后发布的每一次变更都会作为一个请求投递。确认之前发布的变更不会补发。
端点要求
每次投递前,MoleSignal 都会重新解析主机,并再次套用同样的地址规则。
订阅
在公开页面选择订阅,把接收方式设为 Webhook,填入端点 URL,然后选择发送确认。 通过 API 订阅时,请求发往提供该状态页的源站:component_ids,填写各组件的 id(见公开页面接口 GET /api/v1/public/status-pages/<slug> 列出的组件)。不传或传空数组表示整个页面。分组不能被选择,请填写组内的组件。
该调用无需认证。登记成功返回 202 Accepted:
订阅链接基于
http.external_url 生成;页面的自定义域名处于有效状态时,则基于该域名生成。http.external_url 为空时,登记会以 503 失败。请求格式
发往端点的每个请求形态相同。
请求不携带签名 Header。如需识别请求是否真实,可在登记的 URL 的路径或查询串中加入一段难以猜测的值,并拒绝缺少该值的请求。管理视图只显示 Webhook 目标的协议与主机,例如
https://hooks.example.com/***。
按 type 分发处理。忽略未知字段与未知的 type 取值,这样 Payload 增加字段时端点仍可正常工作。
确认请求
每次登记,MoleSignal 发送一次如下 Payload:
打开
confirm_url,或发送 Token 来确认订阅:
200 OK:
400 与错误码 invalid_argument。
管理订阅请求
为已经生效的端点再次登记时,MoleSignal 发送的是管理订阅的链接,而不是新的确认请求,10 分钟内最多一次:confirm_url。
更新 Payload
所有时间戳均为整数,表示自 Unix 纪元起的微秒数(UTC)。组件名称、事件标题与消息保持页面团队写入时的原文,不做翻译。 选择了组件的订阅,只接收涉及其中某个组件的更新。关闭通知订阅者发布的更新不发送任何请求。每个更新 Payload 还带有订阅自身的链接:事件与维护更新
事件或维护每发布一条更新,MoleSignal 就发送一次incident_update。计划维护使用同一种 Payload,incident_kind 为 maintenance。草稿不发送任何请求。
事件更新:
对维护而言,每条更新中的
started_at 都是计划开始时间。团队改期时该值随之变化。工作开始后它仍是计划时间:实际开始时间是 in_progress 那条更新的 occurred_at。维护没有计划结束时间,因此在工作完成或取消之前,ended_at 为 null。
开启到点自动开始时(默认开启),MoleSignal 在计划开始时间发布
in_progress 更新,并作为 incident_update 发出。关闭时,到达计划开始时间不会发送请求:下一次请求随团队发布的下一条更新发出。维护提醒
已计划的维护开始之前,MoleSignal 发送maintenance_reminder。提前量在每个维护上设置,默认 60 分钟。提醒不是一条更新:它不会出现在维护的时间线上。
每个计划开始时间只发送一次提醒,因此改期后的维护会在新的开始时间之前再次提醒。维护在提醒时间之后才发布或改期、提前量为
0,或已离开 scheduled 状态时,不发送提醒。
组件状态变更
页面上显示的组件状态被修改时,MoleSignal 发送component_status_changed。组件创建时的初始状态不发送请求。已隐藏与已归档的组件不发送请求。
事件不会为其影响的组件发送
component_status_changed。incident_update Payload 通过 component_names 列出这些组件。
变更发布时处于隐藏状态的组件,不会出现在发给订阅者的内容中。它的状态变更不发送请求,
incident_update 的 component_names 也不会列出它。只影响已隐藏组件的事件或维护仍会发送,component_names 为空数组。隐藏或重新显示组件这一操作本身不发送请求。事故复盘
已解决事件的复盘发布时,或复盘修订发布时,只要打开了通知订阅者,MoleSignal 就发送postmortem_published。
page_name、page_slug、started_at、ended_at 与 component_names 的含义同 incident_update。
投递与重试
重试的投递会重复同样的请求体。Payload 不携带投递标识,因此请用
type、incident_id 或 component_id 加上 occurred_at 去重。同一事件的多条更新按 occurred_at 排序。
订阅结束、页面归档或页面改为私有之后,不再为该端点排队新的更新。
页面管理者可在状态页 → 订阅者 → 投递记录中查看每一次投递的尝试次数、状态与最后错误。已送达与已失败的记录会在页面的投递保留期之后清除:30、60、90、180 或 365 天。
退订
打开确认请求中的unsubscribe_url,或发送 Token:
200 OK 与 "accepted": true。仍在等待该端点的投递会被取消。
拥有 status_pages.manage 权限的用户也可以在状态页 → 订阅者中撤销订阅者,或为待确认的订阅者选择重新发送确认。重新发送会签发新的 Token。
状态页
创建页面、发布事件与维护,并管理订阅者。
Webhook 通知连接器
把告警通知发送到 Slack、飞书或通用 Webhook。