fix: surface distributed detect participation
This commit is contained in:
@@ -1,166 +1,130 @@
|
||||
# IMPLEMENTATION_STATUS
|
||||
|
||||
更新时间:2026-04-19 02:25 CST
|
||||
更新时间:2026-04-19 02:33 CST
|
||||
|
||||
## 当前真实状态
|
||||
|
||||
阶段判断:
|
||||
|
||||
- 海外单脑接管能力:约 `95%`
|
||||
- 分布式检测真实跑通程度:约 `89%`
|
||||
- 距离“可稳定上线并放心用后台发起检测”:约 `90%`
|
||||
- 分布式检测真实执行能力:约 `93%`
|
||||
- 距离“可稳定上线并放心用后台发起检测”:约 `92%`
|
||||
|
||||
当前最重要的新事实:
|
||||
本轮最重要的新事实:
|
||||
|
||||
- 大陆节点接管闭环已完成
|
||||
- acceptance 主链已完成
|
||||
- `runtime.pull_tasks` 的环境阻塞已解决
|
||||
- 大陆检测链已开始真实执行
|
||||
- 当前剩余问题已收敛为“检测总览统计口径未统一”
|
||||
- Detect 页面已经不再只显示海外节点
|
||||
- 大陆 controller / worker 已进入 Detect 总览显示口径
|
||||
- 用户现在能从 Detect 页面直接看见大陆节点参与执行
|
||||
|
||||
## 本轮代码与环境收口
|
||||
## 本轮代码收口
|
||||
|
||||
本轮代码变更:
|
||||
本轮后端变更:
|
||||
|
||||
- 提交:`74dc009`
|
||||
- 主题:`fix: inherit sync env in node agent`
|
||||
- `domain-api/app/services/detect_job_service.py`
|
||||
|
||||
本轮实际变更点:
|
||||
本轮前端变更:
|
||||
|
||||
- `domain-api/deploy/systemd/domain-node-agent.service`
|
||||
- 增加:
|
||||
- `EnvironmentFile=-/etc/default/domaincheck-api`
|
||||
- `domain-api/deploy/multi-region/templates/domaincheck-node-agent.env.example`
|
||||
- 补齐:
|
||||
- `runtime.start_detection`
|
||||
- `runtime.stop_detection`
|
||||
- `runtime.pull_tasks`
|
||||
- `domain-web/src/views/detect/DetectView.vue`
|
||||
|
||||
本轮环境动作:
|
||||
本轮修复方式:
|
||||
|
||||
- 已在 `mainland-controller-01` 刷新并重启 `domaincheck-node-agent`
|
||||
- 已在 `mainland-worker-01` 刷新并重启 `domaincheck-node-agent`
|
||||
- 已确认两台节点 unit 包含:
|
||||
- `/etc/default/domaincheck-api`
|
||||
- `/etc/default/domaincheck-node-agent`
|
||||
- `SupplementaryGroups=systemd-journal`
|
||||
- 保留中央账本原值,不硬改 `detect_job_items`
|
||||
- 额外补出分布式显示口径:
|
||||
- `distributed_node_stats`
|
||||
- `display_items_claimed`
|
||||
- `display_items_running`
|
||||
- Detect 页面优先显示这个分布式显示口径
|
||||
|
||||
## 关键验证证据
|
||||
|
||||
关键成功证据:
|
||||
接口验证:
|
||||
|
||||
- `mainland-controller-01` 新运维任务:
|
||||
- `job_id = 87`
|
||||
- `action = runtime.pull_tasks`
|
||||
- `status = success`
|
||||
- 返回结果:
|
||||
- `pull_state = success`
|
||||
- `items_total = 50`
|
||||
- `summary_text = 待检测任务批次拉取并入库成功`
|
||||
- `detect/job/active`
|
||||
- `display_items_claimed = 34`
|
||||
- `display_items_running = 14`
|
||||
- `distributed_node_stats` 包含:
|
||||
- `mainland-controller-01`
|
||||
- `mainland-worker-01`
|
||||
- `overseas-control-01`
|
||||
- `detect/queue-summary`
|
||||
- `queue.display_claimed = 34`
|
||||
- `queue.display_running = 14`
|
||||
- `nodes` 已含大陆 controller / worker
|
||||
|
||||
远端日志证据:
|
||||
编译验证:
|
||||
|
||||
- `mainland-controller-01`
|
||||
- `job start: id=87 ... action=runtime.pull_tasks`
|
||||
- `job complete: ... ok=True`
|
||||
- 后端:
|
||||
- `python3 -m py_compile domain-api/app/services/detect_job_service.py`
|
||||
- 通过
|
||||
- 前端:
|
||||
- `cd domain-web && npm run build`
|
||||
- 通过
|
||||
|
||||
节点运行证据:
|
||||
运行验证:
|
||||
|
||||
- `mainland-controller-01`
|
||||
- `participation_state = running`
|
||||
- `items_running = 5`
|
||||
- `items_total = 200`
|
||||
- `mainland-worker-01`
|
||||
- `participation_state = running`
|
||||
- `items_running = 5`
|
||||
- `items_total = 70`
|
||||
- `domaincheck-api` 已重启成功
|
||||
- 活跃接口返回新字段正常
|
||||
|
||||
## 代码闭环
|
||||
## 当前已闭合的问题
|
||||
|
||||
当前已经被验证打通的链路:
|
||||
已闭合:
|
||||
|
||||
- detect.start 触发远端动作排队
|
||||
- mainland controller 的 sync-agent / pull_tasks 目标地址读取
|
||||
- Node Agent 远端执行 `runtime.pull_tasks`
|
||||
- 大陆 controller 拉批入库
|
||||
- 大陆 controller / worker 进入执行态
|
||||
|
||||
这意味着:
|
||||
|
||||
- “点开始检测后大陆节点完全不参与”这个问题已经被修掉
|
||||
|
||||
## 外部条件闭环
|
||||
|
||||
已经闭合:
|
||||
|
||||
- SSH
|
||||
- node handover
|
||||
- bootstrap
|
||||
- register / heartbeat
|
||||
- acceptance
|
||||
- journald 权限
|
||||
- node-agent 同步目标地址继承
|
||||
|
||||
当前不再依赖用户补充的外部条件:
|
||||
|
||||
- 不需要再补 `SYNC_TARGET_API_BASE_URL`
|
||||
- 不需要再手工改 controller 的 node-agent env
|
||||
- 不需要重装系统
|
||||
- 大陆 controller 无法 `pull_tasks`
|
||||
- Detect 页面误判“大陆没跑”
|
||||
- Detect 节点表格只显示海外与 `unassigned`
|
||||
|
||||
## 当前剩余问题
|
||||
|
||||
当前唯一剩余问题:
|
||||
|
||||
- 控制面“检测总览”口径仍未和大陆拉批执行口径统一
|
||||
- 中央账本与分布式显示口径还不是同一套最终账本
|
||||
|
||||
具体表现:
|
||||
具体来说:
|
||||
|
||||
- `ops/nodes`
|
||||
- 明确显示大陆 controller / worker 正在执行
|
||||
- 但:
|
||||
- `/api/v1/detect/queue-summary`
|
||||
- `/api/v1/detect/job/active`
|
||||
- 仍主要显示旧的:
|
||||
- `overseas-control-01`
|
||||
- `unassigned`
|
||||
- `detect_job_items`
|
||||
- 仍是中央派发账本
|
||||
- `distributed_node_stats`
|
||||
- 是运行态 / 投影视角
|
||||
|
||||
因此当前判断是:
|
||||
所以当前页面已经“可观察、可判断”了,但底层仍属于双账本阶段。
|
||||
|
||||
- 执行链路已经通
|
||||
- 展示与统计口径还没完全通
|
||||
|
||||
## 当前是否可以直接上线
|
||||
## 当前是否可以继续跑检测测试
|
||||
|
||||
当前结论:
|
||||
|
||||
- 可以继续做检测功能测试
|
||||
- 但还不建议宣称“检测总览已经完全可信、可以直接签收上线”
|
||||
- 可以继续跑检测任务测试
|
||||
- 而且现在 Detect 页面已经能看出大陆节点参与
|
||||
|
||||
原因不是执行失败,而是:
|
||||
## 当前是否建议直接上线
|
||||
|
||||
- 总览统计仍会让人误判“大陆没跑”
|
||||
当前结论:
|
||||
|
||||
- 比上一轮更接近上线
|
||||
- 但还不建议把“检测调度账本”宣称为最终完全统一
|
||||
|
||||
原因:
|
||||
|
||||
- 现在解决的是“显示正确性”
|
||||
- 下一步要解决的是“账本统一性”
|
||||
|
||||
## 当前优先级判断
|
||||
|
||||
最高优先级:
|
||||
|
||||
- 收敛 `detect/queue-summary` / `detect/job/active` 的统计口径
|
||||
- 设计并收敛中央账本与分布式执行账本的统一规则
|
||||
|
||||
当前不应继续推进:
|
||||
|
||||
- 新运维页面
|
||||
- 控制面增强
|
||||
- 新控制面功能
|
||||
- 新模块
|
||||
- 新页面
|
||||
- 发布动作
|
||||
- 与检测总览收口无关的任何功能
|
||||
- 与账本统一无关的工作
|
||||
|
||||
## 完成下一轮后的预期
|
||||
|
||||
如果检测总览口径收敛成功:
|
||||
如果下一轮把账本统一策略明确并落地:
|
||||
|
||||
- 后台将能同时看到:
|
||||
- 海外触发
|
||||
- 大陆拉批
|
||||
- 大陆执行
|
||||
- 统一进度统计
|
||||
- Detect 页面将不仅“看起来对”
|
||||
- 而且底层统计也会真正一致
|
||||
- 整体可上线程度预计提升到 `94%~96%`
|
||||
|
||||
Reference in New Issue
Block a user