维护初始SQL文件和对应逻辑

This commit is contained in:
2023-03-23 18:23:04 +08:00
parent d274bb1d7e
commit 4172afa305
8 changed files with 460 additions and 72 deletions
@@ -56,7 +56,7 @@ public class CheckInstancesStatus {
* 检查实例状态并且发送对应的提醒
*/
@SneakyThrows
@Scheduled(cron = "* 0/1 * * * ?")
@Scheduled(cron = "* 0/2 * * * ?")
public void checkInstancesStatus() {
List<Container> containers = containerService.list();
@@ -9,9 +9,10 @@ import com.mzaxd.noodles.mapper.EveryDayDataMapper;
import com.mzaxd.noodles.service.EveryDayDataService;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.ZoneId;
import java.util.*;
/**
* @author 13439
@@ -59,7 +60,22 @@ public class EveryDayDataServiceImpl extends ServiceImpl<EveryDayDataMapper, Eve
@Override
public EveryDayData getYesterdayData() {
return getOne(getYesterdayLambdaWrapper());
EveryDayData everyData = getOne(getYesterdayLambdaWrapper());
if (Objects.nonNull(everyData)) {
return everyData;
} else {
everyData = createDefaultEverydayData();
}
return everyData;
}
public EveryDayData createDefaultEverydayData() {
EveryDayData everyDayData = new EveryDayData();
everyDayData.setHostCount(0).setHostOnlineCount(0).setHostOfflineCount(0).setHostUnknownCount(0)
.setVmCount(0).setVmOnlineCount(0).setVmOfflineCount(0).setVmUnknownCount(0)
.setContainerCount(0).setContainerOnlineCount(0).setContainerOfflineCount(0).setContainerUnknownCount(0)
.setAuditCount(0).setServirCount(0);
return everyDayData;
}
private LambdaQueryWrapper<EveryDayData> getLastWeekLambdaWrapper() {
@@ -71,9 +87,32 @@ public class EveryDayDataServiceImpl extends ServiceImpl<EveryDayDataMapper, Eve
@Override
public List<EveryDayData> getLastWeekData() {
return list(getLastWeekLambdaWrapper());
return getLastDate(6);
}
public List<EveryDayData> getLastDate(int minusDay) {
// 今天的前一天是截止日期
LocalDate end = LocalDate.now().minusDays(1);
// 七天前是起始日期
LocalDate start = end.minusDays(minusDay);
List<EveryDayData> list = list(getLastWeekLambdaWrapper());
// 如果不足7条,则补充空数据
int missingDays = 7 - list.size();
if (missingDays > 0) {
List<EveryDayData> emptyData = new ArrayList<>();
for (int i = 0; i < missingDays; i++) {
EveryDayData data = createDefaultEverydayData();
data.setCreateTime(Date.from(start.plusDays(i).atStartOfDay().atZone(ZoneId.systemDefault()).toInstant()));
emptyData.add(data);
}
emptyData.addAll(list);
list = emptyData;
}
return list;
}
private LambdaQueryWrapper<EveryDayData> getLastSixDayLambdaWrapper() {
LambdaQueryWrapper<EveryDayData> everyDayDataLambdaQueryWrapper = new LambdaQueryWrapper<>();
everyDayDataLambdaQueryWrapper.ge(EveryDayData::getCreateTime, DateUtil.beginOfDay(DateUtil.offsetDay(DateUtil.date(), -6)));
@@ -83,7 +122,7 @@ public class EveryDayDataServiceImpl extends ServiceImpl<EveryDayDataMapper, Eve
@Override
public List<EveryDayData> getLastSixDayData() {
return list(getLastSixDayLambdaWrapper());
return getLastDate(5);
}
}
@@ -133,25 +133,36 @@ public class HostDetectorServiceImpl extends ServiceImpl<HostDetectorMapper, Hos
Double memoryFree = 0.0;
//已使用内存
Double memoryUsed = 0.0;
Map<Long, DynamicData> dynamicData = getDynamicData(getAllALiveDetectors());
for (DynamicData data : dynamicData.values()) {
count++;
memoryFree += data.getMemFree();
memoryUsed += data.getMemUsed();
Double total = data.getMemFree() + data.getMemUsed();
memoryTotal += total.intValue();
double memoryUsedRate = memoryUsed / memoryTotal;
memoryTotalUsedRate += memoryUsedRate;
if (memoryUsedRate > memoryUsedMaxRate) {
memoryUsedMaxRate = memoryUsedRate;
Map<Long, DynamicData> dynamicData;
try {
dynamicData = getDynamicData(getAllALiveDetectors());
for (DynamicData data : dynamicData.values()) {
count++;
memoryFree += data.getMemFree();
memoryUsed += data.getMemUsed();
Double total = data.getMemFree() + data.getMemUsed();
memoryTotal += total.intValue();
double memoryUsedRate = memoryUsed / memoryTotal;
memoryTotalUsedRate += memoryUsedRate;
if (memoryUsedRate > memoryUsedMaxRate) {
memoryUsedMaxRate = memoryUsedRate;
}
}
memoryUsedAvgRate = memoryTotalUsedRate / count;
result.put("memoryTotal", memoryTotal);
result.put("memoryFree", memoryFree);
result.put("memoryUsed", memoryUsed);
result.put("memoryUsedMaxRate", NumberUtil.round(memoryUsedMaxRate, 4));
result.put("memoryUsedAvgRate", NumberUtil.round(memoryUsedAvgRate, 4));
} catch (Exception e) {
e.printStackTrace();
result.put("memoryTotal", 0);
result.put("memoryFree", 0);
result.put("memoryUsed", 0);
result.put("memoryUsedMaxRate", 0);
result.put("memoryUsedAvgRate", 0);
}
memoryUsedAvgRate = memoryTotalUsedRate / count;
result.put("memoryTotal", memoryTotal);
result.put("memoryFree", memoryFree);
result.put("memoryUsed", memoryUsed);
result.put("memoryUsedMaxRate", NumberUtil.round(memoryUsedMaxRate, 4));
result.put("memoryUsedAvgRate", NumberUtil.round(memoryUsedAvgRate, 4));
return ResponseResult.okResult(result);
}
+4 -25
View File
@@ -7,42 +7,21 @@ spring:
username: root
password: rootroot
driver-class-name: com.mysql.cj.jdbc.Driver
servlet:
multipart:
max-file-size: 2MB
max-request-size: 5MB
#Redis配置
redis:
host: 192.168.1.103
database: 2
database: 5
#RabbitMq配置
rabbitmq:
host: 192.168.1.103
port: 5672
username: mzaxd
password: 200712
#配置SpringBootAdmin
boot:
admin:
client:
url: http://192.168.1.103:8324 #配置 Admin Server的地址
instance:
service-host-type: ip
# 开放健康检查接口
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: ALWAYS
mybatis-plus:
#打印SQL日志 建议生产环境关掉 否则日志爆炸
# configuration:
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
db-config:
logic-delete-field: delFlag
@@ -56,5 +35,5 @@ pagehelper:
page-size-zero: true
logging:
level:
com.mzaxd.noodles: info
com.mzaxd.noodles: debug
+4 -21
View File
@@ -7,10 +7,6 @@ spring:
username: root
password: rootroot
driver-class-name: com.mysql.cj.jdbc.Driver
servlet:
multipart:
max-file-size: 2MB
max-request-size: 5MB
#Redis配置
redis:
host: 192.168.1.103
@@ -21,22 +17,6 @@ spring:
port: 5672
username: mzaxd
password: 200712
#配置SpringBootAdmin
boot:
admin:
client:
url: http://192.168.1.103:8324 #配置 Admin Server的地址
instance:
service-host-type: ip #显示ip地址而不是默认的主机名
# 开放健康检查接口
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: ALWAYS
mybatis-plus:
#打印SQL日志 建议生产环境关掉 否则日志爆炸
@@ -52,4 +32,7 @@ pagehelper:
auto-dialect: on
reasonable: true
support-methods-arguments: true
page-size-zero: true
page-size-zero: true
logging:
level:
com.mzaxd.noodles: info
+1 -1
View File
@@ -1,3 +1,3 @@
spring:
profiles:
active: prod
active: dev
@@ -22,6 +22,7 @@ import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
@@ -59,6 +60,9 @@ class NoodlesApplicationTests {
@Resource
private HostDetectorService hostDetectorService;
@Resource
private PasswordEncoder passwordEncoder;
@Test
void contextLoads() {
try {
@@ -696,7 +700,7 @@ class NoodlesApplicationTests {
});
}
// Shutdown the thread pool and wait for all tasks to complete
// Shutdown the thread pool and wait for all tasks to complete
executor.shutdown();
executor.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);
@@ -717,4 +721,11 @@ class NoodlesApplicationTests {
set.add("1");
redisCache.setCacheSet(RedisConstant.NOTIFY_HOST_IDS, set);
}
@Test
public void passwordEncode() {
String encodePassword = passwordEncoder.encode("changeme");
System.out.println(encodePassword);
}
}