diff --git a/ruoyi-ui/src/api/business/monitor/redis/cache.js b/ruoyi-ui/src/api/business/monitor/redis/cache.js new file mode 100644 index 00000000..bb8ca200 --- /dev/null +++ b/ruoyi-ui/src/api/business/monitor/redis/cache.js @@ -0,0 +1,9 @@ +import request from '@/utils/request' + +// 查询redis缓存详细 +export function getRedisCache() { + return request({ + url: '/monitor/redismonitor', + method: 'get' + }) +} diff --git a/ruoyi-ui/src/views/business/monitor/redis/index.vue b/ruoyi-ui/src/views/business/monitor/redis/index.vue new file mode 100644 index 00000000..dedf897b --- /dev/null +++ b/ruoyi-ui/src/views/business/monitor/redis/index.vue @@ -0,0 +1,146 @@ + + + diff --git a/xjs-business/xjs-business-monitor/src/main/java/com/xjs/redismonitor/RedisCacheController.java b/xjs-business/xjs-business-monitor/src/main/java/com/xjs/redismonitor/RedisCacheController.java new file mode 100644 index 00000000..a2d3e7fe --- /dev/null +++ b/xjs-business/xjs-business-monitor/src/main/java/com/xjs/redismonitor/RedisCacheController.java @@ -0,0 +1,47 @@ +package com.xjs.redismonitor; + +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.security.annotation.RequiresLogin; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisCallback; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.*; + +/** + * @author xiejs + * @since 2022-01-12 + */ +@RestController +@RequestMapping("redismonitor") +public class RedisCacheController { + @Autowired + private RedisTemplate redisTemplate; + + @GetMapping() + @RequiresLogin + public AjaxResult getInfo() { + Properties info = (Properties) redisTemplate.execute((RedisCallback) connection -> connection.info()); + Properties commandStats = (Properties) redisTemplate.execute((RedisCallback) connection -> connection.info("commandstats")); + Object dbSize = redisTemplate.execute((RedisCallback) connection -> connection.dbSize()); + + Map result = new HashMap<>(3); + result.put("info", info); + result.put("dbSize", dbSize); + + List> pieList = new ArrayList<>(); + commandStats.stringPropertyNames().forEach(key -> { + Map data = new HashMap<>(2); + String property = commandStats.getProperty(key); + data.put("name", StringUtils.removeStart(key, "cmdstat_")); + data.put("value", StringUtils.substringBetween(property, "calls=", ",usec")); + pieList.add(data); + }); + result.put("commandStats", pieList); + return AjaxResult.success(result); + } +} diff --git a/xjs-business/xjs-business-monitor/src/main/java/com/xjs/servicemonitor/controller/ServiceMonitorController.java b/xjs-business/xjs-business-monitor/src/main/java/com/xjs/servicemonitor/controller/ServiceMonitorController.java index b9ee939d..f3ba5a53 100644 --- a/xjs-business/xjs-business-monitor/src/main/java/com/xjs/servicemonitor/controller/ServiceMonitorController.java +++ b/xjs-business/xjs-business-monitor/src/main/java/com/xjs/servicemonitor/controller/ServiceMonitorController.java @@ -1,6 +1,7 @@ package com.xjs.servicemonitor.controller; import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.security.annotation.RequiresLogin; import com.xjs.servicemonitor.domain.ServiceMonitorInfo; import com.xjs.servicemonitor.service.JvmMonitorService; import com.xjs.servicemonitor.service.SystemOSService; @@ -26,7 +27,7 @@ public class ServiceMonitorController { private SystemOSService systemOSService; @GetMapping - + @RequiresLogin public AjaxResult getServiceMonitor(HttpServletRequest request) { ServiceMonitorInfo serviceMonitorInfo = new ServiceMonitorInfo(); //获取客户端信息