feat(monitor): F5 链路追踪后端对接 — traceApi mock桩改真实Jaeger/Tempo代理+demo兜底

- 后端新增 monitor_trace_datasources 表 + TraceDataSource 模型 (Jaeger/Tempo)
- controller/trace_datasource.go — CRUD + TestConnection + SetDefault (7 路由)
- controller/trace_proxy.go — Jaeger API 代理 + 响应格式转换 (Trace/服务/Span)
  - GET /traces — Trace 列表 (代理 Jaeger /api/traces)
  - GET /traces/services — 服务列表 + P95/P99/errorRate 聚合
  - GET /traces/:traceId — Trace 详情 (Span 树转换)
- Demo 数据兜底: 无数据源时返回模拟数据 (6 Trace + 5 服务 + 5 Span)
- 前端 traceApi 从 mock 改真实 HTTP 调用
- 前端新增 trace-datasource.ts 数据源管理 API
- ROADMAP/TDD_PLAN/PROJECT_EVALUATION 文档同步更新
- 综合评分 90→91, 功能完整性 92→94 (mock API 清零)
This commit is contained in:
attacker committed 2026-06-28 01:51:00 +08:00
1 parent 0c2c0adaaf
commit 894cb16a05
23 files changed
+1085 -52

No files matched your search

+27
View File
@@ -318,6 +318,32 @@ services/api.ts (1324L)
**问题**: `dashboardApi`(Grafana 仪表盘 CRUD)6 个方法全部为 mock 桩,返回空数组/false。前端 `GrafanaDashboard.tsx` 的"自定义"Tab 有完整 UI 但无法创建/保存仪表盘,面板渲染随机 mock 数据。
### F5: 链路追踪后端对接 [done]
**问题**: `traceApi`(链路追踪)3 个方法全部为 mock 桩返回空数组。前端 `TraceManager.tsx`(587 行)有完整 UI(Trace 列表/服务拓扑/性能指标/详情弹窗/Span 树可视化)但无数据展示。
**已完成 (2026-06-28)**:
- ✅ 后端新增 `monitor_trace_datasources` 表 + `TraceDataSource` 模型(Jaeger/Tempo 数据源配置)
- ✅ 后端新增 `controller/trace_datasource.go` — CRUD + TestConnection + SetDefault(7 个路由)
- ✅ 后端新增 `controller/trace_proxy.go` — Jaeger/Tempo API 代理 + 响应格式转换
- `GET /traces` — Trace 列表(代理 Jaeger `/api/traces`,转换为前端 Trace 格式)
- `GET /traces/services` — 服务列表 + 性能指标聚合(代理 Jaeger `/api/services` + `/api/traces` 聚合计算 requestCount/errorRate/avgDuration/p95/p99)
- `GET /traces/:traceId` — Trace 详情(代理 Jaeger `/api/traces/:id`,Span 树结构转换)
- ✅ **Demo 数据兜底**:无数据源配置时后端自动返回模拟数据(6 条 Trace + 5 个服务 + 5 个 Span),UI 始终有数据展示
- ✅ 前端 `traceApi` 从 mock 桩改为真实 HTTP 调用(对接 `/traces` REST API)
- ✅ 前端新增 `trace-datasource.ts` — 链路追踪数据源管理 API(CRUD + 测试连接 + 设默认)
**验收标准**:
- [x] `traceApi` 不再是 mock 桩,3 个方法全部对接真实后端
- [x] 无数据源时返回 demo 数据(6 条 Trace/5 个服务/5 个 Span),UI 功能完整
- [x] 配置 Jaeger 数据源后代理转发真实查询
- [x] 可创建/查看/编辑/删除链路追踪数据源
- [x] 可设默认数据源
- [x] 可测试数据源连接(调用 `/api/services` 验证)
- [x] `go build` 零错误
- [x] `npm run build` 零错误(✓ built in 17.78s)
- [x] 17/17 集成回归测试通过
**已完成 (2026-06-27)**:
- ✅ 后端新增 `monitor_custom_dashboards` 表 + `CustomDashboard` 模型(面板配置存 JSON)
- ✅ 后端新增 `controller/custom_dashboard.go` — CRUD + 设默认(6 个路由)
@@ -356,6 +382,7 @@ services/api.ts (1324L)
| U2 | 统一 DataTable | P3 | **done** |
| U3 | 国际化 | P3 | **done** |
| U4 | 镜像优化 | P3 | **done** |
| F5 | 链路追踪后端对接 | P1 | **done** |
---