Skip to main content
Flashduty 状态页提供嵌入组件(Widget):一段可以直接粘贴到任意网站 HTML 中的代码,把状态页的实时状态展示在你的官网、帮助中心或内部系统里。Widget 以 Web Component 形式运行(<flashduty-status-widget>),样式与宿主页面隔离,不会相互影响。
嵌入组件仅适用于公开状态页。内部状态页的「嵌入组件」设置页不可用。

两种形态

两种形态都支持主题(自动 / 亮色 / 暗色)与语言(中文 / English)配置,徽标额外支持尺寸选择,横幅额外支持位置选择。

在控制台生成嵌入代码

1

打开嵌入组件设置

进入状态页详情页,选择 设置 → 嵌入组件。页面包含 状态徽标事件横幅API 三个页签。
2

配置外观

在对应页签下调整主题、语言、尺寸(徽标)或位置(横幅),右侧实时预览会同步更新。预览仅用于查看效果,不会修改真实状态页;横幅还可以切换「运行正常 / 服务故障 / 已计划的维护」三种预览场景。
3

复制嵌入代码

点击 复制代码,将嵌入代码粘贴到你网站的 HTML 中即可。嵌入代码中的脚本版本与你的状态页部署实际提供的版本保持一致,无需手工维护。

嵌入代码示例

脚本标签带有 integrity(SRI 校验)与 crossorigin="anonymous" 属性,请整段复制,不要只拷贝 <flashduty-status-widget> 标签。示例中的 https://status.example.com 请替换为你状态页的实际地址(控制台生成的代码中已是真实地址)。

属性参考

<flashduty-status-widget> 支持以下属性:

行为说明

数据刷新

  • Widget 默认每 30 秒轮询一次状态接口(间隔由接口的 poll_after_seconds 字段下发),并带有随机抖动,避免大量访客同时请求
  • 请求携带 If-None-Match(ETag)条件头;数据未变化时服务端返回 304,不重复传输内容
  • 页面隐藏(切到后台标签页)时暂停轮询,回到前台立即刷新一次
  • 请求失败时按指数退避重试(5 秒起步,最长 5 分钟)

数据过期(Stale)

接口通过 max_stale_seconds(默认 120 秒)声明数据保鲜期。超过该时间未能成功校验数据时:
  • 徽标进入「未知状态」,并显示最近一次确认数据的时间
  • 横幅在无有效数据时不显示

横幅的显示与关闭

  • 横幅按优先级选取展示内容:进行中的故障 > 进行中的维护 > 24 小时内开始的计划维护;存在多条事件时,横幅会显示「另有 N 条」
  • 访客可点击 × 关闭横幅。关闭状态记忆在当前浏览器会话中,按「事件 ID + 最近更新时间」记录——当事件有新进展(状态更新或新增时间线)时,横幅会重新出现
  • 设置 show-upcoming-maintenance="false" 可关闭计划维护的提前显示

状态枚举与颜色

状态页中被设置为隐藏的组件不会出现在 Widget 数据中——快照只包含对外可见组件的故障与维护事件。

公开接口 summary.json

如果你不想使用现成的 Web Component,可以直接调用每个公开状态页自带的 JSON 快照接口,自行渲染或集成到你的监控体系中。控制台「嵌入组件 → API」页签展示了该地址。
  • 公开访问:无需鉴权、无需 API Key
  • 跨域:响应携带 Access-Control-Allow-Origin: *,浏览器可直接调用;支持 GETHEADOPTIONS(预检)
  • 缓存:响应头 Cache-Control: public, max-age=30, s-maxage=30, stale-while-revalidate=120, stale-if-error=3600,并返回 ETag——携带 If-None-Match 且数据未变化时返回 304
  • 时效:响应头 X-Status-Validated-At 表示快照最近一次从后端成功校验的时间,可据此判断数据是否过期
该接口面向浏览器端低频轮询设计。高流量场景下请通过你的服务端代理并缓存响应,不要让大量客户端直连该地址。

响应字段

响应为单个 JSON 对象,schema_version 当前固定为 "1.0" ongoing_incidents 数组元素: in_progress_maintenancesscheduled_maintenances 数组元素:

响应示例

错误响应

Widget 功能默认开启,你无需任何配置即可使用。私有化部署环境中,部署管理员可通过 deploy.widgetEnabled 开关整体关闭该功能(关闭后接口返回 404)。