feat(monitor): M15 中间件监控 — Redis/MySQL 后端直连采集引擎
后端: - 新增 controller/middleware_monitor.go (500+ 行) — CRUD + 测试连接 + 采集引擎 - 后台 goroutine 每 30s 自动连接 Redis/MySQL 采集指标 - Redis: go-redis v9 INFO+DBSIZE 命令采集 12 项指标 - MySQL: database/sql SHOW GLOBAL STATUS 采集 12 项指标 - 指标写入 MetricHistory 表,7 天自动清理 - 8 个 RESTful 路由注册到 routes.go 前端: - MiddlewareMonitor.tsx 从只读卡片升级为完整管理页面 - 添加监控弹框(Redis/MySQL 类型选择+连接配置表单) - 实例卡片操作栏(测试/编辑/删除) + 工具栏(立即采集/刷新) - middlewareMonitorApi 8 个方法 验证: go build✅ npm build✅ 17/17 回归通过 Redis 12 指标✅ MySQL 12 指标✅
This commit is contained in:
1 parent
186ece6495
commit
ed7a5c07a7
8 files changed
+1211
-132
No files matched your search
+34
@@ -391,6 +391,39 @@ services/api.ts (1324L)
|
||||
|
||||
---
|
||||
|
||||
### M15: 中间件监控 (Redis/MySQL) [done]
|
||||
|
||||
**问题**: 前端 `MiddlewareMonitor.tsx` 页面已存在但无后端支持——无 CRUD API、无指标采集、无配置入口。用户无法监控 Redis/MySQL 中间件实例。
|
||||
|
||||
**已完成 (2026-06-29)**:
|
||||
- ✅ **后端 CRUD 控制器** — `controller/middleware_monitor.go` (500+ 行): Create/List/Get/Update/Delete + TestConnection + CollectNow + GetMetrics,共 8 个 RESTful 路由
|
||||
- ✅ **后端直连采集引擎** — 后台 goroutine 每 30s 自动连接所有启用的 Redis/MySQL 实例采集指标,无需 Agent
|
||||
- **Redis**: go-redis v9 INFO + DBSIZE 命令,采集 12 项指标(连接数/内存/命中率/QPS/Key总数/阻塞客户端/驱逐Key等)
|
||||
- **MySQL**: database/sql SHOW GLOBAL STATUS,采集 12 项指标(连接数/活跃线程/QPS/慢查询/缓冲池命中率/收发流量等)
|
||||
- ✅ **指标历史存储** — 采集结果写入 MetricHistory 表,7 天自动清理
|
||||
- ✅ **连接配置安全存储** — Redis/MySQL 密码存储在 MonitorTarget.Config JSON 字段,不暴露在列表 API 中
|
||||
- ✅ **前端增强** — MiddlewareMonitor.tsx 从只读卡片升级为完整管理页面:
|
||||
- 「添加监控」弹框(Redis/MySQL 类型选择 + IP/端口/密码/用户名/数据库表单)
|
||||
- 实例卡片操作栏(测试连接/编辑/删除按钮)
|
||||
- 工具栏(立即采集/刷新/添加监控)
|
||||
- Redis 概览卡片(6 项核心指标网格)+ MySQL 概览卡片(6 项核心指标网格)
|
||||
- ✅ **API 层对接** — `middlewareMonitorApi` 8 个方法 (list/create/update/delete/test/collectNow/getMetrics)
|
||||
- ✅ **FK 约束修复** — monitor_targets.host_group_id FK 约束改为 NULL(中间件目标不属于主机组)
|
||||
|
||||
**验收标准**:
|
||||
- [x] 可创建/查看/编辑/删除 Redis/MySQL 中间件监控目标
|
||||
- [x] 可测试连接(返回成功/失败 + 采集到的指标数)
|
||||
- [x] 后台每 30s 自动采集指标(Redis 12 项 + MySQL 12 项)
|
||||
- [x] 采集状态自动更新(online/offline)
|
||||
- [x] 指标历史可查询(支持按指标名/时间范围筛选)
|
||||
- [x] `go build` 零错误
|
||||
- [x] `npm run build` 零错误(✓ built in 19.08s)
|
||||
- [x] 17/17 集成回归测试通过(零回归)
|
||||
- [x] Redis 连接成功(99% 命中率,12 项指标)
|
||||
- [x] MySQL 连接成功(100% 缓冲池命中率,12 项指标)
|
||||
|
||||
---
|
||||
|
||||
## 模块状态追踪
|
||||
|
||||
| ID | 模块 | 优先级 | 状态 |
|
||||
@@ -411,6 +444,7 @@ services/api.ts (1324L)
|
||||
| U4 | 镜像优化 | P3 | **done** |
|
||||
| F5 | 链路追踪后端对接 | P1 | **done** |
|
||||
| F6 | 日志告警引擎 | P1 | **done** |
|
||||
| M15 | 中间件监控 (Redis/MySQL) | P1 | **done** |
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in new issue
Block a user