1.9 KiB
1.9 KiB
GPU 健康、独占资源与终端日志归档
已实现
GET /api/v1/resources/gpus?node=...在每个 GPU 上返回health:PVE PCI 清单中的驱动字段、驱动绑定状态、来源和采集时间。标准 PVE PCI 接口没有温度、利用率、显存指标;配置VDI_GPU_AGENT_TOKEN后,节点采集器通过POST /api/v1/gpu-agent/health上报近 10 分钟的真实指标,页面才显示status=collected,没有上报时保持not_collected。GET /api/v1/resources/gpu-exclusive?node=...提供独占组分配前检查:advisory lock、成员完整性、PVE 实际电源、活跃终端会话、未完成任务、冲突原因、allocationReady和releaseReady。接口只读,不会关机、切换显卡或重放任务。- 终端成功回传
collect-logs后,日志写入terminal_log_archives;终端正常运行时可通过设备令牌调用POST /api/v1/terminal/logs持续上报小批量事件,写入terminal_log_entries。两类记录在GET /api/v1/terminal-logs统一检索,均按终端和时间建立索引、保留 30 天并执行脱敏。 - 高级版 GPU 页面显示健康状态、驱动绑定、独占资源冲突和释放条件;日志与诊断页面增加持续归档检索区。
真实边界
温度、利用率和显存需要节点采集代理或厂商工具接入,当前 API 明确显示“未采集”。独占资源的释放状态只代表平台检查条件满足,实际 GPU 切换仍走既有终端准备任务和核对流程。
验证
docker run --rm -v "${PWD}:/src" -w /src/platform golang:1.27-alpine sh -c 'go test ./...'通过。npm run typecheck和生产构建通过。- 真实控制台
http://127.0.0.1:5182已重新部署;root 登录后真实读取独占组和 PVE GPU 清单,健康字段显示not_collected,独占组正确报告 VM 101 正在运行导致不可分配。