attacker
ed7a5c07a7
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 指标✅
2026-06-29 23:24:05 +08:00
..
2026-06-27 09:55:17 +08:00
2026-06-28 22:37:46 +08:00
2026-06-28 23:29:32 +08:00
2026-06-25 20:16:30 +08:00
2026-06-28 23:43:34 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 20:16:30 +08:00
2026-06-28 04:00:38 +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-28 22:37:46 +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-28 22:37:46 +08:00
2026-06-25 20:16:30 +08:00
2026-06-28 22:37:46 +08:00
2026-06-28 10:11:23 +08:00
2026-06-28 04:00:38 +08: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-29 23:24:05 +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-28 23:29:32 +08:00
2026-06-25 20:16:30 +08:00
2026-06-25 22:51:25 +08:00
2026-06-28 22:37:46 +08:00
2026-06-28 23:43:34 +08:00
2026-06-28 22:37:46 +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