Skip to main content

规格 · 可观测与证据

适用范围​

约束所有功能必须对外暴露的可观测信号,以及"什么算证据"。

不约束:监控系统选型、告警通道、仪表盘实现。

规范条款​

观测义务​

  1. 每个功能必须声明:哪些状态必须能从外部观测到,以及由谁消费。
  2. 每个功能必须声明:哪些情形必须产生告警,以及告警给谁。
  3. 需要外部监督的长时过程必须提供服务端可观测的进展信号;必须不只提供"已接受"这类过程信号。
  4. 成功判定必须基于结果信号(必须遵循状态与审计投影);必须不基于进程存在、本地健康检查或服务管理器返回值。

观测什么​

  1. 每个功能必须至少能观测到下列状态:
必须可观测说明
当前是否在线 / 可用以服务端观察到的事实为准
是否有进行中的工作以及在什么阶段
最近一次成功与失败含时间与稳定失败标识
阻塞与降级处于阻塞时,阻塞原因类别
异常收敛结果失联、超时、崩溃是否已收敛为终态
  1. 观测信号必须来自服务端持久化事实;必须不来自客户端自述、本地探针或缓存。
  2. 观测信号必须遵守安全与数据处置的禁入清单。

告警义务​

  1. 下列情形必须产生告警:
必须告警理由
异常未在预期时限内收敛否则会留下"看起来还在跑"的对象
心跳 / 续约冲突可能存在双执行者
长期无在线执行者工作会静默积压
自动重试触达上界需要人工介入
不可逆操作等待批准超期阻塞在批准门
  1. 告警阈值必须显式声明;必须不使用未声明的隐含阈值。
  2. 告警必须可去重、可抑制;必须不因重复告警掩盖真实故障。

什么算证据​

  1. 证据必须是可独立核对的事实,且必须能定位到产生它的精确修订。
  2. 下列必须不算证据:
不算证据理由
分支或提交存在只证明写了代码
评审通过只证明有人看过
文档已合并只证明文档存在
测试文件存在只证明写了测试
本地探测通过不反映线上事实
单次运行成功不能证明可重复
声明"已实现"自述不是证据
  1. 每个结论必须绑定下列证据之一,且必须指明证据归属:
证据类别归属
契约测试owning 实现仓的测试,覆盖故障向场景
现场读取目标环境上服务端可观测的事实
清理扫描旧入口退役后的无残留扫描
批准记录明确批准人、时间与范围
  1. 任一必需证据缺失时,结论必须标记为未验证,并必须视为阻塞项。
  2. 文档必须只声明"应读取哪个证据面";必须不把某次结果写成当前状态。

故障向覆盖​

  1. 证明义务必须覆盖故障向场景,必须不只覆盖正常路径。
  2. 每条不变量必须有对应的证明义务与场景清单;缺清单即视为未完成。

违反时的失败语义​

违反情形必须的行为
未声明观测义务视为规格违反;评审阶段必须拦截
未声明告警义务同上
观测来自客户端自述必须改为服务端事实
以过程信号判定成功必须改为结果信号
以"不算证据"清单中的项充当证据必须视为未验证
必需证据缺失仍宣称完成必须撤回结论并标记未验证
故障向场景缺失必须补齐证明义务

校验方式​

校验对象判据失败表现
观测声明每个功能必须能定位到观测义务与消费者缺失即失败
告警声明必须能定位到必告警情形与接收方缺失即失败
信号来源观测信号必须来自服务端持久化事实来自客户端自述即失败
成功判据过程信号不得单独构成成功构成成功即失败
证据充分每个结论必须绑定至少一类合格证据并指明归属未绑定即失败
未验证标记证据缺失时必须标记未验证未标记即失败
证明义务完备每条不变量必须有场景清单,且覆盖故障向缺失或只覆盖正常路径即失败

相关规格​