- 合并 DEVELOPMENT.md 至 docs/development/README.md - 合并 CONTRIBUTING.md 至 docs/development/checker.md - 合并 build-release.md 至 release.md - 合并 testing-quality.md 内容至各专题文档 - 合并 status-model.md 至 expectations.md - 新增 docs/user/README.md 用户入口 - 简化 docs/README.md 文档路由 - 各专题文档新增适用场景和更新触发条件 - 更新 openspec/config.yaml 文档规则
100 lines
4.1 KiB
Markdown
100 lines
4.1 KiB
Markdown
<h1 align="center">DiAL</h1>
|
||
|
||
<p align="center">
|
||
<strong>轻量级多类型拨测监控工具</strong>
|
||
</p>
|
||
|
||
<p align="center">
|
||
基于 Bun + TypeScript 构建 · YAML 配置驱动 · 内置 Dashboard
|
||
</p>
|
||
|
||
---
|
||
|
||
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/README.md)、[配置文件](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/README.md) | 配置、部署、expect、排障和 checker 使用入口 |
|
||
| [配置文件](docs/user/configuration.md) | YAML 结构、变量、server、targets 通用字段 |
|
||
| [Checker 参考](docs/user/checkers/README.md) | 所有 checker 的配置、expect 和示例 |
|
||
| [校验规则](docs/user/expectations.md) | expect 规则、状态判定、failure、observation |
|
||
| [部署文档](docs/user/deployment.md) | 构建、Docker、发布包和容器运行边界 |
|
||
| [故障排查](docs/user/troubleshooting.md) | 常见运行问题和排查入口 |
|
||
| [开发文档](docs/development/README.md) | 开发入口、常用命令、质量门禁和专题索引 |
|
||
|
||
## 开发
|
||
|
||
```bash
|
||
bun run check # schema:check + typecheck + lint + test
|
||
bun run verify # check + build
|
||
```
|
||
|
||
开发入口参见 [开发文档](docs/development/README.md)。新增或修改 checker 前请先阅读 [Checker 开发](docs/development/checker.md)。
|
||
|
||
## License
|
||
|
||
Apache-2.0
|