1
0
Files
DiAL/openspec/changes/archive/2026-05-11-simplify-judgment-model/specs/probe-data-store/spec.md

1.8 KiB
Raw Blame History

MODIFIED Requirements

Requirement: 数据库表结构

系统 SHALL 使用 SQLite 存储 targets 和 check_results 两张表。

Scenario: check_results 表结构

  • THEN check_results 表 SHALL 包含 idINTEGER PRIMARY KEY AUTOINCREMENT、target_idINTEGER NOT NULL、timestampTEXT NOT NULL、matchedINTEGER NOT NULL、duration_msREAL、status_detailTEXT、failureTEXT不包含 success 列

Requirement: 结果写入

系统 SHALL 将每次拨测结果插入 check_results 表。

Scenario: 插入结果记录

  • THEN 系统 SHALL 插入一条包含 target_id、timestamp、matched、duration_ms、status_detail、failure 的记录

Requirement: 可用率计算

系统 SHALL 计算目标在指定时间范围内的可用率。

Scenario: 可用率定义

  • THEN 系统 SHALL 返回 matched=true 的记录数占总记录数的百分比

Scenario: 平均耗时

  • THEN 系统 SHALL 返回 duration_ms 的平均值(仅计算 matched=true 的记录)

Requirement: 目标排序

系统 SHALL 按分组排序返回目标列表。

Scenario: 分组排序规则

  • WHEN 查询目标列表
  • THEN "default" 分组 SHALL 排在最前,其余分组 SHALL 按 YAML 配置中首次出现的顺序(即 id 自增顺序)排列

Requirement: 最近采样查询

系统 SHALL 提供获取目标最近 N 条采样记录的方法。

Scenario: 采样记录返回字段

  • THEN 系统 SHALL 返回最多 N 条记录,每条包含 timestamp、duration_ms、matched

Requirement: 汇总查询

系统 SHALL 提供全局汇总统计。

Scenario: UP/DOWN 判定

  • THEN 系统 SHALL 基于 latestCheck.matched 判定目标 UP 或 DOWNmatched=true 为 UPmatched=false 为 DOWN