ch15-12 故障演练
先定交付标准
这一节先看验收证据:测试、日志、监控、部署步骤、审计材料或发布前核对项必须能复现。
源码入口
- docker/deepbook-indexer/Dockerfile:容器构建、入口脚本或部署边界。
- crates/server/README.md:REST API、数据库查询、健康检查或指标实现。
- crates/indexer/tests/checkpoints:测试 fixture、断言或可复现验证材料。
- crates/server/src/margin_metrics/poller.rs:REST API、数据库查询、健康检查或指标实现。
从测试到上线
演练场景:RPC 超时、Indexer 落后、数据库不可用、订单提交失败、价格源过期、Margin 风险率异常、前端缓存过期。每个场景都要有用户提示和策略降级。
故障演练要覆盖 RPC 延迟、Indexer 停止、数据库只读、Server 过载、oracle 过期和机器人误下单。演练结果应产出阈值、告警、降级文案和恢复步骤,而不是只确认服务能重启。
交付判断
- 每个测试或部署结论都要能回到具体命令、fixture、日志、指标或审计材料。
- 同时覆盖成功路径、失败路径、边界值、权限错误和数据延迟。
- 升级、迁移和部署步骤要写明回滚点、兼容窗口、健康检查和负责人。
- 涉及资金安全时,把链上约束、SDK 构造、Indexer 读模型和前端提示分层验证。
动手检查
- 本节的验收证据是 Move 测试、SDK 测试、snapshot、E2E、指标还是部署日志?
- 哪些失败路径、权限边界、迁移风险或运维故障还没有被覆盖?
- 如果生产事故发生,能否用 digest、checkpoint、日志和监控在 10 分钟内定位责任层?