优化mtr探测策略

告警日志增加业务名称、告警推送是否成功字段
This commit is contained in:
gaoyutao
2025-11-27 18:36:33 +08:00
parent 31e1f7f8dc
commit 2f8fd79de5
20 changed files with 132 additions and 42 deletions
@@ -58,6 +58,12 @@ public class TableScheduleConfig {
// 每天0点执行 计算95带宽值/日
@Scheduled(cron = "0 4 0 * * ?", zone = "Asia/Shanghai")
public void calculate95BandwidthDaily() {
// 获取当月的日期范围
LocalDate lastMonth = LocalDate.now(ZoneId.of("Asia/Shanghai"));
LocalDate firstDayOfMonth = lastMonth.withDayOfMonth(1);
LocalDate lastDayOfMonth = lastMonth.withDayOfMonth(lastMonth.lengthOfMonth());
String monthlyStartTime = firstDayOfMonth.atStartOfDay().format(TIME_FORMAT);
String monthlyEndTime = lastDayOfMonth.atTime(23, 59, 59).format(TIME_FORMAT);
// 获取昨天的日期范围(北京时间)
LocalDate yesterday = LocalDate.now(ZoneId.of("Asia/Shanghai")).minusDays(1);
String dailyStartTime = yesterday.atStartOfDay().format(TIME_FORMAT); // 00:00:00
@@ -77,7 +83,11 @@ public class TableScheduleConfig {
.thenRun(() -> executeWithLog("交换机带宽1000",
() -> initialSwitchInfoDetailsService.calculateSwitch95BandwidthDaily(initialSwitchInfoDetails, dailyStartTime, dailyEndTime, "1000")))
.thenRun(() -> executeWithLog("交换机带宽1024",
() -> initialSwitchInfoDetailsService.calculateSwitch95BandwidthDaily(initialSwitchInfoDetails, dailyStartTime, dailyEndTime, "1024")));
() -> initialSwitchInfoDetailsService.calculateSwitch95BandwidthDaily(initialSwitchInfoDetails, dailyStartTime, dailyEndTime, "1024")))
.thenRun(() -> calculateSwitchMonthlyBandwidth(monthlyStartTime, monthlyEndTime, "1000"))
.thenRun(() -> calculateSwitchMonthlyBandwidth(monthlyStartTime, monthlyEndTime, "1024"))
.thenRun(() -> calculateSwitchAvgMonthlyBandwidth(monthlyStartTime, monthlyEndTime, "1000"))
.thenRun(() -> calculateSwitchAvgMonthlyBandwidth(monthlyStartTime, monthlyEndTime, "1024"));
}
// 每天5点04执行 计算金山95带宽值/日
@Scheduled(cron = "0 4 5 * * ?", zone = "Asia/Shanghai")
@@ -5,6 +5,7 @@ import com.tongran.common.core.annotation.Excel;
import com.tongran.common.core.web.domain.BaseEntity;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -224,4 +225,6 @@ public class RmResourceRegistration extends BaseEntity
private boolean businessEmpty;
/** 逻辑节点空标识 */
private boolean logicalNodeEmpty;
/** 昨日95值 */
private BigDecimal bandwidthResult;
}
@@ -191,8 +191,6 @@ public class EpsNodeBandwidthServiceImpl implements IEpsNodeBandwidthService
// 4. 安全获取求和值
BigDecimal sum95Daily = Optional.ofNullable(calculatedData.getBandwidth95Daily()).orElse(BigDecimal.ZERO);
BigDecimal sumEffectiveBandwidth95Daily = Optional.ofNullable(calculatedData.getEffectiveBandwidth95Daily()).orElse(BigDecimal.ZERO);
// 5. 计算当月天数
LocalDate monthTime;
try {
@@ -23,6 +23,8 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
@@ -68,6 +70,8 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio
setNetWorkMsg(rmResourceRegistration);
// set金山machineCode
setMachineMsg(rmResourceRegistration);
// set昨日95值
setBandwidthYestoday(rmResourceRegistration);
}
return rmResourceRegistration;
}
@@ -93,6 +97,8 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio
if(resourceRegistration.getClientId() != null){
// 网卡信息
setNetWorkMsg(resourceRegistration);
// set昨日95值
setBandwidthYestoday(resourceRegistration);
}
}
if(rmResourceRegistration.getQueryParam() != null && !rmResourceRegistration.getQueryParam().trim().isEmpty()){
@@ -297,6 +303,21 @@ public class RmResourceRegistrationServiceImpl implements IRmResourceRegistratio
registration.setMachineCode(machineMsg.getMachineCode());
}
}
public void setBandwidthYestoday(RmResourceRegistration registration){
// 查询昨日95值
String yesterday = LocalDate.now().minusDays(1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));;
Date yesterdayDate = DateUtils.parseDate(yesterday);
EpsNodeBandwidth epsNodeBandwidth = new EpsNodeBandwidth();
epsNodeBandwidth.setClientId(registration.getClientId());
epsNodeBandwidth.setBandwidthType("1");
epsNodeBandwidth.setCreateTime(yesterdayDate);
List<EpsNodeBandwidth> nodeBandwidthList = epsNodeBandwidthMapper.selectEpsNodeBandwidthList(epsNodeBandwidth);
if(nodeBandwidthList != null && !nodeBandwidthList.isEmpty()){
EpsNodeBandwidth nodeBandwidth = nodeBandwidthList.get(0);
registration.setBandwidthResult(nodeBandwidth.getBandwidthResult());
}
}
/**
* 新增资源注册
*
@@ -21,7 +21,7 @@ spring:
# 配置中心地址
server-addr: 172.16.15.52:8848
# server-addr: 172.16.15.103:8848
namespace: saas-local
namespace: saas-prod
# namespace: public
username: nacos
password: nacos
@@ -230,8 +230,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete>
<select id="calculateAvg" parameterType="EpsNodeBandwidth" resultType="EpsNodeBandwidth">
select sum(ifnull(bandwidth_95_daily,0)) bandwidth95Daily,
sum(ifnull(effective_bandwidth_95_daily,0)) effectiveBandwidth95Daily
select sum(ifnull(bandwidth_95_daily,0)) bandwidth95Daily
from eps_node_bandwidth
<where>
<if test="startTime != null">