服务器管理添加标签功能。

优化mtr探测结果存储。
This commit is contained in:
gaoyutao
2025-11-25 18:18:51 +08:00
parent a0b0b57110
commit afbf1eead0
24 changed files with 265 additions and 548 deletions
@@ -114,13 +114,13 @@ public class RmMtrClientRegistrationController extends BaseController
return success(list);
}
/**
* 查询MTR客户端注册列表
* 查询所有标识
*/
@RequiresPermissions("mtragent:mtrClientRegistration:list")
@PostMapping("/getAllLogicalNode")
public AjaxResult getAllLogicalNode(@RequestBody RmMtrClientRegistration rmMtrClientRegistration)
@GetMapping("/getAllLogicalNode")
public AjaxResult getAllLogicalNode()
{
List<RmMtrClientRegistration> list = rmMtrClientRegistrationService.getAllLogicalNode(rmMtrClientRegistration);
List<RmMtrClientRegistration> list = rmMtrClientRegistrationService.getAllLogicalNode();
return success(list);
}
/**
@@ -1,9 +1,8 @@
package com.tongran.mtragent.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.tongran.common.core.annotation.Excel;
import com.tongran.common.core.web.domain.BaseEntity;
import lombok.Data;
/**
* mtr探测丢包clinetId记录对象 all_mtr_client
@@ -11,6 +10,7 @@ import com.tongran.common.core.web.domain.BaseEntity;
* @author gyt
* @date 2025-11-24
*/
@Data
public class AllMtrClient extends BaseEntity
{
private static final long serialVersionUID = 1L;
@@ -29,58 +29,7 @@ public class AllMtrClient extends BaseEntity
/** 公网IP地址 */
@Excel(name = "公网IP地址")
private String publicIp;
/** 失败标志 0成功 1失败 */
private Integer failFlag;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setMtrClientId(String mtrClientId)
{
this.mtrClientId = mtrClientId;
}
public String getMtrClientId()
{
return mtrClientId;
}
public void setClientId(String clientId)
{
this.clientId = clientId;
}
public String getClientId()
{
return clientId;
}
public void setPublicIp(String publicIp)
{
this.publicIp = publicIp;
}
public String getPublicIp()
{
return publicIp;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("mtrClientId", getMtrClientId())
.append("clientId", getClientId())
.append("publicIp", getPublicIp())
.append("createTime", getCreateTime())
.append("updateTime", getUpdateTime())
.append("createBy", getCreateBy())
.append("updateBy", getUpdateBy())
.toString();
}
}
@@ -89,4 +89,6 @@ public class RmMtrClientRegistration extends BaseEntity
private String networkInfo;
/** 部署设备 */
private String mtrClientIds;
/** 多条件 */
private String queryName;
}
@@ -93,27 +93,32 @@ public class MessageHandler {
List<RmMtrProbeResult> rmMtrProbeResultList = new ArrayList<>();
List<AllMtrClient> allMtrClientList = new ArrayList<>();
for (MtrResultVo mtrResultVo : mtrResultVoList) {
if(mtrResultVo.getFinalLossPercent() != -1.0){
// 时间戳转换
long timestamp = mtrResultVo.getTimestamp();
long millis = timestamp * 1000;
Date createTime = new Date(millis / 1000 * 1000); // 去除毫秒
RmMtrProbeResult rmMtrProbeResult = new RmMtrProbeResult();
rmMtrProbeResult.setCreateTime(createTime);
rmMtrProbeResult.setClientId(mtrResultVo.getClientId());
rmMtrProbeResult.setMtrClientId(mtrClientId);
rmMtrProbeResult.setPublicIp(mtrResultVo.getTargetIp());
rmMtrProbeResult.setPacketLossRate(new BigDecimal(mtrResultVo.getFinalLossPercent()));
rmMtrProbeResultList.add(rmMtrProbeResult);
AllMtrClient allMtrClient = new AllMtrClient();
BeanUtils.copyProperties(rmMtrProbeResult, allMtrClient);
allMtrClientList.add(allMtrClient);
// 时间戳转换
long timestamp = mtrResultVo.getTimestamp();
long millis = timestamp * 1000;
Date createTime = new Date(millis / 1000 * 1000); // 去除毫秒
RmMtrProbeResult rmMtrProbeResult = new RmMtrProbeResult();
rmMtrProbeResult.setCreateTime(createTime);
rmMtrProbeResult.setClientId(mtrResultVo.getClientId());
rmMtrProbeResult.setMtrClientId(mtrClientId);
rmMtrProbeResult.setPublicIp(mtrResultVo.getTargetIp());
rmMtrProbeResult.setPacketLossRate(new BigDecimal(mtrResultVo.getFinalLossPercent()));
rmMtrProbeResultList.add(rmMtrProbeResult);
AllMtrClient allMtrClient = new AllMtrClient();
BeanUtils.copyProperties(rmMtrProbeResult, allMtrClient);
if(mtrResultVo.getFinalLossPercent() == -1.0){
allMtrClient.setFailFlag(1);
}else{
log.debug("探测失败,失败原因:{}", mtrResultVo.getErrorMsg());
allMtrClient.setFailFlag(0);
}
allMtrClientList.add(allMtrClient);
}
RmMtrProbeResult insertData = new RmMtrProbeResult();
insertData.setList(rmMtrProbeResultList);
if(rmMtrProbeResultList.isEmpty()){
log.warn("探测失败,原因可能为mtr命令没安装");
return;
}
// 结果批量入库
rmMtrProbeResultService.batchInsertRmMtrProbeResult(insertData);
// 记录下发策略的clientId
@@ -70,10 +70,9 @@ public interface IRmMtrClientRegistrationService
/**
* 获取所有标识
* @param rmMtrClientRegistration
* @return
*/
List<RmMtrClientRegistration> getAllLogicalNode(RmMtrClientRegistration rmMtrClientRegistration);
List<RmMtrClientRegistration> getAllLogicalNode();
/**
* 根据mtrClientId查询包含的clientId
* @param rmMtrClientRegistration
@@ -215,8 +215,8 @@ public class RmMtrClientRegistrationServiceImpl implements IRmMtrClientRegistrat
}
@Override
public List<RmMtrClientRegistration> getAllLogicalNode(RmMtrClientRegistration rmMtrClientRegistration) {
List<RmMtrClientRegistration> list = rmMtrClientRegistrationMapper.getAllLogicalNode(rmMtrClientRegistration);
public List<RmMtrClientRegistration> getAllLogicalNode() {
List<RmMtrClientRegistration> list = rmMtrClientRegistrationMapper.getAllLogicalNode(new RmMtrClientRegistration());
return list;
}