attacker
894cb16a05
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 清零)
2026-06-28 01:51:00 +08:00
..
2026-06-27 09:55:17 +08:00
2026-06-27 09:55:17 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-26 13:28:31 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-28 01:51:00 +08:00
2026-06-28 01:51:00 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 22:51:25 +08:00
2026-06-25 22:51:25 +08:00
2026-06-25 20:16:30 +08:00
2026-06-27 07:20:11 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-27 23:28:04 +08:00
2026-06-26 13:28:31 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-26 23:18:05 +08:00
2026-06-25 20:16:30 +08:00
2026-06-26 15:13:35 +08:00
2026-06-25 20:16:30 +08:00
2026-06-27 04:50:58 +08:00
2026-06-25 20:16:30 +08:00
2026-06-27 04:50:58 +08:00
2026-06-25 20:16:30 +08:00
2026-06-27 07:20:11 +08:00
2026-06-27 04:50:58 +08:00
2026-06-26 23:18:05 +08:00
2026-06-25 20:16:30 +08:00
2026-06-27 07:20:11 +08:00
2026-06-27 07:20:11 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-28 01:51:00 +08:00
2026-06-27 12:54:31 +00:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-27 07:20:11 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-27 14:28:09 +08:00
2026-06-25 20:16:30 +08:00
2026-06-27 14:28:09 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 22:51:25 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-28 01:51:00 +08:00
2026-06-28 01:51:00 +08:00
2026-06-26 23:18:05 +08:00
2026-06-26 23:18:05 +08:00
2026-06-25 22:51:25 +08:00
2026-06-27 07:20:11 +08:00
2026-06-25 20:16:30 +08:00
2026-06-27 07:20:11 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00