diff --git a/xtools-app-sys/xtools-app-sys-biz/src/main/java/xtools/app/sys/controller/SysMonitorController.java b/xtools-app-sys/xtools-app-sys-biz/src/main/java/xtools/app/sys/controller/SysMonitorController.java index e4927f6..cb48910 100644 --- a/xtools-app-sys/xtools-app-sys-biz/src/main/java/xtools/app/sys/controller/SysMonitorController.java +++ b/xtools-app-sys/xtools-app-sys-biz/src/main/java/xtools/app/sys/controller/SysMonitorController.java @@ -17,6 +17,7 @@ import xtools.boot.api.model.dto.Result; import xtools.boot.core.utils.EnumUtils; import xtools.boot.db.mybatis.enums.MySqlMonitorEnums; import xtools.boot.elasticsearch.enums.ElasticsearchMonitorEnums; +import xtools.extend.dto.monitor.HardwareInfoDto; import java.util.List; @@ -89,4 +90,10 @@ public class SysMonitorController { return sysMonitorService.elasticsearch(elasticsearchMonitorEnums); } + @Operation(summary = "硬件信息") + @GetMapping("/hardware") + public Result hardware() { + return sysMonitorService.hardware(); + } + } diff --git a/xtools-app-sys/xtools-app-sys-biz/src/main/java/xtools/app/sys/init/InitSys.java b/xtools-app-sys/xtools-app-sys-biz/src/main/java/xtools/app/sys/init/InitSys.java index 75006d6..8fdae1e 100644 --- a/xtools-app-sys/xtools-app-sys-biz/src/main/java/xtools/app/sys/init/InitSys.java +++ b/xtools-app-sys/xtools-app-sys-biz/src/main/java/xtools/app/sys/init/InitSys.java @@ -8,6 +8,7 @@ import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; import xtools.app.sys.risk.IpRisk; import xtools.app.sys.risk.UriRisk; +import xtools.app.sys.service.SysMonitorService; import xtools.app.sys.service.SysParamService; import xtools.app.sys.service.SysPermService; import xtools.app.sys.service.SysUpdateHistoryService; @@ -44,6 +45,8 @@ public class InitSys implements ApplicationRunner { private final UriRisk uriRisk; + private final SysMonitorService sysMonitorService; + @Override public void run(@NonNull ApplicationArguments args) { ScopedValue.where(LogTrackHolder.getScoped(), LogTrackHolder.newMain()).run(() -> { @@ -64,5 +67,6 @@ public class InitSys implements ApplicationRunner { sysUpdateHistoryService.init(); ipRisk.init(); uriRisk.init(); + sysMonitorService.init(); } } diff --git a/xtools-app-sys/xtools-app-sys-biz/src/main/java/xtools/app/sys/service/SysMonitorService.java b/xtools-app-sys/xtools-app-sys-biz/src/main/java/xtools/app/sys/service/SysMonitorService.java index 37035c2..d32998d 100644 --- a/xtools-app-sys/xtools-app-sys-biz/src/main/java/xtools/app/sys/service/SysMonitorService.java +++ b/xtools-app-sys/xtools-app-sys-biz/src/main/java/xtools/app/sys/service/SysMonitorService.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSONObject; import xtools.boot.api.model.dto.Result; import xtools.boot.db.mybatis.enums.MySqlMonitorEnums; import xtools.boot.elasticsearch.enums.ElasticsearchMonitorEnums; +import xtools.extend.dto.monitor.HardwareInfoDto; import java.util.List; @@ -20,6 +21,11 @@ import java.util.List; */ public interface SysMonitorService { + /** + * 初始化 + */ + void init(); + /** * 获取redis监控数据 * @@ -42,4 +48,11 @@ public interface SysMonitorService { * @return elasticsearch监控数据 */ Result elasticsearch(ElasticsearchMonitorEnums type); + + /** + * 获取硬件信息 + * + * @return 硬件信息 + */ + Result hardware(); } diff --git a/xtools-app-sys/xtools-app-sys-biz/src/main/java/xtools/app/sys/service/impl/SysMonitorServiceImpl.java b/xtools-app-sys/xtools-app-sys-biz/src/main/java/xtools/app/sys/service/impl/SysMonitorServiceImpl.java index c8f2f64..e8cd0c6 100644 --- a/xtools-app-sys/xtools-app-sys-biz/src/main/java/xtools/app/sys/service/impl/SysMonitorServiceImpl.java +++ b/xtools-app-sys/xtools-app-sys-biz/src/main/java/xtools/app/sys/service/impl/SysMonitorServiceImpl.java @@ -5,12 +5,15 @@ import jakarta.annotation.Resource; import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Service; import xtools.app.sys.service.SysMonitorService; +import xtools.base.config.BaseParams; import xtools.boot.api.model.dto.Result; import xtools.boot.cache.redis.monitor.RedisMonitor; import xtools.boot.db.mybatis.enums.MySqlMonitorEnums; import xtools.boot.db.mybatis.monitor.MySqlMonitor; import xtools.boot.elasticsearch.enums.ElasticsearchMonitorEnums; import xtools.boot.elasticsearch.monitor.ElasticsearchMonitor; +import xtools.extend.HardwareMonitor; +import xtools.extend.dto.monitor.HardwareInfoDto; import java.util.List; @@ -27,7 +30,7 @@ import java.util.List; */ @Primary @Service -public class SysMonitorServiceImpl implements SysMonitorService { +public class SysMonitorServiceImpl implements SysMonitorService, BaseParams { @Resource private RedisMonitor redisMonitor; @@ -38,6 +41,14 @@ public class SysMonitorServiceImpl implements SysMonitorService { @Resource private ElasticsearchMonitor elasticsearchMonitor; + /** + * 初始化 + */ + @Override + public void init() { + HardwareMonitor.getInstance().start(CP_NUM1, CP_NUM60 * CP_NUM10); + } + /** * 获取redis监控数据 * @@ -69,4 +80,14 @@ public class SysMonitorServiceImpl implements SysMonitorService { public Result elasticsearch(ElasticsearchMonitorEnums type) { return Result.ok(elasticsearchMonitor.info(type)); } + + /** + * 获取硬件信息 + * + * @return 硬件信息 + */ + @Override + public Result hardware() { + return Result.ok(HardwareMonitor.getInstance().get()); + } }