From 25572f78045eea8d072046b98de562669e217d8d Mon Sep 17 00:00:00 2001 From: qiminbao Date: Tue, 26 Aug 2025 18:14:37 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=87=E9=9B=86=E4=BF=A1=E6=81=AF=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=97=B6=E9=97=B4=E6=88=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/tongran/agentserver/scheduler/HeartScheduler.java | 2 ++ .../server/collect/cpu/impl/CpuServiceImpl.java | 7 ++++++- .../server/collect/disk/impl/DiskServiceImpl.java | 7 ++++--- .../server/collect/docker/impl/DockerServiceImpl.java | 3 ++- .../server/collect/memory/impl/MemoryServiceImpl.java | 3 ++- .../server/collect/net/impl/NetServiceImpl.java | 2 ++ .../collect/switchboard/impl/SwitchBoardServiceImpl.java | 2 ++ .../server/collect/system/impl/SystemServiceImpl.java | 3 ++- .../com/tongran/agentserver/server/collect/vo/CpuVO.java | 3 +++ .../com/tongran/agentserver/server/collect/vo/DiskVO.java | 3 +++ .../tongran/agentserver/server/collect/vo/DockerVO.java | 3 +++ .../tongran/agentserver/server/collect/vo/MemoryVO.java | 3 +++ .../com/tongran/agentserver/server/collect/vo/NetVO.java | 3 +++ .../com/tongran/agentserver/server/collect/vo/PointVO.java | 3 +++ .../agentserver/server/collect/vo/SwitchBoardVO.java | 3 +++ .../tongran/agentserver/server/collect/vo/SystemVO.java | 4 ++-- .../server/netty/handler/NettyClientHandler.java | 4 ++++ 17 files changed, 49 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/tongran/agentserver/scheduler/HeartScheduler.java b/src/main/java/com/tongran/agentserver/scheduler/HeartScheduler.java index f7972fc..5dbd3ec 100644 --- a/src/main/java/com/tongran/agentserver/scheduler/HeartScheduler.java +++ b/src/main/java/com/tongran/agentserver/scheduler/HeartScheduler.java @@ -86,8 +86,10 @@ public class HeartScheduler { } } // 发送心跳包 + long timestamp = System.currentTimeMillis(); JSONObject object = new JSONObject(); object.put("strength","31"); + object.put("timestamp",timestamp); String clientId = AgentUtil.getMotherboardUUID(); Message message = Message.builder().clientId(clientId).dataType("HEARTBEAT").data(object.toString()).build(); // 将对象转为 JSON 字符串 标识 diff --git a/src/main/java/com/tongran/agentserver/server/collect/cpu/impl/CpuServiceImpl.java b/src/main/java/com/tongran/agentserver/server/collect/cpu/impl/CpuServiceImpl.java index bcca1a0..bf8ce53 100644 --- a/src/main/java/com/tongran/agentserver/server/collect/cpu/impl/CpuServiceImpl.java +++ b/src/main/java/com/tongran/agentserver/server/collect/cpu/impl/CpuServiceImpl.java @@ -19,7 +19,9 @@ public class CpuServiceImpl implements CpuService { @Override public CpuVO query() { - CpuVO cpuVO = CpuVO.builder().build(); + // 获取当前时间戳(毫秒级) + long timestamp = System.currentTimeMillis(); + CpuVO cpuVO = CpuVO.builder().timestamp(timestamp).build(); try { SystemInfo si = new SystemInfo(); HardwareAbstractionLayer hal = si.getHardware(); @@ -123,6 +125,9 @@ public class CpuServiceImpl implements CpuService { // duration.toHours() % 24, // duration.toMinutes() % 60, // duration.getSeconds() % 60); + + + return cpuVO; } catch (InterruptedException e) { e.printStackTrace(); diff --git a/src/main/java/com/tongran/agentserver/server/collect/disk/impl/DiskServiceImpl.java b/src/main/java/com/tongran/agentserver/server/collect/disk/impl/DiskServiceImpl.java index cf2cb46..84c84d9 100644 --- a/src/main/java/com/tongran/agentserver/server/collect/disk/impl/DiskServiceImpl.java +++ b/src/main/java/com/tongran/agentserver/server/collect/disk/impl/DiskServiceImpl.java @@ -20,12 +20,12 @@ public class DiskServiceImpl implements DiskService { List tempList = new ArrayList<>(); List resultList = new ArrayList<>(); SystemInfo si = new SystemInfo(); - + long timestamp = System.currentTimeMillis(); System.out.println("========================================================="); // 获取磁盘IO信息 System.out.println("\n=== 磁盘IO信息 ==="); for (HWDiskStore disk : si.getHardware().getDiskStores()) { - DiskVO diskVO = DiskVO.builder().build(); + DiskVO diskVO = DiskVO.builder().timestamp(timestamp).build(); diskVO.setName(disk.getName());//磁盘名称 diskVO.setSerial(disk.getSerial());//序列号 diskVO.setTotal(disk.getSize());//磁盘大小 @@ -94,6 +94,7 @@ public class DiskServiceImpl implements DiskService { @Override public List queryPointList() { + long timestamp = System.currentTimeMillis(); List list = new ArrayList<>(); SystemInfo si = new SystemInfo(); // 获取文件系统信息 @@ -106,7 +107,7 @@ public class DiskServiceImpl implements DiskService { double usagePercentage = totalSpace > 0 ? (double) (totalSpace - freeSpace) / totalSpace * 100 : 0; - PointVO pointVO = PointVO.builder().build(); + PointVO pointVO = PointVO.builder().timestamp(timestamp).build(); pointVO.setMount(fs.getMount());//挂载点 pointVO.setVfsType(fs.getType());//文件系统类型 pointVO.setVfsTotal(totalSpace);//总空间 diff --git a/src/main/java/com/tongran/agentserver/server/collect/docker/impl/DockerServiceImpl.java b/src/main/java/com/tongran/agentserver/server/collect/docker/impl/DockerServiceImpl.java index d97ab4c..6a3e13c 100644 --- a/src/main/java/com/tongran/agentserver/server/collect/docker/impl/DockerServiceImpl.java +++ b/src/main/java/com/tongran/agentserver/server/collect/docker/impl/DockerServiceImpl.java @@ -47,8 +47,9 @@ public class DockerServiceImpl implements DockerService { // 打印容器信息 System.out.println("运行中的Docker容器:"); System.out.println("容器ID\t\t镜像\t\t状态\t\t名称"); + long timestamp = System.currentTimeMillis(); for (Container container : containers) { - DockerVO dockerVO = DockerVO.builder().build(); + DockerVO dockerVO = DockerVO.builder().timestamp(timestamp).build(); String id = container.getId().substring(0, 12); // 只显示短ID String image = container.getImage().length() > 15 ? container.getImage().substring(0, 15) + "..." : container.getImage(); diff --git a/src/main/java/com/tongran/agentserver/server/collect/memory/impl/MemoryServiceImpl.java b/src/main/java/com/tongran/agentserver/server/collect/memory/impl/MemoryServiceImpl.java index 20cf516..402c2ad 100644 --- a/src/main/java/com/tongran/agentserver/server/collect/memory/impl/MemoryServiceImpl.java +++ b/src/main/java/com/tongran/agentserver/server/collect/memory/impl/MemoryServiceImpl.java @@ -14,7 +14,8 @@ import java.util.Map; public class MemoryServiceImpl implements MemoryService { @Override public MemoryVO query() { - MemoryVO memoryVO = MemoryVO.builder().build(); + long timestamp = System.currentTimeMillis(); + MemoryVO memoryVO = MemoryVO.builder().timestamp(timestamp).build(); try { Map memInfo = parseMemInfo(); diff --git a/src/main/java/com/tongran/agentserver/server/collect/net/impl/NetServiceImpl.java b/src/main/java/com/tongran/agentserver/server/collect/net/impl/NetServiceImpl.java index 8f66c7c..32717d3 100644 --- a/src/main/java/com/tongran/agentserver/server/collect/net/impl/NetServiceImpl.java +++ b/src/main/java/com/tongran/agentserver/server/collect/net/impl/NetServiceImpl.java @@ -18,6 +18,7 @@ import java.util.concurrent.TimeUnit; public class NetServiceImpl implements NetService { @Override public List query() { + long timestamp = System.currentTimeMillis(); List list = new ArrayList<>(); try { SystemInfo si = new SystemInfo(); @@ -75,6 +76,7 @@ public class NetServiceImpl implements NetService { netVO.setOutDropped(net.getCollisions());//出站丢包 netVO.setInSpeed(bytesRecv);//接收流量 netVO.setOutSpeed(bytesSent);//发送流量 + netVO.setTimestamp(timestamp); list.add(netVO); } } diff --git a/src/main/java/com/tongran/agentserver/server/collect/switchboard/impl/SwitchBoardServiceImpl.java b/src/main/java/com/tongran/agentserver/server/collect/switchboard/impl/SwitchBoardServiceImpl.java index dae6f02..57f588e 100644 --- a/src/main/java/com/tongran/agentserver/server/collect/switchboard/impl/SwitchBoardServiceImpl.java +++ b/src/main/java/com/tongran/agentserver/server/collect/switchboard/impl/SwitchBoardServiceImpl.java @@ -106,6 +106,7 @@ public class SwitchBoardServiceImpl implements SwitchBoardService { System.out.printf("%-5s %-15s %-10s %-15s %-8s %-12s %-12s%n", "Index", "Name", "Type", "Speed", "Status", "InBytes", "OutBytes"); List list = new ArrayList<>(); + long timestamp = System.currentTimeMillis(); for (int i = 1; i <= ifNumber; i++) { pdu = new PDU(); for (String baseOID : ifOIDs) { @@ -128,6 +129,7 @@ public class SwitchBoardServiceImpl implements SwitchBoardService { .status(status) .inBytes(inBytes) .outBytes(outBytes) + .timestamp(timestamp) .build(); list.add(boardVO); System.out.printf("%-5d %-15s %-10s %-15s %-8s %-12d %-12d%n", diff --git a/src/main/java/com/tongran/agentserver/server/collect/system/impl/SystemServiceImpl.java b/src/main/java/com/tongran/agentserver/server/collect/system/impl/SystemServiceImpl.java index 3372fc8..4cfe40d 100644 --- a/src/main/java/com/tongran/agentserver/server/collect/system/impl/SystemServiceImpl.java +++ b/src/main/java/com/tongran/agentserver/server/collect/system/impl/SystemServiceImpl.java @@ -18,7 +18,8 @@ import java.time.format.DateTimeFormatter; public class SystemServiceImpl implements SystemService { @Override public SystemVO query() { - SystemVO systemVO = SystemVO.builder().build(); + long timestamp = System.currentTimeMillis(); + SystemVO systemVO = SystemVO.builder().timestamp(timestamp).build(); try { SystemInfo si = new SystemInfo(); HardwareAbstractionLayer hal = si.getHardware(); diff --git a/src/main/java/com/tongran/agentserver/server/collect/vo/CpuVO.java b/src/main/java/com/tongran/agentserver/server/collect/vo/CpuVO.java index e1e639b..cc5521e 100644 --- a/src/main/java/com/tongran/agentserver/server/collect/vo/CpuVO.java +++ b/src/main/java/com/tongran/agentserver/server/collect/vo/CpuVO.java @@ -52,6 +52,9 @@ public class CpuVO implements Serializable { @Schema(description = "CPU用户进程所花费的时间") private long user; + @Schema(description = "时间戳") + private long timestamp; + } diff --git a/src/main/java/com/tongran/agentserver/server/collect/vo/DiskVO.java b/src/main/java/com/tongran/agentserver/server/collect/vo/DiskVO.java index 2bd6beb..bc36691 100644 --- a/src/main/java/com/tongran/agentserver/server/collect/vo/DiskVO.java +++ b/src/main/java/com/tongran/agentserver/server/collect/vo/DiskVO.java @@ -43,5 +43,8 @@ public class DiskVO implements Serializable { @Schema(description = "磁盘读取字节") private long readBytes; + @Schema(description = "时间戳") + private long timestamp; + } diff --git a/src/main/java/com/tongran/agentserver/server/collect/vo/DockerVO.java b/src/main/java/com/tongran/agentserver/server/collect/vo/DockerVO.java index 5d9fbb7..2cfb67d 100644 --- a/src/main/java/com/tongran/agentserver/server/collect/vo/DockerVO.java +++ b/src/main/java/com/tongran/agentserver/server/collect/vo/DockerVO.java @@ -37,5 +37,8 @@ public class DockerVO implements Serializable { @Schema(description = "容器网络发送速率") private String netOutSpeed; + @Schema(description = "时间戳") + private long timestamp; + } diff --git a/src/main/java/com/tongran/agentserver/server/collect/vo/MemoryVO.java b/src/main/java/com/tongran/agentserver/server/collect/vo/MemoryVO.java index d5aa5a7..0f51b11 100644 --- a/src/main/java/com/tongran/agentserver/server/collect/vo/MemoryVO.java +++ b/src/main/java/com/tongran/agentserver/server/collect/vo/MemoryVO.java @@ -34,4 +34,7 @@ public class MemoryVO implements Serializable { @Schema(description = "总内存") private long total; + @Schema(description = "时间戳") + private long timestamp; + } diff --git a/src/main/java/com/tongran/agentserver/server/collect/vo/NetVO.java b/src/main/java/com/tongran/agentserver/server/collect/vo/NetVO.java index 1a2672e..bfdbc89 100644 --- a/src/main/java/com/tongran/agentserver/server/collect/vo/NetVO.java +++ b/src/main/java/com/tongran/agentserver/server/collect/vo/NetVO.java @@ -46,4 +46,7 @@ public class NetVO implements Serializable { // @Schema(description = "接收速度") // private String speed; + @Schema(description = "时间戳") + private long timestamp; + } diff --git a/src/main/java/com/tongran/agentserver/server/collect/vo/PointVO.java b/src/main/java/com/tongran/agentserver/server/collect/vo/PointVO.java index c8a5049..04e2fe7 100644 --- a/src/main/java/com/tongran/agentserver/server/collect/vo/PointVO.java +++ b/src/main/java/com/tongran/agentserver/server/collect/vo/PointVO.java @@ -30,4 +30,7 @@ public class PointVO implements Serializable { @Schema(description = "空间利用率") private double vfsUtil; + + @Schema(description = "时间戳") + private long timestamp; } diff --git a/src/main/java/com/tongran/agentserver/server/collect/vo/SwitchBoardVO.java b/src/main/java/com/tongran/agentserver/server/collect/vo/SwitchBoardVO.java index ded7287..783a2d7 100644 --- a/src/main/java/com/tongran/agentserver/server/collect/vo/SwitchBoardVO.java +++ b/src/main/java/com/tongran/agentserver/server/collect/vo/SwitchBoardVO.java @@ -31,5 +31,8 @@ public class SwitchBoardVO implements Serializable { @Schema(description = "发送流量") private long outBytes; + @Schema(description = "时间戳") + private long timestamp; + } diff --git a/src/main/java/com/tongran/agentserver/server/collect/vo/SystemVO.java b/src/main/java/com/tongran/agentserver/server/collect/vo/SystemVO.java index 4622719..ac13940 100644 --- a/src/main/java/com/tongran/agentserver/server/collect/vo/SystemVO.java +++ b/src/main/java/com/tongran/agentserver/server/collect/vo/SystemVO.java @@ -48,8 +48,8 @@ public class SystemVO implements Serializable { private String uuid; -// @Schema(description = "时间戳") -// private long timeStamp; + @Schema(description = "时间戳") + private long timestamp; } diff --git a/src/main/java/com/tongran/agentserver/server/netty/handler/NettyClientHandler.java b/src/main/java/com/tongran/agentserver/server/netty/handler/NettyClientHandler.java index f28c287..645c793 100644 --- a/src/main/java/com/tongran/agentserver/server/netty/handler/NettyClientHandler.java +++ b/src/main/java/com/tongran/agentserver/server/netty/handler/NettyClientHandler.java @@ -60,8 +60,10 @@ public class NettyClientHandler extends SimpleChannelInboundHandler { IdleStateEvent event = (IdleStateEvent) evt; if (event.state() == IdleState.WRITER_IDLE) { // 发送心跳包 + long timestamp = System.currentTimeMillis(); JSONObject object = new JSONObject(); object.put("strength","31"); + object.put("timestamp",timestamp); String clientId = AgentUtil.getMotherboardUUID(); Message message = Message.builder().clientId(clientId).dataType("HEARTBEAT").data(object.toString()).build(); // 将对象转为 JSON 字符串 @@ -86,9 +88,11 @@ public class NettyClientHandler extends SimpleChannelInboundHandler { retryCount = 0; // 连接成功时重置重试次数 // 连接建立后可以发送登录认证消息 + long timestamp = System.currentTimeMillis(); String clientId = AgentUtil.getMotherboardUUID(); JSONObject object = new JSONObject(); object.put("uuid",clientId); + object.put("timestamp",timestamp); Message message = Message.builder().clientId(clientId).dataType("LOGIN").data(object.toString()).build(); // 将对象转为 JSON 字符串 String json = "agent-tcp:"+JSON.toJSONString(message)+"@tong-ran";