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

6.0 KiB
Raw Blame History

终端系统指标告警(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和旧库重复升级。控制台验证单位、温度上限、规则提交、错误保留、过期提示、确认语义、权限及深浅主题/窄屏。完整测试和现场结果见 证据目录。

更新前备份为私有 .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。

证据:后端与页面测试、真实触发与确认、真实页面。