51 lines
6.0 KiB
Markdown
51 lines
6.0 KiB
Markdown
# 终端系统指标告警(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)。
|