2.8 KiB
2.8 KiB
运维与排障手册(业务视角)
本文档聚焦两件事:
- 出错时先看哪里。
- 日志里的状态到底代表什么业务问题。
1. 先看什么(快速定位)
- 看运行日志(
sync_log):- 重点关注
状态机流转、reason=、depends=[...]。
- 重点关注
- 看持久化数据库:
- 重点字段:
binding_status、action、status、error。
- 重点字段:
- 对照状态机文档:
docs/state_machine.mddocs/node_state_definition.md
2. 阶段化排障
2.1 bind 阶段
常见表现:节点停在 S03/S04/S05/S13。
S03(ABNORMAL):节点数据损坏或核心绑定异常。S04(WARNING):自动绑定关闭、键缺失、歧义等不可自动处理情况。S05(DEPENDENCY_ERROR):依赖节点不存在或依赖状态不正常。S13(PEER_CREATING):对侧创建进行中,尚未提交完成。
典型日志:
reason=依赖项不满足 | depends=[company_id status=peer_creating -> not_normal]
业务解释:
- 上游依赖还没进入
NORMAL,下游业务会被严格阻断。
2.2 create 阶段
常见表现:节点长时间停在 S13 或 S10C。
S13:已判定需要创建,但创建提交未完成。S10C:CREATE 异步执行中。S12C:CREATE 失败。
优先检查:
- API 侧是否返回任务 ID 与成功回执。
- 轮询参数(
poll_max_retries/poll_interval)是否过小。
2.3 update 阶段
常见表现:节点进入 S08 或 S12U。
S08(PRECONDITION_FAILED):前置条件失败(如缺 data_id、依赖 ID 解析失败)。S12U:UPDATE 调用失败。S14:UPDATE 被 handler 降级为 NONE 并跳过。
优先检查:
update_direction是否符合预期。- 目标节点是否具备
data_id。
3. 常见配置误区与症状
auto_bind=false- 症状:MISSING 节点更容易进入
WARNING,不会走自动创建识别。
- 症状:MISSING 节点更容易进入
local_orphan_action=none+remote_orphan_action=none+update_direction=none- 症状:该类型会被整体跳过,常被误以为“配置没生效”。
load_mode=persisted_only- 症状:数据只来自持久化,不主动拉取新数据。
update_direction=none- 症状:不做 update,即使有差异也不会提交更新。
4. 推荐操作顺序
- 先用
run_profiles/preset/jsonl_to_jsonl.default.yaml跑通基线。 - 再切到
run_profiles/*.local.yaml做最小覆盖。 - 每次只改一类字段(比如只改
project的依赖策略)。 - 改完看一次
sync_log,确认状态流转与预期一致。
5. UI 排障(可选)
- 启动:
python -m ui.main --host 127.0.0.1 --port 8765 - 打开:
http://127.0.0.1:8765 - 在“运行与日志”查看实时状态变化。
- 在“记录与数据库”检查节点状态与绑定记录。