2.7 KiB
2.7 KiB
目标状态判定
DiAL 使用单层状态模型。
| 状态 | 含义 |
|---|---|
UP |
拨测结果符合 expect 规则 |
DOWN |
拨测结果不符合 expect 规则,或执行失败 |
执行失败(网络错误、超时、进程崩溃)和 expect 不匹配都统一为 DOWN,通过 failure.kind 区分原因。
failure.kind |
含义 |
|---|---|
error |
网络、超时、进程、协议解析或内部执行错误 |
mismatch |
拨测完成,但结果不满足 expect |
API 结果字段
API 返回的检查结果包含 detail 和 observation。
| 字段 | 说明 |
|---|---|
detail |
后端按 checker 类型从结构化 observation 动态生成的人可读摘要 |
observation |
保存该次检查的结构化观测数据 |
failure |
保存首个错误或不匹配原因 |
matched |
是否符合 expect |
durationMs |
本次检查耗时 |
timestamp |
本次检查时间 |
detail 不写入 SQLite。存储层仅持久化 observation JSON、failure JSON、匹配状态、耗时和时间戳。
observation 示例
不同 checker 的 observation 字段不同,常见信息包括:
| Checker | observation 内容示例 |
|---|---|
| HTTP | 状态码、响应头、按需读取的 body 预览 |
| Cmd | exit code、stdout/stderr 预览 |
| TCP | 连接结果、banner 摘要 |
| UDP | 响应内容、来源地址、响应大小 |
| ICMP | 存活结果、丢包率、平均延迟、最大延迟 |
| DNS | RCODE、记录值、TTL、flags、CNAME 链 |
| LLM | HTTP 状态、模型输出、finish reason、token usage、流式首 token 时间 |
趋势与统计
Dashboard 基于存储的检查结果计算实时状态、可用率、耗时趋势、P95、状态条和故障段等指标。指标语义由后端应用层实现,SQLite 主要负责存储、筛选、排序、分页和基础聚合。