1
0
Files
DiAL/openspec/changes/add-icmp-checker/specs/checker-runner-abstraction/spec.md
lanyuanxiaoyao 393e8da5fd feat: 新增 ICMP/Ping checker 设计提案
- 定义 ping target 配置:host、count、packetSize
- 定义 ping expect 断言:alive、maxPacketLoss、maxAvgLatencyMs、maxMaxLatencyMs
- 设计跨平台 ping 输出解析器(Linux/macOS/Windows 含多语言支持)
- 双重超时保障:ping 命令自身超时 + AbortSignal 兜底
- 扩展 checker-runner-abstraction spec 支持 ping checker 子进程控制
- 更新 probe-config spec 支持 ping type 配置
2026-05-18 00:33:11 +08:00

919 B

MODIFIED Requirements

Requirement: 超时控制由引擎注入 signal

Checker 实现的 execute() MUST 使用 ctx.signal 感知超时,不得自行创建 AbortControllersetTimeout 用于超时控制。Cmd checker 和 ping checker 可在 signal abort 时 proc.kill() 以确保子进程被终止。

Scenario: HTTP checker 使用 signal

  • WHEN HttpChecker 执行 HTTP 请求
  • THEN SHALL 将 ctx.signal 传入 fetch()signal 选项,不自行创建 AbortController

Scenario: Cmd checker 响应 signal

  • WHEN CommandChecker 执行命令且 signal 被 abort
  • THEN SHALL 调用 proc.kill() 终止子进程,并在 CheckResult 中记录超时错误

Scenario: Ping checker 响应 signal

  • WHEN IcmpChecker 执行 ping 命令且 signal 被 abort
  • THEN SHALL 调用 proc.kill() 终止 ping 子进程,并在 CheckResult 中记录超时错误