1、增加磁盘HDD类型已用空间图形接口。
2、增加磁盘HDD类型总空间字段计算。 3、增加硬盘设备监控列表接口。
This commit is contained in:
+1
-1
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
+10
@@ -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);
|
||||
}
|
||||
|
||||
+8
@@ -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);
|
||||
}
|
||||
|
||||
+9
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
+10
-8
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
+45
-5
@@ -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
|
||||
|
||||
@@ -23,7 +23,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
|
||||
<select id="selectAllDiskNameList" parameterType="AllDiskName" resultMap="AllDiskNameResult">
|
||||
<include refid="selectAllDiskNameVo"/>
|
||||
<where>
|
||||
<where>
|
||||
<if test="clientId != null and clientId != ''"> and client_id = #{clientId}</if>
|
||||
<if test="name != null and name != ''"> and name = #{name}</if>
|
||||
<if test="status != null "> and status = #{status}</if>
|
||||
@@ -126,4 +126,37 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
)
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<select id="selectDiskInfoList" parameterType="AllDiskName" resultType="AllDiskName">
|
||||
SELECT
|
||||
a.id,
|
||||
a.client_id as clientId,
|
||||
a.name,
|
||||
a.status,
|
||||
a.read_iops as readIops,
|
||||
a.write_iops as writeIops,
|
||||
a.create_time as createTime,
|
||||
a.update_time as updateTime,
|
||||
b.serial,
|
||||
b.total,
|
||||
b.write_speed as writeSpeed,
|
||||
b.read_speed as readSpeed,
|
||||
b.type,
|
||||
b.used_space as usedSpace
|
||||
FROM all_disk_name a
|
||||
LEFT JOIN (
|
||||
SELECT client_id, name, MAX(create_time) as max_create_time
|
||||
FROM ${tableName}
|
||||
GROUP BY client_id, name
|
||||
) latest ON a.client_id = latest.client_id AND a.name = latest.name
|
||||
LEFT JOIN ${tableName} b
|
||||
ON latest.client_id = b.client_id
|
||||
AND latest.name = b.name
|
||||
AND latest.max_create_time = b.create_time
|
||||
<where>
|
||||
<if test="clientId != null">
|
||||
AND a.client_id = #{clientId}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -213,4 +213,16 @@
|
||||
</where>
|
||||
group by name
|
||||
</select>
|
||||
<select id="getDiskTotal" parameterType="InitialDiskInfo" resultMap="InitialDiskInfoResult">
|
||||
select sum(t2.total) as total
|
||||
from ${tableName} t2
|
||||
inner join (
|
||||
select client_id, type, max(create_time) as latest_time
|
||||
from ${tableName}
|
||||
where client_id = #{clientId} and type = #{type}
|
||||
group by client_id, type
|
||||
) t1 on t2.client_id = t1.client_id
|
||||
and t2.type = t1.type
|
||||
and t2.create_time = t1.latest_time
|
||||
</select>
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user