2.0 KiB
2.0 KiB
Why
当前系统使用 success + matched 两层判定模型,但实际实现中 success 始终等于 matched(两者永远同值),导致两层模型退化为单层。success 字段没有提供任何独立信息,反而增加了理解成本和维护负担。此外,分组排序使用字母序而非 YAML 配置中的首现顺序,与 spec 要求不一致。
What Changes
- BREAKING: 移除
success字段,将判定模型简化为matched单层判定- 数据库
check_results表移除success列 - 所有 CheckResult 类型(服务端、共享、前端)移除
success字段 - UP/DOWN 判定统一为
matched=true/matched=false - availability 计算简化为
matched=true 占比 - avgDurationMs 仅计算
matched=true记录的平均耗时
- 数据库
- 修复分组排序:非 default 分组按 YAML 首现顺序(即
id顺序)排列,而非字母序 command-runner添加stdin: "ignore",符合 spec 要求
Capabilities
New Capabilities
无
Modified Capabilities
probe-engine: 移除结果记录中的success字段,简化为matched+failureprobe-api:CheckResult和RecentSample移除success字段;UP 判定改为matchedprobe-data-store: 数据库 schema 移除success列;可用率定义简化;排序规则修正probe-dashboard: UP/DOWN 判定改为matchedcard-dashboard: UP/DOWN 判定改为matchedcommand-checker: 移除所有success引用;确保 stdin 禁用target-grouping: 排序规则明确为按 id 排序(YAML 首现顺序)
Impact
- 数据库:
check_results表结构变更(移除列),已有数据库需删除重建(项目未上线,无向前兼容要求) - API:
CheckResult响应移除success字段,RecentSample.up计算逻辑变更 - 前端: 所有依赖
success字段的组件需更新(TargetCard、TargetDetailModal、TargetGroup) - 测试: 5 个测试文件需同步移除
success相关断言 - README: 目标状态判定模型说明需更新