1
0

feat: 重构配置布局,server.listen/storage/logging + probes.execution 分组

- 新增 server.listen (host/port)、server.storage (dataDir/retention)、
  server.logging 分组
- 新增 probes.execution (maxConcurrentChecks) 分组,替代顶层 runtime
- 旧配置入口 (runtime/logging/server.host/server.port/server.dataDir)
  启动期拒绝
- 更新 types.ts、builder.ts、config-loader.ts 适配新路径
- 更新 probe-config.schema.json、probes.example.yaml、README.md、
  DEVELOPMENT.md
- 补充 config-loader 和 variables 测试覆盖新路径和旧入口拒绝
- 同步 5 个 delta specs 到主规范 (probe-config, config-variables,
  data-retention, probe-engine, runtime-logging)
- 归档 openspec change reorganize-config-layout
This commit is contained in:
2026-05-21 13:54:41 +08:00
parent 5238dbe77d
commit e448cb4654
14 changed files with 614 additions and 376 deletions

View File

@@ -117,13 +117,20 @@ dist/release/
# yaml-language-server: $schema=./probe-config.schema.json
server: # 服务配置(均可省略)
host: "127.0.0.1"
port: 3000
dataDir: "/tmp/probes_data"
listen:
host: "127.0.0.1"
port: 3000
storage:
dataDir: "/tmp/probes_data"
retention: "7d"
logging:
level: "info"
file:
path: "<dataDir>/logs/dial.log"
runtime: # 运行时配置
maxConcurrentChecks: 20
retention: "7d"
probes: # 拨测运行时配置(可省略)
execution:
maxConcurrentChecks: 20
variables: # 配置变量(可省略)
env_name: "生产"
@@ -154,32 +161,37 @@ targets: # 拨测目标列表(必填)
# ... 更多 targets
```
### server — 服务配置
### server.listen监听配置
| 字段 | 说明 | 必填 | 默认值 |
| --------- | ------------------------------------------ | ---- | ----------- |
| `host` | 监听地址 | 否 | `127.0.0.1` |
| `port` | 监听端口 | 否 | `3000` |
| `dataDir` | 数据目录,相对路径基于配置文件所在目录解析 | 否 | `./data` |
| 字段 | 说明 | 必填 | 默认值 |
| ------ | -------- | ---- | ----------- |
| `host` | 监听地址 | 否 | `127.0.0.1` |
| `port` | 监听端口 | 否 | `3000` |
### runtime — 运行时配置
### server.storage — 存储配置
| 字段 | 说明 | 必填 | 默认值 |
| --------------------- | ------------------------------------------------ | ---- | ------ |
| `maxConcurrentChecks` | 最大并发拨测数 | 否 | `20` |
| `retention` | 历史数据保留时长,支持 `ms`/`s`/`m`/`h`/`d` 单位 | 否 | `7d` |
| 字段 | 说明 | 必填 | 默认值 |
| ----------- | ------------------------------------------------ | ---- | -------- |
| `dataDir` | 数据目录,相对路径基于配置文件所在目录解析 | 否 | `./data` |
| `retention` | 历史数据保留时长,支持 `ms`/`s`/`m`/`h`/`d` 单位 | 否 | `7d` |
### logging — 日志配置
### probes.execution — 拨测运行时配置
| 字段 | 说明 | 必填 | 默认值 |
| ------------------------- | ---------------------------------------------- | ---- | ------------------------- |
| `level` | 全局日志等级console 和 file 未指定时继承此值 | 否 | `info` |
| `console.level` | 控制台日志等级 | 否 | 继承 `level` |
| `file.level` | 文件日志等级 | 否 | 继承 `level` |
| `file.path` | 日志文件路径,相对路径基于配置文件目录解析 | 否 | `<dataDir>/logs/dial.log` |
| `file.rotation.size` | 按大小滚动,支持 `KB`/`MB`/`GB` 单位 | 否 | `50MB` |
| `file.rotation.frequency` | 按时间滚动:`hourly``daily``weekly` | 否 | `daily` |
| `file.rotation.maxFiles` | 保留的归档文件数量(不含活跃日志) | 否 | `14` |
| 字段 | 说明 | 必填 | 默认值 |
| --------------------- | -------------- | ---- | ------ |
| `maxConcurrentChecks` | 最大并发拨测数 | 否 | `20` |
### server.logging — 日志配置
| 字段 | 说明 | 必填 | 默认值 |
| ---------------------------------------- | ---------------------------------------------- | ---- | ------------------------- |
| `server.logging.level` | 全局日志等级console 和 file 未指定时继承此值 | 否 | `info` |
| `server.logging.console.level` | 控制台日志等级 | 否 | 继承 `level` |
| `server.logging.file.level` | 文件日志等级 | 否 | 继承 `level` |
| `server.logging.file.path` | 日志文件路径,相对路径基于配置文件目录解析 | 否 | `<dataDir>/logs/dial.log` |
| `server.logging.file.rotation.size` | 按大小滚动,支持 `KB`/`MB`/`GB` 单位 | 否 | `50MB` |
| `server.logging.file.rotation.frequency` | 按时间滚动:`hourly``daily``weekly` | 否 | `daily` |
| `server.logging.file.rotation.maxFiles` | 保留的归档文件数量(不含活跃日志) | 否 | `14` |
日志等级支持:`trace``debug``info``warn``error``fatal`