vdi-cloud/docs/cloud-terminal-alerts-20261111.md

51 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 终端系统指标告警(2026-11-11)
本轮在已有真实 CPU、内存、SoC 温度采集之上,接通终端系统指标的规则、持续判断、事件、确认和恢复。入口为控制台「监控告警」,无需更新盒子客户端。
## 使用
超级管理员在「告警规则 → 新增规则」选择终端 CPU、终端内存或终端 SoC 温度,配置高水位与持续时间。使用率阈值为 1~100%,SoC 温度阈值为 1~150°C,持续时间为 0~3600 秒;值大于等于阈值视为超限。温度选项默认 80°C、持续 120 秒,只是表单初值,需按实际设备调整。
新增规则作用于已激活且启用的终端。旧客户端、不支持的传感器、空值和过期采样均不按正常值处理。SoC 温度只使用已有 `soc-thermal` 采集,不等同于 CPU 或 GPU 温度。系统升级不会自动创建或启用这三类终端规则。
运维人员可查看和确认告警,只读人员可查看。确认表示已知悉,不能代替指标恢复。修改或停用规则按现有流程结束该规则的当前事件,原因标为「规则变更」,并重新计时。已恢复事件保留 90 天。
本轮仅控制台告警,外部通知、终端 GPU 健康指标和串流 FPS/RTT 仍未接入。
## 数据与持续时间
- 评估循环沿用 15 秒周期,读取设备最近的真实采样。设备心跳和指标都须在 90 秒以内,设备须仍启用、已注册且支持系统指标。
- 持续时间按源采样的时间差计算,起点不早于规则最近启用或修改时间;规则启用前的旧样本不占用持续时长。重复评估同一条采样不会累加。持续时间为 0 时,首次有效超限样本即可触发。
- 无效或缺失采样清除待触发计时,保留已发生的告警。采样间隔或监测中断超过 90 秒,新的超限采样重新开始计时。
- 为避免漏过评估间隔中的短暂恢复,使用已有历史采样检查上次评估之后是否出现正常值或空值;发现后从当前样本重新计时。检查仅回看最近 90 秒,利用终端/时间索引。
- 这是采样级持续判断,不代表两次采样之间每一瞬间都被测量;服务长时间中断后会保守地重新计时。
- 已触发事件在数据缺失时保持未恢复,页面明确显示「数据已过期或缺失;显示最近告警值,等待有效采样」。恢复有效采样后,仍超限就继续原事件,正常才自动恢复,不重复创建同一未结束事件。
- 终端停用或重新激活导致目标不可用时结束事件,原因标为「目标移除或停用」,不冒充指标自然恢复。
## 接口和迁移
沿用 `/api/v1/monitor/rules`、`/monitor/rules/{id}`、`/monitor/alerts` 和 `/monitor/alerts/{id}/acknowledge`。
规则的 `metric` 增加 `terminal_cpu`、`terminal_memory`、`terminal_temperature`。事件增加可空的 `dataFresh`:终端系统指标返回当前来源是否有效,其他指标返回 `null`;事件值在数据缺失时仍为最近告警值,不能视作当前测量值。设置能力增加 `terminal-metric-alerts`,OpenAPI 与前端类型同步生成。
启动迁移扩展 `alert_rules_metric_check`,在 `alert_rules` 增加内部更新时间 `updated_at`,在 `alert_states` 增加可空 `last_sample_at`;不清空原规则、事件、待触发状态或业务数据。反复启动可重复执行。节点资源和离线规则继续沿用原有判断,不按终端源采样方式计算。
## 验证与回退
使用独立临时 PostgreSQL 验证三指标、持续源时间、重复评估、缺失/过期/旧 Agent、不连续采样、恢复、目标撤销、阈值/RBAC和旧库重复升级。控制台验证单位、温度上限、规则提交、错误保留、过期提示、确认语义、权限及深浅主题/窄屏。完整测试和现场结果见 [证据目录](evidence/cloud-terminal-alerts-20261111/)。
更新前备份为私有 `.local/live/backups/before-terminal-alerts-20261111-092529.dump`;旧 API 和控制台镜像标签为 `before-terminal-alerts-20261111-092529`。回退旧 API 前应先用新版本停用这三类终端指标规则,防止旧评估器误解未知指标。新列可以保留;不要通过删卷或恢复旧库覆盖新增业务数据。
本轮不修改设备策略或二进制,不操作 VM 电源、快照、磁盘、GPU 或模板。现场原有 VM 状态以更新前基线为准,而不是沿用前一天的运行状态。
## 最终现场结果
API 与控制台已更新到本机 5182。真实盒子保持 `qt-platform/0.4.0` 在线,无客户端更新。临时将温度阈值设为 1°C、持续 60 秒验证真实链路,没有给设备加压或制造过热;最终复验覆盖 4 条真实温度样本,事件从开始到触发约 102 秒(包含采样与评估周期),起点不早于规则启用时间。确认后事件仍在告警;随后将该规则设为 **80°C / 120 秒、停用**,事件按“规则变更”结束。验收期间的测试事件保留在历史中,未将这一流程冒充实际过热或自然降温恢复;正常值自动恢复、过期和缺失流程由隔离数据库及页面测试验证。
Go 全量测试、`go vet`、旧表结构两次升级、前端 lint / 类型 / 3 项单元测试 / 生产构建及 61 项页面回归通过。真实深浅主题、1440px 与 390px 页面检查无脚本异常、失败响应或写请求,截图展示验收结束后的停用规则和已确认历史事件。
原账号密码哈希指纹、终端身份、授权、桌面参数和既有规则一致;VM102 保持运行,VM100/101 保持关机,三台 VM 的配置 digest 均与本轮更新前一致。期间另有一次资源同步任务新增,已原样保留,本轮没有提交桌面或终端任务。没有操作终端、PVE 电源、快照、磁盘或 GPU。
证据:[后端与页面测试](evidence/cloud-terminal-alerts-20261111/validation.json)、[真实触发与确认](evidence/cloud-terminal-alerts-20261111/live-verification.json)、[真实页面](evidence/cloud-terminal-alerts-20261111/browser-verification.json)。