From c731409c06626f7d64e20b93f023870c5c06d4b9 Mon Sep 17 00:00:00 2001
From: Leo <98382335+gaoziman@users.noreply.github.com>
Date: Sun, 28 Sep 2025 00:08:37 +0800
Subject: [PATCH] =?UTF-8?q?feat(monitor):=20=E5=AE=9E=E7=8E=B0=E7=B3=BB?=
=?UTF-8?q?=E7=BB=9F=E7=9B=91=E6=8E=A7=E6=A8=A1=E5=9D=97=E6=A0=B8=E5=BF=83?=
=?UTF-8?q?=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 添加服务器资源监控功能(CPU、内存、磁盘、JVM)
- 实现Redis监控和性能统计
- 添加缓存管理功能(查看、删除、清空)
- 使用OSHI库进行跨平台硬件信息收集
- 集成Sa-Token权限验证和Swagger文档
- 支持实时监控数据获取和格式化显示
---
.../coder-common-thin-monitor/pom.xml | 65 ++++++
.../monitor/controller/CacheController.java | 134 ++++++++++++
.../monitor/controller/RedisController.java | 63 ++++++
.../monitor/controller/ServerController.java | 34 +++
.../thin/monitor/pojo/server/Cpu.java | 120 +++++++++++
.../thin/monitor/pojo/server/Jvm.java | 155 ++++++++++++++
.../thin/monitor/pojo/server/Mem.java | 105 +++++++++
.../thin/monitor/pojo/server/Server.java | 202 ++++++++++++++++++
.../thin/monitor/pojo/server/Sys.java | 36 ++++
.../thin/monitor/pojo/server/SysCache.java | 52 +++++
.../thin/monitor/pojo/server/SysFile.java | 46 ++++
11 files changed, 1012 insertions(+)
create mode 100644 coder-common-thin-modules/coder-common-thin-monitor/pom.xml
create mode 100644 coder-common-thin-modules/coder-common-thin-monitor/src/main/java/org/leocoder/thin/monitor/controller/CacheController.java
create mode 100644 coder-common-thin-modules/coder-common-thin-monitor/src/main/java/org/leocoder/thin/monitor/controller/RedisController.java
create mode 100644 coder-common-thin-modules/coder-common-thin-monitor/src/main/java/org/leocoder/thin/monitor/controller/ServerController.java
create mode 100644 coder-common-thin-modules/coder-common-thin-monitor/src/main/java/org/leocoder/thin/monitor/pojo/server/Cpu.java
create mode 100644 coder-common-thin-modules/coder-common-thin-monitor/src/main/java/org/leocoder/thin/monitor/pojo/server/Jvm.java
create mode 100644 coder-common-thin-modules/coder-common-thin-monitor/src/main/java/org/leocoder/thin/monitor/pojo/server/Mem.java
create mode 100644 coder-common-thin-modules/coder-common-thin-monitor/src/main/java/org/leocoder/thin/monitor/pojo/server/Server.java
create mode 100644 coder-common-thin-modules/coder-common-thin-monitor/src/main/java/org/leocoder/thin/monitor/pojo/server/Sys.java
create mode 100644 coder-common-thin-modules/coder-common-thin-monitor/src/main/java/org/leocoder/thin/monitor/pojo/server/SysCache.java
create mode 100644 coder-common-thin-modules/coder-common-thin-monitor/src/main/java/org/leocoder/thin/monitor/pojo/server/SysFile.java
diff --git a/coder-common-thin-modules/coder-common-thin-monitor/pom.xml b/coder-common-thin-modules/coder-common-thin-monitor/pom.xml
new file mode 100644
index 0000000..d553303
--- /dev/null
+++ b/coder-common-thin-modules/coder-common-thin-monitor/pom.xml
@@ -0,0 +1,65 @@
+
+
+ 4.0.0
+
+ org.leocoder.thin
+ coder-common-thin-backend
+ ${revision}
+ ../../pom.xml
+
+
+ coder-common-thin-monitor
+ coder-common-thin-monitor
+ 系统监控模块:服务器资源监控、Redis监控、缓存管理等功能
+
+
+
+
+ org.leocoder.thin
+ coder-common-thin-common
+ ${revision}
+
+
+
+
+ org.leocoder.thin
+ coder-common-thin-resultex
+ ${revision}
+
+
+
+
+ org.leocoder.thin
+ coder-common-thin-sa-token
+ ${revision}
+
+
+
+
+ org.springdoc
+ springdoc-openapi-starter-webmvc-ui
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-redis
+
+
+
+
+ com.github.oshi
+ oshi-core
+ 6.4.10
+
+
+
+
+ org.apache.commons
+ commons-lang3
+
+
+
+
\ No newline at end of file
diff --git a/coder-common-thin-modules/coder-common-thin-monitor/src/main/java/org/leocoder/thin/monitor/controller/CacheController.java b/coder-common-thin-modules/coder-common-thin-monitor/src/main/java/org/leocoder/thin/monitor/controller/CacheController.java
new file mode 100644
index 0000000..b51998b
--- /dev/null
+++ b/coder-common-thin-modules/coder-common-thin-monitor/src/main/java/org/leocoder/thin/monitor/controller/CacheController.java
@@ -0,0 +1,134 @@
+package org.leocoder.thin.monitor.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.ObjectUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.leocoder.thin.monitor.pojo.server.SysCache;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.*;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @author Leocoder
+ * @description [缓存管理]
+ */
+@Tag(name = "缓存管理", description = "Redis缓存管理,包括缓存查看、删除、清空等操作")
+@RestController
+@RequestMapping("/coder/monitor")
+@RequiredArgsConstructor
+public class CacheController {
+
+ private final RedisTemplate redisTemplate;
+
+ private final static List cacheList = new ArrayList<>();
+
+ static {
+ cacheList.add(new SysCache("Authorization:login:session:", "用户登录信息"));
+ cacheList.add(new SysCache("coderDict:", "数据字典"));
+ cacheList.add(new SysCache("coderCaptchaCodes:", "验证码"));
+ cacheList.add(new SysCache("repeat_submit:", "防重提交"));
+ cacheList.add(new SysCache("rate_limit:", "限流处理"));
+ cacheList.add(new SysCache("pwd_error:", "密码错误次数"));
+ cacheList.add(new SysCache("coderBlacklistIp:", "黑名单IP"));
+ }
+
+ /**
+ * @description [查询Redis缓存所有Key]
+ * @author Leocoder
+ */
+ @Operation(summary = "查询Redis缓存所有Key", description = "获取系统中所有缓存分类的Key列表")
+ @SaCheckPermission("monitor:cache:list")
+ @GetMapping("/cache/getRedisCache")
+ public List getRedisInformation() {
+ return cacheList;
+ }
+
+ /**
+ * @description [查询Redis缓存键名列表]
+ * @author Leocoder
+ */
+ @Operation(summary = "查询Redis缓存键名列表", description = "根据缓存名称获取对应的键名列表")
+ @SaCheckPermission("monitor:cache:list")
+ @GetMapping("/cache/getCacheKeys/{cacheName}")
+ public TreeSet