<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: *,浏览器可直接调用;支持GET、HEAD与OPTIONS(预检) - 缓存:响应头
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_maintenances 与 scheduled_maintenances 数组元素: