可观测性与调试纪律(Observability and Debugging Discipline)
意图
让开发者无需在生产环境附加调试器,就能轻松回答“正在发生什么”以及“为什么”。同时确保日志、指标、事件与追踪能够捕获用户意图、运行环境和故障上下文,并保护敏感数据。
指导原则
优先使用结构化日志与关联 ID(correlation IDs),而不是临时拼接的字符串。
在每个边界处发出信号,包括客户端、API、worker 以及合约调用。
包含复现问题所必需的上下文,例如用户、会话、网络与链信息。
保持信号成本合理:对高频路径进行限流,并进行智能采样。
构建快速的本地调试闭环,例如 trace 回放、状态检查器、开发钱包。
工作流程
识别受影响的 критических 路径,并定义每条路径的成功与错误信号。
添加或扩展 tracing span 或日志块,并使用一致的字段命名。
在本地通过模拟成功、错误和超时来验证可观测性,确保信号到达目标接收端,例如控制台、APM、分析系统或链浏览器。
记录对部署后验证有用的仪表盘、查询语句或 CLI 命令。
对于链上逻辑,使用规范 schema 发出事件,以便下游索引器消费。
验证
在开启详细日志或追踪的情况下运行代码,检查输出的清晰度与隐私性。
确认指标与计数器出现在预期位置,例如 APM、遥测管道、分析系统或链浏览器。
进行事件响应演练:仅使用已发出的信号,能否定位测试失败或模拟故障?若不能,则继续迭代。