feat:Server监控
This commit is contained in:
parent
699a8b068b
commit
f984421fc1
|
@ -0,0 +1,11 @@
|
||||||
|
package org.jeecg.modules.base.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class IdCount {
|
||||||
|
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
private Integer count;
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
package org.jeecg.modules.base.entity.monitor;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 返回的是List集合
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||||
|
public class ItemHistoryData implements Serializable {
|
||||||
|
|
||||||
|
private String date;
|
||||||
|
|
||||||
|
private String itemId;
|
||||||
|
|
||||||
|
private Long ns;
|
||||||
|
|
||||||
|
private Long clock;
|
||||||
|
|
||||||
|
private Double value;
|
||||||
|
}
|
|
@ -17,6 +17,9 @@ public interface MonitorAlarm {
|
||||||
@GetMapping("list")
|
@GetMapping("list")
|
||||||
Result<Servers> listBack(@RequestParam String code);
|
Result<Servers> listBack(@RequestParam String code);
|
||||||
|
|
||||||
|
@GetMapping("list")
|
||||||
|
Result<Servers> listAllBack();
|
||||||
|
|
||||||
@GetMapping("queryItemHistory")
|
@GetMapping("queryItemHistory")
|
||||||
Result<ItemHistory> itemBack(@RequestParam String itemId,
|
Result<ItemHistory> itemBack(@RequestParam String itemId,
|
||||||
@RequestParam Integer itemType,
|
@RequestParam Integer itemType,
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package org.jeecg.modules.mapper;
|
package org.jeecg.modules.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import org.jeecg.modules.base.dto.IdCount;
|
||||||
import org.jeecg.modules.base.dto.ServerDto;
|
import org.jeecg.modules.base.dto.ServerDto;
|
||||||
import org.jeecg.modules.base.entity.postgre.SysServer;
|
import org.jeecg.modules.base.entity.postgre.SysServer;
|
||||||
import org.jeecg.modules.entity.AlarmHistory;
|
import org.jeecg.modules.entity.AlarmHistory;
|
||||||
|
|
|
@ -42,10 +42,9 @@
|
||||||
LEFT JOIN alarm_rule r ON s.ID = r.source_id
|
LEFT JOIN alarm_rule r ON s.ID = r.source_id
|
||||||
LEFT JOIN alarm_log l ON r.ID = l.rule_id
|
LEFT JOIN alarm_log l ON r.ID = l.rule_id
|
||||||
AND l.alarm_start_date BETWEEN #{startDate} AND #{endDate}
|
AND l.alarm_start_date BETWEEN #{startDate} AND #{endDate}
|
||||||
GROUP BY s.ID,s.NAME,s.ip_address
|
GROUP BY s.ID, s.NAME, s.ip_address
|
||||||
<if test="pageFlag == null">
|
<if test="pageFlag == null">
|
||||||
LIMIT #{pageSize} OFFSET #{pageStart}
|
LIMIT #{pageSize} OFFSET #{pageStart}
|
||||||
</if>
|
</if>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
|
@ -2,6 +2,7 @@ package org.jeecg.modules.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.util.NumberUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
@ -14,11 +15,14 @@ import org.jeecg.common.constant.DateConstant;
|
||||||
import org.jeecg.common.constant.Prompt;
|
import org.jeecg.common.constant.Prompt;
|
||||||
import org.jeecg.modules.base.dto.ServerDto;
|
import org.jeecg.modules.base.dto.ServerDto;
|
||||||
import org.jeecg.modules.base.dto.SourceDto;
|
import org.jeecg.modules.base.dto.SourceDto;
|
||||||
|
import org.jeecg.modules.base.entity.monitor.Servers;
|
||||||
import org.jeecg.modules.base.entity.postgre.SysServer;
|
import org.jeecg.modules.base.entity.postgre.SysServer;
|
||||||
import org.jeecg.modules.base.bizVo.SourceVo;
|
import org.jeecg.modules.base.bizVo.SourceVo;
|
||||||
import org.jeecg.modules.entity.AlarmHistory;
|
import org.jeecg.modules.entity.AlarmHistory;
|
||||||
|
import org.jeecg.modules.feignclient.MonitorAlarm;
|
||||||
import org.jeecg.modules.mapper.SysServerMapper;
|
import org.jeecg.modules.mapper.SysServerMapper;
|
||||||
import org.jeecg.modules.service.ISysServerService;
|
import org.jeecg.modules.service.ISysServerService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
@ -29,8 +33,11 @@ import java.util.*;
|
||||||
@Service("sysServerService")
|
@Service("sysServerService")
|
||||||
public class SysServerServiceImpl extends ServiceImpl<SysServerMapper, SysServer> implements ISysServerService {
|
public class SysServerServiceImpl extends ServiceImpl<SysServerMapper, SysServer> implements ISysServerService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private MonitorAlarm monitorAlarm;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Result findPage(QueryRequest query) {
|
public Result<?> findPage(QueryRequest query) {
|
||||||
Integer pageNo = query.getPageNo();
|
Integer pageNo = query.getPageNo();
|
||||||
Integer pageSize = query.getPageSize();
|
Integer pageSize = query.getPageSize();
|
||||||
Integer pageStart = (pageNo - 1) * pageSize;
|
Integer pageStart = (pageNo - 1) * pageSize;
|
||||||
|
@ -45,21 +52,33 @@ public class SysServerServiceImpl extends ServiceImpl<SysServerMapper, SysServer
|
||||||
params.put("startDate",startDate);
|
params.put("startDate",startDate);
|
||||||
params.put("endDate",endDate);
|
params.put("endDate",endDate);
|
||||||
List<ServerDto> serverDtos = baseMapper.findPage(params);
|
List<ServerDto> serverDtos = baseMapper.findPage(params);
|
||||||
|
// 获取服务器信息列表
|
||||||
|
Servers servers = monitorAlarm.listAllBack().getResult();
|
||||||
for (ServerDto serverDto : serverDtos) {
|
for (ServerDto serverDto : serverDtos) {
|
||||||
|
|
||||||
serverDto.setOnline(true)
|
serverDto.setOnline(true)
|
||||||
.setServerInfo("(4-core (vCPU)16GiB)")
|
.setServerInfo("(4-core (vCPU)16GiB)")
|
||||||
.setCpuUutilzation("35.8%").setMemoryUsage("55.8%")
|
.setCpuUutilzation("35.8%").setMemoryUsage("55.8%")
|
||||||
.setDiskUsage("85.68%").setDiskRed(true);
|
.setDiskUsage("85.68%").setDiskRed(true);
|
||||||
|
|
||||||
}
|
}
|
||||||
params.put("pageFlag","noPage");
|
params.put("pageFlag","noPage");
|
||||||
long total = baseMapper.findPage(params).size();
|
// 统计Alarm总数
|
||||||
|
List<ServerDto> noPage = baseMapper.findPage(params);
|
||||||
|
int alarms = noPage.stream().mapToInt(ServerDto::getAlarms).sum();
|
||||||
|
// 获取记录总条数
|
||||||
|
long total = noPage.size();
|
||||||
Page<ServerDto> page = new Page<>(pageNo, pageSize, total);
|
Page<ServerDto> page = new Page<>(pageNo, pageSize, total);
|
||||||
page.setRecords(serverDtos);
|
page.setRecords(serverDtos);
|
||||||
return Result.OK(page);
|
return Result.OK(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
System.out.println(NumberUtil.formatPercent(0.2367, 1));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Result findInfo(String id) {
|
public Result<?> findInfo(String id) {
|
||||||
Result result = new Result();
|
Result result = new Result();
|
||||||
if (StringUtils.isBlank(id)){
|
if (StringUtils.isBlank(id)){
|
||||||
result.error500("id信息不能为空");
|
result.error500("id信息不能为空");
|
||||||
|
@ -85,11 +104,11 @@ public class SysServerServiceImpl extends ServiceImpl<SysServerMapper, SysServer
|
||||||
LambdaQueryWrapper<SysServer> wrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SysServer> wrapper = new LambdaQueryWrapper<>();
|
||||||
wrapper.eq(SysServer::getName,name);
|
wrapper.eq(SysServer::getName,name);
|
||||||
if (CollUtil.isNotEmpty(list(wrapper)))
|
if (CollUtil.isNotEmpty(list(wrapper)))
|
||||||
return Result.error("Name"+Prompt.NOT_REPEAT);
|
return Result.error("Name" + Prompt.NOT_REPEAT);
|
||||||
wrapper.clear();
|
wrapper.clear();
|
||||||
wrapper.eq(SysServer::getIpAddress,ipAddress);
|
wrapper.eq(SysServer::getIpAddress,ipAddress);
|
||||||
if (CollUtil.isNotEmpty(list(wrapper)))
|
if (CollUtil.isNotEmpty(list(wrapper)))
|
||||||
return Result.error("IP Address"+Prompt.NOT_REPEAT);
|
return Result.error("IP Address" + Prompt.NOT_REPEAT);
|
||||||
|
|
||||||
int count = baseMapper.insert(sysServer);
|
int count = baseMapper.insert(sysServer);
|
||||||
if (count == 1)
|
if (count == 1)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user