# 巡检 — 2026-06-14(监测 UI + 生产健康) **日期**:2026-06-14 **范围**:监测槽 UI 迭代(`c91cb1c` 已部署 + 工作区待部署)· L2b · pytest · 生产源站 **生产**:https://api.synaglobal.vip ## 进度条 | 步骤 | 状态 | |------|------| | `local_verify.sh` | ✅ 26/26 + ruff | | `pytest`(非 chain) | ✅ 570 passed(1 环境性失败见下) | | `pytest tests/chain` | ✅ 9/9 | | `test_watch_*` + `test_ops_patrol_sync` | ✅ 29/30(SSH 本地探针 1 失败) | | 门控 7/7 | ✅(针对已跟踪变更) | | `vite build` | ✅ | | 生产 `/health` + `/app/` | ✅ `ok` / `200` @ `c91cb1c` | | 工作区待部署 | ⚠️ 见 §2 | --- ## 1. 生产(源站 SSH) | 项 | 结果 | |----|------| | `curl http://127.0.0.1:8600/health` | `ok` | | `curl /app/` | `200` | | `git log -1`(`/opt/nexus`) | `c91cb1c` — polish paused UI + header spacing | | `bash -n deploy/health_monitor.sh` | ✅ 通过 | | Docker nexus | 运行中(巡检时刻容器 Up) | **Layer 3 日志**:`/var/log/nexus_health.log` 尾部曾出现 `health_monitor.sh: unexpected EOF`(历史 cron 执行);当前仓库脚本 `bash -n` 正常,疑为旧版残留日志,**不影响当前 `/health`**。建议观察下一小时 cron 是否仍报错。 --- ## 2. 工作区未部署(监测槽 UI) 相对生产 `c91cb1c`,本地尚有未提交改动: | 变更 | 说明 | |------|------| | 顶栏 ⋮ 菜单 | 暂停/恢复/移除,去掉开关与 ✕,防误触 | | 暂停态精简 | 仅保留「恢复实时监测」;隐藏时长行、横幅、圆环占位、底栏 | | 开启态底栏 | 增加「暂停」文字链 | | `watch_probe_runner.py` | 删除未使用 `import time`(ruff F401) | **建议**:commit → 门控 → 部署前端(纯 UI + 无害 lint 可随下一次一起上)。 --- ## 3. 已部署功能走读(`b5419cd`…`c91cb1c`) | 检查项 | 结果 | |--------|------| | SSH 优先 5s 探针 | ✅ 代码在产 | | 移除 IO 速率 | ✅ 前后端 | | 四圆环一行(CPU/内存/硬盘/负载) | ✅ `3faa7a4` | | 恢复监测立即探针 | ✅ `5c508ed` | | 暂停态圆环占位 + 顶栏间距 | ✅ `c91cb1c`(将被下一版精简 UI 替代) | --- ## 4. 本地验证 ```text bash scripts/local_verify.sh → 26/26, ruff OK pytest tests/ -m "not chain and not slow" -q → 570 passed, 1 failed pytest tests/chain -q → 9 passed pytest tests/test_watch_pins.py test_watch_metrics.py test_ops_patrol_sync.py → 29 passed, 1 failed cd frontend && npx vite build → OK deploy/pre_deploy_check.sh → 7/7 ``` **环境性失败**:`test_ssh_watch_metrics_cmd_runs_locally` — 本机无 `psutil`,远端脚本返回 `error`;CI/生产有 psutil 时通过。非回归。 --- ## 5. 发现与处理 | # | 严重度 | 问题 | 状态 | |---|--------|------|------| | 1 | P2 | 顶栏开关易误触 | **工作区已改** — ⋮ 菜单 + 底栏「暂停」 | | 2 | P2 | 暂停态信息过载 | **工作区已改** — 仅恢复按钮区 | | 3 | P3 | `watch_probe_runner` 未使用 `import time` | **工作区已修** — ruff F401 | | 4 | P3 | L3 日志历史 syntax 报错 | 观察;当前脚本语法 OK | | 5 | P3 | Sparkline 渐变 hex 假设 | 未修(线条正常) | | 6 | P3 | 探针表 total=0 仍 1 页 | 未修 | --- ## 6. 部署后终验清单(下一版 UI) 1. 暂停槽:无时长行/圆环/底栏,仅「恢复实时监测」 2. 开启槽:顶栏仅 ⋮,无贴脸开关;底栏可点「暂停」 3. 四圆环数值与宝塔接近(±5s) 4. 暂停 → 恢复后 5–15s 内出现指标 --- ## 7. 待办 | 优先级 | 项 | |--------|-----| | P0 | 提交并部署 §2 工作区 UI + lint 修复 | | P1 | 用户浏览器终验暂停/恢复/菜单 | | P2 | 观察 L3 cron 日志是否仍报 EOF | | P3 | Sparkline / 空表分页 |