[ agent ] [ status ] - accomplish agent status - 2

This commit is contained in:
zeaslity
2023-01-04 17:21:57 +08:00
parent 69eb330f2f
commit 3326196ebc
7 changed files with 75 additions and 23 deletions

View File

@@ -1,14 +1,15 @@
package io.wdd.agent.status.redisReporter; package io.wdd.agent.status;
import io.wdd.agent.status.hardware.cpu.CpuInfo; import io.wdd.agent.status.hardware.CpuInfo;
import io.wdd.agent.status.hardware.memory.MemoryInfo; import io.wdd.agent.status.hardware.MemoryInfo;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder; import lombok.experimental.SuperBuilder;
import oshi.hardware.HWDiskStore; import oshi.hardware.HWDiskStore;
import oshi.hardware.NetworkIF; import oshi.hardware.NetworkIF;
import oshi.software.os.OperatingSystem;
import java.util.List; import java.util.List;
@@ -33,4 +34,6 @@ public class AgentStatus {
List<NetworkIF> networkInfo; List<NetworkIF> networkInfo;
OperatingSystem osInfo;
} }

View File

@@ -1,14 +1,12 @@
package io.wdd.agent.status.hardware; package io.wdd.agent.status;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import io.wdd.agent.config.beans.init.AgentServerInfo; import io.wdd.agent.config.beans.init.AgentServerInfo;
import io.wdd.agent.config.utils.TimeUtils; import io.wdd.agent.config.utils.TimeUtils;
import io.wdd.agent.status.hardware.cpu.CpuInfo; import io.wdd.agent.status.hardware.CpuInfo;
import io.wdd.agent.status.hardware.memory.MemoryInfo; import io.wdd.agent.status.hardware.MemoryInfo;
import io.wdd.agent.status.redisReporter.AgentStatus;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.catalina.util.ServerInfo;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import oshi.SystemInfo; import oshi.SystemInfo;
@@ -72,7 +70,9 @@ public class AgentStatusCollector {
/* Network */ /* Network */
agentStatus.setNetworkInfo(hardware.getNetworkIFs(false)); agentStatus.setNetworkInfo(hardware.getNetworkIFs(false));
/* operating system info */
agentStatus.setOsInfo(os);
/* Time */ /* Time */
agentStatus.setTime(TimeUtils.currentTimeString()); agentStatus.setTime(TimeUtils.currentTimeString());

View File

@@ -1,4 +1,4 @@
package io.wdd.agent.status.hardware.cpu; package io.wdd.agent.status.hardware;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
@@ -16,24 +16,29 @@ public class CpuInfo {
private static final DecimalFormat LOAD_FORMAT = new DecimalFormat("#.00"); private static final DecimalFormat LOAD_FORMAT = new DecimalFormat("#.00");
/** /**
* CPU核心数 * CPU总线程
*/ */
private Integer cpuNum; private Integer cpuTotal;
/**
* CPU核心数
* */
private Integer coreTotal;
/** /**
* CPU总的使用率 * CPU总 计算方式理论上为 cpuTotal * 100
*/ */
private double toTal; private double cpuUsageTotol;
/** /**
* CPU系统使用率 * CPU系统使用率
*/ */
private double sys; private double systemCpuUsage;
/** /**
* CPU用户使用率 * CPU用户使用率
*/ */
private double user; private double userCpuUsage;
/** /**
* CPU当前等待率 * CPU当前等待率
@@ -50,11 +55,16 @@ public class CpuInfo {
*/ */
private String cpuModel; private String cpuModel;
private double[] cpuLoadAverage;
private double[] systemLoadAverage;
/** /**
* CPU型号信息 * CPU型号信息
*/ */
private CpuTicks ticks; private CpuTicks ticks;
public CpuInfo(CentralProcessor processor, long waitingTime){ public CpuInfo(CentralProcessor processor, long waitingTime){
this.init(processor, waitingTime); this.init(processor, waitingTime);
} }
@@ -72,15 +82,27 @@ public class CpuInfo {
final CpuTicks ticks = new CpuTicks(processor, waitingTime); final CpuTicks ticks = new CpuTicks(processor, waitingTime);
this.ticks = ticks; this.ticks = ticks;
this.cpuNum = processor.getLogicalProcessorCount(); this.cpuTotal = processor.getLogicalProcessorCount();
this.coreTotal = processor.getPhysicalProcessorCount();
this.cpuModel = processor.toString(); this.cpuModel = processor.toString();
final long totalCpu = ticks.totalCpu(); final long totalCpu = ticks.totalCpu();
this.toTal = totalCpu; this.cpuUsageTotol = totalCpu;
this.sys = formatDouble(ticks.cSys, totalCpu);
this.user = formatDouble(ticks.user, totalCpu); this.systemCpuUsage = formatDouble(ticks.cSys, totalCpu);
this.userCpuUsage = formatDouble(ticks.user, totalCpu);
this.wait = formatDouble(ticks.ioWait, totalCpu); this.wait = formatDouble(ticks.ioWait, totalCpu);
this.free = formatDouble(ticks.idle, totalCpu); this.free = formatDouble(ticks.idle, totalCpu);
// system load average
this.systemLoadAverage = processor.getSystemLoadAverage(3);
// cpu load average
this.cpuLoadAverage = processor.getProcessorCpuLoad(waitingTime);
} }
/** /**

View File

@@ -1,4 +1,4 @@
package io.wdd.agent.status.hardware.cpu; package io.wdd.agent.status.hardware;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;

View File

@@ -1,4 +1,4 @@
package io.wdd.agent.status.hardware.memory; package io.wdd.agent.status.hardware;
import io.wdd.agent.status.hardware.config.FormatUtils; import io.wdd.agent.status.hardware.config.FormatUtils;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;

View File

@@ -0,0 +1,27 @@
package io.wdd.agent.status.hardware;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import oshi.hardware.NetworkIF;
import java.util.List;
import java.util.stream.Collectors;
@Data
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder(toBuilder = true)
public class NetworkInfo {
public static List<NetworkInfo> mapFromNetworkIFS(List<NetworkIF> networkIFList){
return networkIFList.stream().map(
networkIF -> NetworkInfo.builder()
.build()
).collect(Collectors.toList());
}
}

View File

@@ -2,7 +2,7 @@ package io.wdd.agent;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import io.wdd.agent.status.hardware.AgentStatusCollector; import io.wdd.agent.status.AgentStatusCollector;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import oshi.SystemInfo; import oshi.SystemInfo;