Skip to content

框架运行状态部件 ​

运行状态部件把常用资源指标放进顶部和侧栏:无需离开业务页面,就能查看内存、可用磁盘与有权限的任务状态。顶部采用两个紧凑入口,侧栏采用摘要行;点击、聚焦或悬停打开同一个详情面板。

版本与安装边界

本页功能已包含在 9.0.7 平台前后端发行制品中;这不等于目标租户已经完成安装。系统设置应用的配套字段、Managed 引擎与租户 Hook 仍须独立安装并回读,可选宿主采集器须另行接入。升级平台镜像不会自动完成这些步骤;缺少配套资源或提供者时保持未连接。实际 MySQL、会话撤权、SignalR 与电脑/手机交互仍须分层验收。

选择需要显示的范围 ​

范围默认行为需要额外接入
当前 API已连接时显示进程或容器指标,并明确来源无宿主挂载时不会自称整机数据
宿主机仅可信管理员可读已接入的固定采集快照只读文件、空目录磁盘探针及独立采集器
原生媒体调度只显示本人任务;管理员可看本租户与本运行环境原生后台任务结构与权限
Comfy 实际执行管理员可读真实 running、pending 数量AI 插件及当前租户已批准的服务器配置
租户业务由独立服务端 provider 返回权限内的计数租户 Hook 登记、固定 SQL 和真实字段

sourceScope 区分 host、container、service。每项指标还带 resourceId、mountPoint 和 observedAtUtc。容器 cgroup 上限不是宿主内存;容器 overlay 磁盘也不是客户系统 SSD。

顶部、侧栏与手机 ​

顶部默认显示内存已用百分比与磁盘可用百分比。详情面板展示指标、来源、采样时间和连接状态;宽度不足时顶部合成一个入口。侧栏不增加菜单滚动负担,折叠后只留可访问的图标。

  • 电脑支持悬停、点击与键盘聚焦;移动设备用点击。
  • Enter、Space 打开,Escape 关闭并恢复触发器焦点。
  • 面板适应手机视口、亮暗主题及减少动态效果设置。
  • 未取得数据用“— / 未连接”;保留的旧值明确标记过期。

首期只提供展示与租户级配置协议,没有前端布局编辑器,也没有跨设备个人显示偏好。不能把 CanConfigure 当作编辑器已经交付。

传输与采样 ​

mermaid
flowchart LR
  A[顶部入口] --> C[同一客户端状态实例]
  B[侧栏入口] --> C
  C --> D[既有 SignalR Invoke]
  C -. HTTP 降级 .-> E[同一 Managed 引擎]
  D --> E
  E --> F[白名单共享采样]
  E --> G[本人或已授权业务统计]

现有 /api-engine-socket 承载双向消息,固定实时引擎为 platform-framework-status-live。客户端每 15 秒 Invoke 一次快照;这是 WS 定时快照,不是服务端主动推送。每次仍验证正常会话,不能通过消息指定别人或保存配置。

同一 API 进程内,一个资源只进行一轮采样;并发读取共享结果。超时采集没有排空时不再启动第二个。页面隐藏停止后续请求和连接;切换账号、租户或 API 后,旧回包失效。断线采用 HTTP 降级与退避抖动。

宿主采集器每 15 秒向固定卷写一次原子快照,API 只读该文件。跨 API 的 Comfy 读取尚未承诺分布式单采;多节点负载与撤权仍须实测。状态区域是观测工具,不能替代 GPU 准入和共享队列的安全控制。

通过 MCP 配置 ​

先用正常连接调用 microi_run_engine。下面的读取不会创建业务任务:

json
{
  "apiEngineKey": "platform-framework-status",
  "params": { "Action": "GetConfig" },
  "confirmExecution": "platform-framework-status"
}

管理员再以相同引擎执行 Action: Catalog,获取服务器已登记的 provider 与 metric 名称。Catalog 不返回内部接口键、端点或凭据。

SaveConfig 参数来源与规则
Key使用本次 GetConfig 返回的固定 Key
ExpectedRevision使用原 Revision,不能自行加一后提交
ExpectedHash原 Hash;绑定实际有效配置记录和存储原文
Config有界声明式对象,只引用 Catalog 的名称

保存必须使用真实 HTTP POST 和当前租户可信管理员会话。客户端传来的等级、角色、方法标记或目标行 Id 都不能扩大权限。结果未知时先重新 GetConfig,不自动重复保存。

microi_save_engine_code 的 responseType: SignalR 配置实时引擎。不存在独立的 microi_set_engine_response_type 工具,不为此创建旁路服务。

配置归属与升级保全 ​

布局存放在公开实体字段 sys_config.FrameworkStatusWidgets,格式为 {revision, config}。沿用服务器已选择的有效系统配置 Id,不要求历史数据库只保留一条启用记录。

存储状态解释
NULL继承平台内置默认,无需读请求写入数据库
合法对象使用租户显式布局
widgets: []明确隐藏,升级后仍保持隐藏
空字符串或坏 JSON配置错误,不覆盖成默认

保存以 Revision 和 Hash 做单字段条件更新。普通系统设置表单携带未改的只读值时,服务器会先将它从本次更新中移除,防止覆盖另一位管理员的新布局。修改该字段和按条件批量写入均须拒绝。

系统设置应用拥有两个 Managed 引擎及默认 Hook。Hook 使用 Tenant/CreateIfMissing:已有同 Key、空正文或租户自定义均不能被默认源覆盖。SaaS 包只同步其拥有的共享字段结构,不携带客户布局、采集端点、账号偏好或运行值。

接入真实宿主指标 ​

可选采集器只读 /proc/stat、/proc/meminfo、宿主 boot id,以及系统盘和资料盘上的两个空目录探针。GPU 使用固定 nvidia-smi 查询;不接收任意命令,不采进程参数或环境变量,不挂 Docker socket,也不开放公网端口。

  1. 核验两个探针确属预期系统盘和 /data 文件系统,记录设备身份与运行用户。
  2. 审核并构建不可变采集器镜像;只向独占卷写入有界快照。
  3. 为 API 增加同一卷的只读挂载,保留原 compose 的其它值。
  4. 检查真实时间戳、来源和缺值,再开放所需指标。

缺少挂载、驱动、有限容器内存上限或磁盘容量时保留未连接。更新 API 镜像本身不会自动增加宿主权限或创建采集器。

AI 统计如何解释 ​

业务 Queued、原生 Pending、Comfy running 与 GPU 利用率来自不同层。原生任务仍为 Pending 时,Comfy 已执行且 GPU 满载是可能的,不能据一个计数宣布物理 GPU 空闲。

宁展示例 provider 只统计可见范围内有原生任务和输出记录的成功业务任务,排除明确的验收 SeedBatch。它们是任务数,不是作品数、输出文件数、收入或客户验收数。成功率标明全部时间窗口,终态分母为零时为未知。

验收分层

本地 Jint、SQLite、共享采样、HTTP 解析与组件回归,不能替代实际 MySQL 升级、DiyToken 撤权、真实 SignalR、宿主采集、手机浏览器或客户验收。逐层保留证据,不用 HTTP 200 或构建通过替代界面验收。

MIT License.