- 定义 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 配置
1.8 KiB
1.8 KiB
Why
项目当前支持 HTTP、CMD、DB、TCP 四种 checker,缺少最基础的网络层存活检测能力。ICMP Ping 是运维监控的基石——主机存活、网络延迟、丢包率是判断网络健康的第一手指标,也是区分"网络层故障"与"应用层故障"的关键手段。
What Changes
- 新增
type: pingchecker,通过调用系统ping命令实现 ICMP 探测 - 支持配置 host、count(包数量)、packetSize(包大小,用于 MTU 测试)
- 支持断言:alive(可达性)、maxAvgLatencyMs(平均延迟)、maxMaxLatencyMs(最大延迟/抖动)、maxPacketLoss(丢包率)、maxDurationMs(整体耗时)
- 自行实现跨平台(Linux/macOS/Windows)ping 输出解析器,不引入三方库
- 文档注明 ICMP checker 依赖系统
ping命令存在(容器环境需确保已安装,如 Alpine 需iputils-ping)
Capabilities
New Capabilities
icmp-checker: 定义 ICMP/Ping checker 的配置格式、命令执行、跨平台输出解析、expect 校验和状态摘要
Modified Capabilities
checker-runner-abstraction: 超时控制 requirement 中"仅 cmd checker 可在 signal abort 时 proc.kill()"需扩展为"cmd checker 和 ping checker",因为 ping checker 同样 spawn 子进程probe-config: 配置格式需扩展支持type: ping的 target 配置、ping领域分组和对应的 expect 字段
Impact
- 后端代码:新增
src/server/checker/runner/icmp/模块,注册到 CheckerRegistry - 配置 schema:
probe-config.schema.json需更新,新增 ping target 和 expect 的 schema 片段 - 测试:新增
tests/server/checker/runner/icmp/测试套件 - 文档:README.md 和 DEVELOPMENT.md 需更新,注明 ping 命令的系统依赖
- 无新增三方依赖