Files
Nexus/docs/changelog/2026-06-14-watch-probe-ssh-first-no-io-skip.md
T
Nexus Agent b5419cd2c0 feat(watch): SSH-first probe, drop IO metrics, Baota ring UI
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.
2026-06-14 03:19:43 +08:00

1.3 KiB
Raw Blame History

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/内存/磁盘/负载优先 SSHIO 字段 SSH 优先、Agent 补位
  • redis_sample_has_io:改为纯信息标记,不再触发跳过 SSH

涉及文件

  • server/background/watch_probe_runner.py
  • server/utils/watch_metrics.py
  • server/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 正常)。