1
0
Files
DiAL/README.md

4.0 KiB
Raw Blame History

DiAL

轻量级多类型拨测监控工具

基于 Bun + TypeScript 构建 · YAML 配置驱动 · 内置 Dashboard


DiAL 是一个自托管的拨测监控工具,支持 HTTP命令行数据库TCPUDPDNSICMPLLM 多种拨测类型。通过 YAML 配置文件定义拨测目标,后端定时并发执行拨测并将结果持久化到本地 SQLite前端 Dashboard 展示各目标的实时状态、可用率和耗时趋势。

功能亮点

  • 多类型拨测HTTP、Cmd、DB、TCP、UDP、DNS、ICMP、LLM
  • 丰富校验规则状态码、响应头、JSONPath、CSS 选择器、XPath、正则匹配、数值比较等
  • 结构化观测数据HTTP body 预览、TCP/UDP 响应摘要、ICMP 丢包率、CMD 输出、LLM token 用量等
  • 内置 Dashboard实时状态、可用率统计、趋势图、最近状态条、手动/自动刷新、版本号展示
  • 多主题支持:系统、明亮、黑暗三种主题模式
  • 自托管部署:本地 SQLite 存储,无需额外数据库服务

应用截图

亮色 暗色
主页 index-light index-dark
详情页 detail-light detail-dark

快速开始

前置条件: 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、跨平台发布包和运行时注意事项参见 部署文档

文档导航

入口 内容
文档总览 全部文档入口和文档归属矩阵
配置文件 YAML 结构、变量、server、targets 通用字段
Checker 参考 所有 checker 的配置、expect 和示例
校验规则 ValueMatcher、ContentExpectations、KeyedExpectations
部署文档 构建、Docker、发布包和容器运行边界
状态模型 UP/DOWN、failure、observation、detail
故障排查 常见运行问题和排查入口

开发

bun run check   # schema:check + typecheck + lint + test
bun run verify  # check + build

开发入口参见 DEVELOPMENT.md。新增或修改 checker 前请先阅读 CONTRIBUTING.md

License

Apache-2.0