Title: 框架运行状态部件 Canonical: https://microi.net/doc/system-engine/framework-status-widgets.html Page-Modified: 2026-11-13T00:09:50.000Z Source: published HTML document body; page revision is not a capability verification date. # 框架运行状态部件 运行状态部件把常用资源指标放进顶部和侧栏:无需离开业务页面,就能查看内存、可用磁盘与有权限的任务状态。顶部采用两个紧凑入口,侧栏采用摘要行;点击、聚焦或悬停打开同一个详情面板。 版本与安装边界 本页功能已包含在 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,也不开放公网端口。 - 核验两个探针确属预期系统盘和 /data 文件系统,记录设备身份与运行用户。 - 审核并构建不可变采集器镜像;只向独占卷写入有界快照。 - 为 API 增加同一卷的只读挂载,保留原 compose 的其它值。 - 检查真实时间戳、来源和缺值,再开放所需指标。 缺少挂载、驱动、有限容器内存上限或磁盘容量时保留未连接。更新 API 镜像本身不会自动增加宿主权限或创建采集器。 ## AI 统计如何解释 业务 Queued、原生 Pending、Comfy running 与 GPU 利用率来自不同层。原生任务仍为 Pending 时,Comfy 已执行且 GPU 满载是可能的,不能据一个计数宣布物理 GPU 空闲。 宁展示例 provider 只统计可见范围内有原生任务和输出记录的成功业务任务,排除明确的验收 SeedBatch。它们是任务数,不是作品数、输出文件数、收入或客户验收数。成功率标明全部时间窗口,终态分母为零时为未知。 验收分层 本地 Jint、SQLite、共享采样、HTTP 解析与组件回归,不能替代实际 MySQL 升级、DiyToken 撤权、真实 SignalR、宿主采集、手机浏览器或客户验收。逐层保留证据,不用 HTTP 200 或构建通过替代界面验收。