3.1 KiB
3.1 KiB
Why
项目当前只有 demo 验证链路(/api/demo + 前端展示连接状态),缺少核心业务逻辑。需要一个 HTTP 拨测工具,通过 YAML 配置文件定义拨测目标(URL、method、header、body、期望条件等),后端按配置定时、并行批量拨测,结果持久化到本地 SQLite,前端 Dashboard 展示各目标实时状态、可用率、延迟趋势等。
What Changes
- 清理 demo 样例代码:移除
/api/demo路由、DemoResponse类型、前端 demo 展示逻辑,保留路由框架、服务启动、构建打包链路和/health端点 - 新增 YAML 配置文件解析:使用 Bun 内置
Bun.YAML.parse()读取拨测规则文件,包含 server 配置、数据目录、全局默认值和拨测目标列表 - 简化 CLI 参数:只保留一个命令行参数——配置文件路径,所有配置统一到 YAML 文件
- 新增 SQLite 数据存储:使用
bun:sqlite存储拨测目标(从 YAML 同步)和拨测结果(追加写入),支持索引查询 - 新增拨测调度引擎:按 target 的 interval 分组,每组独立 timer,组内
Promise.all并发拨测,支持 expect 校验(状态码、响应体、延迟阈值) - 新增 REST API 层:提供总览统计、目标列表含当前状态、历史记录、趋势聚合等接口
- 新增前端 Dashboard:使用 React 组件展示统计卡片、目标列表表格(含状态圆点和迷你趋势线)、可展开详情面板(含完整趋势图),通过轮询 5-10s 更新数据
- 引入 recharts 依赖:用于趋势图和迷你 Sparkline 可视化
Capabilities
New Capabilities
probe-config: YAML 配置文件格式定义、解析校验与 CLI 启动流程probe-engine: 拨测调度引擎——按 interval 分组定时、并发拨测、expect 校验、结果存储probe-data-store: SQLite 数据存储——targets 同步、results 追加、索引与聚合查询probe-api: REST API 层——总览统计、目标列表含状态、历史记录、趋势聚合probe-dashboard: React 前端 Dashboard——统计卡片、目标表格、详情面板、趋势图
Modified Capabilities
fullstack-app-runtime: CLI 参数从--host/--port简化为单个配置文件路径参数;移除/api/demo路由;新增/api/*拨测相关 API 路由frontend-development-workflow: 前端从 demo 展示页面替换为拨测 Dashboard;移除/api/demo相关代理场景
Impact
- 代码变更:
src/server/app.ts路由重写、src/server/config.ts简化、src/shared/api.ts类型重写、src/web/前端全部重写 - 新增模块:
src/server/checker/目录(engine、fetcher、store、config-loader、types) - 新增依赖:
recharts(前端图表) - 无新增外部依赖:YAML 解析使用 Bun 内置
Bun.YAML,SQLite 使用 Bun 内置bun:sqlite - 构建打包:现有 single executable 打包链路不变,YAML 配置文件为外部文件不嵌入 executable
- API 变更:BREAKING 移除
/api/demo,新增/api/summary、/api/targets、/api/targets/:id/history、/api/targets/:id/trend