master
- 类型标识符 memory → mem - 类名 MemoryChecker → MemChecker - 内部类型名统一 Memory* → Mem* - 内部函数名统一 *Memory* → *Mem* - 目录重命名 memory/ → mem/(源码、测试、文档) - 配置键 memory: → mem: - 重新生成 probe-config.schema.json - 保留中文"内存"用户提示 破坏性变更:无向后兼容
DiAL
轻量级多类型拨测监控工具
基于 Bun + TypeScript 构建 · YAML 配置驱动 · 内置 Dashboard
DiAL 是一个自托管的拨测监控工具,支持 HTTP、命令行、数据库、TCP、UDP、DNS、ICMP 和 LLM 多种拨测类型。通过 YAML 配置文件定义拨测目标,后端定时并发执行拨测并将结果持久化到本地 SQLite,前端 Dashboard 展示各目标的实时状态、可用率和耗时趋势。
功能亮点
- 多类型拨测:HTTP、Cmd、DB、TCP、UDP、DNS、ICMP、LLM
- 丰富校验规则:状态码、响应头、JSONPath、CSS 选择器、XPath、正则匹配、数值比较等
- 结构化观测数据:HTTP body 预览、TCP/UDP 响应摘要、ICMP 丢包率、CMD 输出、LLM token 用量等
- 内置 Dashboard:实时状态、可用率统计、趋势图、最近状态条、手动/自动刷新、版本号展示
- 多主题支持:系统、明亮、黑暗三种主题模式
- 自托管部署:本地 SQLite 存储,无需额外数据库服务
应用截图
| 亮色 | 暗色 | |
|---|---|---|
| 主页 | ![]() |
![]() |
| 详情页 | ![]() |
![]() |
快速开始
前置条件: Bun >= 1.0
ICMP checker 依赖系统 ping 命令。精简容器镜像需额外安装,例如 Alpine 可安装 iputils-ping。
git clone https://github.com/your-org/DiAL.git
cd DiAL
bun install
cp probes.example.yaml probes.yaml
bun run dev probes.yaml
bun run dev 会同时启动 Vite 开发服务器(http://127.0.0.1:5173)和 API 服务器(http://127.0.0.1:3000),访问前端地址即可使用 Dashboard。
最小配置示例
# yaml-language-server: $schema=./probe-config.schema.json
targets:
- id: "baidu-home"
name: "Baidu"
type: http
http:
url: "https://www.baidu.com"
expect:
status: [200]
durationMs:
lte: 5000
完整配置、checker、expect 和部署说明参见 用户文档、配置文件、Checker 参考 和 校验规则。
生产运行
bun run build
./dist/dial-server ./probes.yaml
Docker、跨平台发布包和运行时注意事项参见 部署文档。
文档导航
| 入口 | 内容 |
|---|---|
| 文档总览 | 全部文档入口和文档归属矩阵 |
| 用户文档 | 配置、部署、expect、排障和 checker 使用入口 |
| 配置文件 | YAML 结构、变量、server、targets 通用字段 |
| Checker 参考 | 所有 checker 的配置、expect 和示例 |
| 校验规则 | expect 规则、状态判定、failure、observation |
| 部署文档 | 构建、Docker、发布包和容器运行边界 |
| 故障排查 | 常见运行问题和排查入口 |
| 开发文档 | 开发入口、常用命令、质量门禁和专题索引 |
开发
bun run check # schema:check + typecheck + lint + test
bun run verify # check + build
开发入口参见 开发文档。新增或修改 checker 前请先阅读 Checker 开发。
License
Apache-2.0
Description
Languages
TypeScript
99.1%
CSS
0.5%
JavaScript
0.3%
Dockerfile
0.1%



