1、增加磁盘HDD类型已用空间图形接口。

2、增加磁盘HDD类型总空间字段计算。
3、增加硬盘设备监控列表接口。
This commit is contained in:
gaoyutao
2026-01-16 15:10:31 +08:00
parent f39aa887c8
commit d62fe4b99a
16 changed files with 301 additions and 51 deletions
@@ -32,7 +32,7 @@ public class AllDiskNameController extends BaseController
@PostMapping("/list")
public AjaxResult list(@RequestBody AllDiskName allDiskName)
{
List<AllDiskName> list = allDiskNameService.selectAllDiskNameList(allDiskName);
List<AllDiskName> list = allDiskNameService.selectDiskInfoList(allDiskName);
return success(list);
}
@@ -138,6 +138,16 @@ public class InitialDiskInfoController extends BaseController
Map<String, Object> echartsData = initialDiskInfoService.rwBytesEcharts(initialDiskInfo);
return success(echartsData);
}
/**
* HDD类型已用空间
* @param initialDiskInfo
* @return
*/
@PostMapping("/usedSpaceEcharts")
public AjaxResult usedSpaceEcharts(@RequestBody InitialDiskInfo initialDiskInfo){
Map<String, Object> echartsData = initialDiskInfoService.usedSpaceEcharts(initialDiskInfo);
return success(echartsData);
}
/**
* 获取指定服务器的磁盘名称
* @param initialDiskInfo
@@ -39,5 +39,26 @@ public class AllDiskName extends BaseEntity
private String writeIops;
/** 操纵类型 1测试磁盘IOPS,2卸载分区 */
private Integer processType;
/** 磁盘序列号 */
@Excel(name = "磁盘序列号")
private String serial;
/** 磁盘总大小(GB) */
@Excel(name = "磁盘总大小(GB)")
private Long total;
/** 磁盘写入速率(字节/秒) */
@Excel(name = "磁盘写入速率(字节/秒)")
private Long writeSpeed;
/** 磁盘读取速率(字节/秒) */
@Excel(name = "磁盘读取速率(字节/秒)")
private Long readSpeed;
/** 已用空间 */
private Long usedSpace;
/** 磁盘类型 */
private String type;
/** 表名 */
private String tableName;
}
@@ -83,6 +83,8 @@ public class InitialDiskInfo extends BaseEntity
private String tableName;
/** 批量插入列表 */
private List<InitialDiskInfo> list;
/** 单位 */
private String unit;
}
@@ -61,4 +61,6 @@ public interface AllDiskNameMapper
public int deleteAllDiskNameByIds(Long[] ids);
int batchInsertAllDistName(List<AllDiskName> dataList);
List<AllDiskName> selectDiskInfoList(AllDiskName allDiskName);
}
@@ -84,4 +84,6 @@ public interface InitialDiskInfoMapper
List<Map> getAllDistName(InitialDiskInfo initialDiskInfo);
List<InitialDiskInfo> selectInitialDiskInfoListByCondition(InitialDiskInfo condition);
InitialDiskInfo getDiskTotal(InitialDiskInfo initialDiskInfo);
}
@@ -64,4 +64,6 @@ public interface IAllDiskNameService
int batchInsertAllDistName(List<InitialDiskInfo> dataList);
int issuanceOperation(AllDiskName allDiskName);
List<AllDiskName> selectDiskInfoList(AllDiskName allDiskName);
}
@@ -94,6 +94,12 @@ public interface IInitialDiskInfoService
* @return
*/
Map<String, Object> rwBytesEcharts(InitialDiskInfo initialDiskInfo);
/**
* HDD类型已用空间图
* @param initialDiskInfo
* @return
*/
Map<String, Object> usedSpaceEcharts(InitialDiskInfo initialDiskInfo);
/**
* 获取指定服务器的磁盘名称
@@ -101,4 +107,6 @@ public interface IInitialDiskInfoService
* @return
*/
List<Map> getAllDistName(InitialDiskInfo initialDiskInfo);
InitialDiskInfo getDiskTotal(InitialDiskInfo initialDiskInfo);
}
@@ -3,6 +3,7 @@ package com.tongran.rocketmq.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.tongran.common.core.enums.MsgEnum;
import com.tongran.common.core.utils.DateUtils;
import com.tongran.common.core.utils.TableSubUtil;
import com.tongran.rocketmq.domain.AllDiskName;
import com.tongran.rocketmq.domain.DeviceMessage;
import com.tongran.rocketmq.domain.InitialDiskInfo;
@@ -153,4 +154,12 @@ public class AllDiskNameServiceImpl implements IAllDiskNameService
);
return 1;
}
@Override
public List<AllDiskName> selectDiskInfoList(AllDiskName allDiskName) {
String tableName = TableSubUtil.getTableName(DateUtils.getNowDate(), "initial_disk_info");
allDiskName.setTableName(tableName);
List<AllDiskName> list = allDiskNameMapper.selectDiskInfoList(allDiskName);
return list;
}
}
@@ -1,15 +1,10 @@
package com.tongran.rocketmq.service.impl;
import com.tongran.common.core.utils.*;
import com.tongran.rocketmq.domain.InitialBandwidthTraffic;
import com.tongran.rocketmq.domain.InitialCpuInfo;
import com.tongran.rocketmq.domain.InitialSystemOtherCollectData;
import com.tongran.rocketmq.domain.RmNetworkInterfaceChild;
import com.tongran.rocketmq.mapper.InitialBandwidthTrafficMapper;
import com.tongran.rocketmq.mapper.InitialCpuInfoMapper;
import com.tongran.rocketmq.mapper.InitialSystemOtherCollectDataMapper;
import com.tongran.rocketmq.mapper.RmNetworkInterfaceChildMapper;
import com.tongran.rocketmq.domain.*;
import com.tongran.rocketmq.mapper.*;
import com.tongran.rocketmq.service.IInitialBandwidthTrafficService;
import com.tongran.rocketmq.service.IInitialDiskInfoService;
import com.tongran.rocketmq.utils.TableRouterUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
@@ -43,6 +38,8 @@ public class InitialBandwidthTrafficServiceImpl implements IInitialBandwidthTraf
private InitialSystemOtherCollectDataMapper initialSystemOtherCollectDataMapper;
@Autowired
private InitialCpuInfoMapper initialCpuInfoMapper;
@Autowired
private IInitialDiskInfoService diskInfoService;
/**
* 查询初始带宽流量
@@ -631,6 +628,11 @@ public class InitialBandwidthTrafficServiceImpl implements IInitialBandwidthTraf
}
resultMap.put("cpuUti", cpuInfo.getUti());
resultMap.put("cpuCores", cpuInfo.getCores());
InitialDiskInfo diskInfo = new InitialDiskInfo();
diskInfo.setClientId(initialBandwidthTraffic.getClientId());
diskInfo.setType("HDD");
InitialDiskInfo initialDiskInfo = diskInfoService.getDiskTotal(diskInfo);
resultMap.put("diskTotal", initialDiskInfo.getTotal());
return resultMap;
}
@@ -1,9 +1,6 @@
package com.tongran.rocketmq.service.impl;
import com.tongran.common.core.utils.DateUtils;
import com.tongran.common.core.utils.EchartsDataUtils;
import com.tongran.common.core.utils.TableSubUtil;
import com.tongran.common.core.utils.UnitChangeUtil;
import com.tongran.common.core.utils.*;
import com.tongran.rocketmq.domain.InitialDiskInfo;
import com.tongran.rocketmq.mapper.InitialDiskInfoMapper;
import com.tongran.rocketmq.service.IAllDiskNameService;
@@ -15,6 +12,8 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -175,6 +174,19 @@ public class InitialDiskInfoServiceImpl implements IInitialDiskInfoService
}
return info;
}
@Override
public InitialDiskInfo getDiskTotal(InitialDiskInfo initialDiskInfo) {
String tableName = TableSubUtil.getTableName(DateUtils.getNowDate(), TABLE_PREFIX);
initialDiskInfo.setTableName(tableName);
InitialDiskInfo info = initialDiskInfoMapper.getDiskTotal(initialDiskInfo);
if(info != null){
long gbUnit = 1024L * 1024 * 1024;
info.setTotal(info.getTotal() / gbUnit);
}else {
return new InitialDiskInfo();
}
return info;
}
/**
* 分表查询硬盘信息
* @param queryParam
@@ -191,6 +203,7 @@ public class InitialDiskInfoServiceImpl implements IInitialDiskInfoService
condition.setTableName(tableName);
condition.setClientId(queryParam.getClientId());
condition.setName(queryParam.getName());
condition.setType(queryParam.getType());
condition.setStartTime(queryParam.getStartTime());
condition.setEndTime(queryParam.getEndTime());
return initialDiskInfoMapper.selectInitialDiskInfoListByCondition(condition).stream();
@@ -236,7 +249,34 @@ public class InitialDiskInfoServiceImpl implements IInitialDiskInfoService
extractors.put("writeBytesData", info -> info.getWriteBytes());
return EchartsDataUtils.buildEchartsData(list, InitialDiskInfo::getCreateTime, extractors);
}
@Override
public Map<String, Object> usedSpaceEcharts(InitialDiskInfo initialDiskInfo) {
initialDiskInfo.setType("HDD");
List<InitialDiskInfo> list = getDistInfoSharding(initialDiskInfo);
String unit = "KB";
if(list != null && !list.isEmpty()){
Long totalUsedSpace = 0L;
for (InitialDiskInfo diskInfo : list) {
totalUsedSpace += diskInfo.getUsedSpace();
}
Long avgUsedSpace = totalUsedSpace/list.size();
unit = SpeedUtils.determineUnitByValue(avgUsedSpace);
}
// 计算单位
if (initialDiskInfo.getUnit() != null) {
unit = initialDiskInfo.getUnit();
}
BigDecimal divisor = SpeedUtils.get1024Divisor(unit);
Map<String, Function<InitialDiskInfo, ?>> extractors = new LinkedHashMap<>();
extractors.put("usedSpace", info -> {
BigDecimal usedSpace = new BigDecimal(info.getUsedSpace());
return usedSpace.divide(divisor, 0, RoundingMode.DOWN).longValue();
});
Map<String, Object> resultMap = EchartsDataUtils.buildEchartsDataAutoPadding(
list,InitialDiskInfo::getCreateTime, extractors, initialDiskInfo.getStartTime(), initialDiskInfo.getEndTime());
resultMap.put("unit", unit);
return resultMap;
}
/**
* 获取指定服务器的磁盘名称
* @param initialDiskInfo