轻量级多类型拨测监控工具
基于 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](https://bun.sh/) >= 1.0 ICMP checker 依赖系统 `ping` 命令。精简容器镜像需额外安装,例如 Alpine 可安装 `iputils-ping`。 ```bash 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 # 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 规则参见 [配置文件](docs/user/configuration.md)、[Checker 参考](docs/user/checkers/README.md) 和 [校验规则](docs/user/expectations.md)。 ## 生产运行 ```bash bun run build ./dist/dial-server ./probes.yaml ``` Docker、跨平台发布包和运行时注意事项参见 [部署文档](docs/user/deployment.md)。 ## 文档导航 | 入口 | 内容 | | -------------------------------------------- | ---------------------------------------------------- | | [文档总览](docs/README.md) | 全部文档入口和文档归属矩阵 | | [配置文件](docs/user/configuration.md) | YAML 结构、变量、server、targets 通用字段 | | [Checker 参考](docs/user/checkers/README.md) | 所有 checker 的配置、expect 和示例 | | [校验规则](docs/user/expectations.md) | ValueMatcher、ContentExpectations、KeyedExpectations | | [部署文档](docs/user/deployment.md) | 构建、Docker、发布包和容器运行边界 | | [状态模型](docs/user/status-model.md) | UP/DOWN、failure、observation、detail | | [故障排查](docs/user/troubleshooting.md) | 常见运行问题和排查入口 | ## 开发 ```bash bun run check # schema:check + typecheck + lint + test bun run verify # check + build ``` 开发入口参见 [DEVELOPMENT.md](DEVELOPMENT.md)。新增或修改 checker 前请先阅读 [CONTRIBUTING.md](CONTRIBUTING.md)。 ## License Apache-2.0