# ICMP Checker

`type: icmp` 使用系统 `ping` 命令执行 ICMP 探测，支持 Linux、macOS 和 Windows 输出解析。

## 配置项

| 字段              | 说明                      | 必填 | 默认值 |
| ----------------- | ------------------------- | ---- | ------ |
| `icmp.host`       | 目标主机地址              | 是   | 无     |
| `icmp.count`      | ICMP 包数量，范围 `1-100` | 否   | `3`    |
| `icmp.packetSize` | ICMP 包大小，bytes        | 否   | `56`   |

## expect 校验项

| 字段                | 说明                                                | 必填 | 默认值 |
| ------------------- | --------------------------------------------------- | ---- | ------ |
| `alive`             | 期望主机可达性                                      | 否   | `true` |
| `packetLossPercent` | 丢包率百分比校验，范围 `0-100`，使用 `ValueMatcher` | 否   | 无     |
| `avgLatencyMs`      | 平均延迟校验，使用 `ValueMatcher`                   | 否   | 无     |
| `maxLatencyMs`      | 最大单次延迟校验，使用 `ValueMatcher`               | 否   | 无     |
| `durationMs`        | 完整执行耗时校验，使用 `ValueMatcher`               | 否   | 无     |

## 示例

```yaml
- id: "gateway-icmp"
  name: "网关 ICMP 可达"
  type: icmp
  icmp:
    host: "10.0.0.1"
    count: 3
    packetSize: 56
  expect:
    alive: true
    packetLossPercent:
      lte: 10
    avgLatencyMs:
      lte: 100
    maxLatencyMs:
      lte: 300
    durationMs:
      lte: 5000
```

容器中运行 ICMP checker 通常需要 `--cap-add=NET_RAW`，详情见 [部署文档](../deployment.md#icmp-权限)。
