# Checker 参考

Checker 是 DiAL 的拨测执行单元。每个 target 通过 `type` 选择一个 checker，并配置对应的专属字段和 `expect` 规则。

适用场景：查询 checker 类型选择、专属配置、expect 字段、示例和各 checker 文档入口。

## 支持的类型

| 类型   | 用途                                   | 文档            |
| ------ | -------------------------------------- | --------------- |
| `http` | HTTP/HTTPS 应用层健康检查              | [HTTP](http.md) |
| `cmd`  | 执行本地命令或脚本                     | [Cmd](cmd.md)   |
| `db`   | PostgreSQL/MySQL/SQLite 连接和查询检查 | [DB](db.md)     |
| `tcp`  | TCP 端口可达性和 banner 探测           | [TCP](tcp.md)   |
| `udp`  | UDP payload 请求-响应检查              | [UDP](udp.md)   |
| `icmp` | 基于系统 `ping` 的存活、延迟、丢包检查 | [ICMP](icmp.md) |
| `dns`  | 本机解析或指定 DNS server 协议级检查   | [DNS](dns.md)   |
| `llm`  | 大模型服务应用层健康检查               | [LLM](llm.md)   |
| `ws`   | WebSocket 可达性和消息交互检查         | [WS](ws.md)     |

## 选择建议

| 目标                               | 推荐 checker |
| ---------------------------------- | ------------ |
| Web API、网页、HTTP 状态码或响应体 | `http`       |
| 本机脚本、外部命令、CLI 工具       | `cmd`        |
| 数据库连接或查询结果               | `db`         |
| 端口是否可连接、服务 banner        | `tcp`        |
| UDP 服务响应或简单心跳             | `udp`        |
| 主机可达性、延迟、丢包率           | `icmp`       |
| 域名解析值、DNS RCODE、TTL、flags  | `dns`        |
| LLM API 是否可用、输出是否符合预期 | `llm`        |
| WebSocket 可达性或消息交互验证     | `ws`         |

## 通用字段

所有 checker 都共享 target 通用字段，见 [配置文件](../configuration.md#targets-通用字段)。

## 通用断言模型

各 checker 的 `expect` 字段复用 `ValueMatcher`、`ContentExpectations` 和 `KeyedExpectations`。详情见 [校验规则](../expectations.md)。

## 更新触发条件

新增、移除或修改 checker 类型、用途、选择建议、通用字段或通用断言模型时，必须更新本文档。checker 专属字段变化还必须同步更新对应 `checkers/<type>.md`。
