b5419cd2c0
Align live monitoring with Baota: always SSH psutil for CPU/mem/load, remove network/disk IO rates, and show metrics as circular rings in slots.
1.3 KiB
1.3 KiB
2026-06-14 — 实时监测探针:SSH 优先,IO 可选
摘要
取消「Agent 有心跳 IO 就跳过 SSH」逻辑;5s 监测统一走 SSH psutil,CPU/内存/负载与宝塔同源。IO 速率可选,SSH 无则 Agent 补位,都没有则显示「—」。
动机
用户反馈监测数据与宝塔偏差,且负载常缺失。根因:Agent 带 IO 时跳过 SSH,而 Agent 心跳不含 load_avg,CPU/内存还是 60s 智能上报的 stale 值。
变更
watch_probe_runner.probe_server_metrics:始终 SSH 探针;仅 SSH 全失败时回退 Agent 心跳merge_redis_and_ssh:CPU/内存/磁盘/负载优先 SSH;IO 字段 SSH 优先、Agent 补位redis_sample_has_io:改为纯信息标记,不再触发跳过 SSH
涉及文件
server/background/watch_probe_runner.pyserver/utils/watch_metrics.pyserver/infrastructure/ssh/remote_probe.py(轻量 load 补位,SSH 全失败时用)tests/test_watch_metrics.py
迁移 / 重启
需重启 API。有 SSH 凭据的子机 5s 探针会多一次 SSH(与宝塔一致);无 SSH 仍用 Agent。
验证
pytest tests/test_watch_metrics.py tests/test_watch_pins.py -q
与宝塔对比:CPU/内存/负载 1/5/15 应接近(采样时刻差 ±5s 正常)。