交换机管理图形监控只展示端口为up的。

优化frp信息上报
This commit is contained in:
gaoyutao
2025-12-24 19:55:47 +08:00
parent 5eda46802e
commit 30373bbb1e
13 changed files with 120 additions and 44 deletions
@@ -36,6 +36,9 @@ public class RmFrpcConfigManage extends BaseEntity
/** FRPC远程端口 */
@Excel(name = "FRPC远程端口")
private String frpcRemotePort;
/** FRPC远程端口 */
@Excel(name = "FRPC远程端口")
private String frpcType;
/** FRPC本地端口 */
@Excel(name = "FRPC本地端口")
@@ -143,8 +143,10 @@ public class MessageHandler {
frpcData.setFrpcLocalPort(rsp.getLocalPort());
frpcData.setFrpcLocalIp(rsp.getLocalIP());
frpcData.setFrpcCreateTime(createTime);
frpcData.setCreateTime(DateUtils.getNowDate());
frpcData.setFrpcConnectionStatus(2L);
frpcData.setFrpcRemotePort(rsp.getRemotePort());
frpcData.setFrpcType(rsp.getType());
frpcData.setFrpcServerAddr(rsp.getServerAddr());
frpcData.setFrpcServerPort(rsp.getServerPort());
rmFrpcConfigManageService.insertRmFrpcConfigManage(frpcData);
@@ -157,13 +159,14 @@ public class MessageHandler {
RmFrpcConfigManage frpcData = new RmFrpcConfigManage();
frpcData.setClientId(message.getClientId());
frpcData.setFrpcName(rsp.getName());
frpcData.setFrpcType(rsp.getType());
frpcData.setFrpcStatus(rsp.getIsRunning());
frpcData.setFrpcLocalPort(rsp.getLocalPort());
frpcData.setFrpcLocalIp(rsp.getLocalIP());
frpcData.setFrpcCreateTime(createTime);
frpcData.setFrpcRemotePort(rsp.getRemotePort());
frpcData.setFrpcServerAddr(rsp.getServerAddr());
frpcData.setFrpcServerPort(rsp.getServerPort());
frpcData.setUpdateTime(DateUtils.getNowDate());
rmFrpcConfigManageService.insertRmFrpcConfigManage(frpcData);
} else{
if(rsp.getRemotePort() != null){
@@ -67,4 +67,6 @@ public interface InitialSwitchOtherCollectDataMapper
* @return
*/
Map getSwitchMonitorMsg(InitialSwitchOtherCollectData initialSwitchOtherCollectData);
void deleteInitialSwitchOtherCollectData(InitialSwitchOtherCollectData deleteData);
}
@@ -88,4 +88,6 @@ public interface IInitialSwitchOtherCollectDataService
* @return
*/
Map<String, Object> getSwitchMemUseMsg(InitialSwitchOtherCollectData initialSwitchOtherCollectData);
void deleteInitialSwitchOtherCollectData(InitialSwitchOtherCollectData deleteData);
}
@@ -196,4 +196,9 @@ public class InitialSwitchOtherCollectDataServiceImpl implements IInitialSwitchO
return EchartsDataUtils.buildEchartsData(list,InitialSwitchOtherCollectData::getCreateTime, extractors);
}
@Override
public void deleteInitialSwitchOtherCollectData(InitialSwitchOtherCollectData deleteData) {
initialSwitchOtherCollectDataMapper.deleteInitialSwitchOtherCollectData(deleteData);
}
}
@@ -115,7 +115,6 @@ public class RmFrpcConfigManageServiceImpl implements IRmFrpcConfigManageService
@Override
public int insertRmFrpcConfigManage(RmFrpcConfigManage rmFrpcConfigManage)
{
rmFrpcConfigManage.setCreateTime(DateUtils.getNowDate());
int rows = rmFrpcConfigManageMapper.insertRmFrpcConfigManage(rmFrpcConfigManage);
return 1;
}
@@ -18,10 +18,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -93,7 +90,7 @@ public class ProcessSwitchCollectDataService {
// 设置基本信息
long timestamp = switchDataVo.getTimestamp();
Date createTime = new Date(timestamp * 1000 / 1000 * 1000);
Date createTime = new Date(timestamp * 1000);
insertData.setClientId(clientId);
insertData.setCreateTime(createTime);
@@ -104,6 +101,9 @@ public class ProcessSwitchCollectDataService {
if (jsonNode.isArray() && jsonNode.size() > 0) {
JsonNode firstElement = jsonNode.get(0);
String collectType = null;
String collectValue = null;
if (firstElement.isTextual()) {
// 二次解析JSON字符串
JsonNode innerJsonNode = objectMapper.readTree(firstElement.asText());
@@ -112,32 +112,51 @@ public class ProcessSwitchCollectDataService {
Iterator<Map.Entry<String, JsonNode>> fields = innerJsonNode.fields();
if (fields.hasNext()) {
Map.Entry<String, JsonNode> entry = fields.next();
String fieldName = entry.getKey();
String fieldValue = entry.getValue().asText();
insertData.setCollectType(fieldName);
if (!"null".equals(fieldValue)) {
insertData.setCollectValue(fieldValue);
insertInitialSwitchOtherInfo.insertInitialSwitchOtherCollectData(insertData);
}
collectType = entry.getKey();
collectValue = entry.getValue().asText();
}
}
}else{
if (firstElement.isObject()) {
Iterator<Map.Entry<String, JsonNode>> fields = firstElement.fields();
if (fields.hasNext()) {
Map.Entry<String, JsonNode> entry = fields.next();
String fieldName = entry.getKey();
String fieldValue = entry.getValue().asText();
insertData.setCollectType(fieldName);
if (!"null".equals(fieldValue)) {
insertData.setCollectValue(fieldValue);
insertInitialSwitchOtherInfo.insertInitialSwitchOtherCollectData(insertData);
}
}
} else if (firstElement.isObject()) {
Iterator<Map.Entry<String, JsonNode>> fields = firstElement.fields();
if (fields.hasNext()) {
Map.Entry<String, JsonNode> entry = fields.next();
collectType = entry.getKey();
collectValue = entry.getValue().asText();
}
}
if (collectType != null && !"null".equals(collectValue)) {
// 定义需要先删后插的collectType列表
List<String> specialCollectTypes = Arrays.asList(
"sysDescr",
"sysObjectID",
"sysUpTime",
"sysContact",
"sysName",
"sysLocation",
"hwStackSystemMac",
"entIndex",
"entPhysicalName",
"entPhysicalSoftwareRev"
);
// 如果collectType在特殊列表中,先删除相同clientId和时间范围内的记录
if (specialCollectTypes.contains(collectType)) {
// 创建删除条件对象
InitialSwitchOtherCollectData deleteData = new InitialSwitchOtherCollectData();
deleteData.setClientId(clientId);
deleteData.setCollectType(collectType);
deleteData.setCreateTime(createTime);
// 调用删除方法
insertInitialSwitchOtherInfo.deleteInitialSwitchOtherCollectData(deleteData);
}
// 插入新数据
insertData.setCollectType(collectType);
insertData.setCollectValue(collectValue);
insertInitialSwitchOtherInfo.insertInitialSwitchOtherCollectData(insertData);
}
}
} catch (Exception e) {