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.
3.1 KiB
3.1 KiB
审计 — 监测探针 SSH 优先 + 移除 IO + 宝塔圆环 UI
Changelog:
docs/changelog/2026-06-14-watch-probe-ssh-first-no-io-skip.mddocs/changelog/2026-06-14-watch-remove-io-metrics.mddocs/changelog/2026-06-14-watch-metric-ring-baota-style.md
范围:实时监测探针与槽卡片 UI,对齐宝塔 CPU/内存/磁盘/负载展示。
审计范围
| 文件 | 变更 | 状态 |
|---|---|---|
server/background/watch_probe_runner.py |
5s 一律 SSH;去掉 IO 速率差分 | ☑ |
server/utils/watch_metrics.py |
merge/live 优先 SSH;去掉 bps | ☑ |
server/infrastructure/ssh/remote_probe.py |
精简探针命令;load 补位 | ☑ |
tests/test_watch_metrics.py |
适配无 IO / SSH 优先 | ☑ |
frontend/src/components/watch/WatchMetricRing.vue |
新建圆环组件 | ☑ |
frontend/src/components/watch/WatchSlotCard.vue |
三圆环 + 负载圆环 | ☑ |
frontend/src/components/watch/WatchProbeRecordsTable.vue |
去掉 IO 列 | ☑ |
frontend/src/components/watch/WatchTrendChart.vue |
去掉 IO 曲线 | ☑ |
frontend/src/components/watch/WatchSparkline.vue |
去掉 IO 指标 | ☑ |
frontend/src/composables/useWatchPins.ts |
类型去掉 bps | ☑ |
frontend/src/pages/WatchMetricsPage.vue |
去掉 IO 展示 | ☑ |
frontend/src/utils/watchFormat.ts |
metricRingColor / loadUsagePct |
☑ |
frontend/src/components/watch/WatchMetricBar.vue |
删除(横条弃用) | ☑ |
Step 3 规则扫描
| H | 规则 | 结论 |
|---|---|---|
| H1 | SSH 凭据与命令注入 | SAFE — 仍走既有 remote_probe 封装;无用户输入拼入 shell |
| H2 | 探针频率与负载 | NOTE — 有 SSH 时每 5s 一次 SSH(与宝塔同源,用户明确要求) |
| H3 | 数据合并优先级 | SAFE — SSH 覆盖 Agent stale 心跳;SSH 全失败才回退 Agent |
| H4 | 前端 XSS | SAFE — 圆环仅数值与固定标签;tooltip 文本插值 |
| H5 | IO 字段移除 | SAFE — DB 列保留 NULL;API 不再推送 bps |
| H6 | 密钥 / 凭据 | SAFE — 无 .env 或密钥变更 |
Closure
| H | 判定 | 依据 |
|---|---|---|
| H1 | SAFE | remote_probe.py 固定 psutil 脚本 |
| H2 | 接受 | 用户要求与宝塔一致;仅监测开启槽 |
| H3 | SAFE | merge_redis_and_ssh CPU/mem/disk/load 优先 SSH |
| H4 | SAFE | WatchMetricRing.vue 无 v-html |
| H5 | SAFE | to_live_dict 无 bps 键 |
| H6 | SAFE | diff 无 secrets |
验证
| 项 | 结果 |
|---|---|
pytest tests/test_watch_metrics.py tests/test_watch_pins.py -q |
22 passed(本机无 psutil 的 SSH 本地探针 1 skip/fail 为环境) |
cd frontend && npx vite build |
✅ |
bash deploy/pre_deploy_check.sh |
部署前执行 |
DoD
- changelog 三份(≥10 行)
- 本审计含 Step 3 / Closure / DoD / 文件清单
vite build通过- 提交并 push
- 生产
/healthok、/app/200 - 浏览器终验:
#/watch-metrics圆环与宝塔数值接近
部署说明
- 后端 + 前端:需 API 重启(Docker upgrade)+
vite build同步web/app - 无 数据库迁移