108 lines
3.9 KiB
Markdown
108 lines
3.9 KiB
Markdown
|
|
# 巡检 — 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 / 空表分页 |
|