[ agent ] [ status ] - accomplish agent status - 2
This commit is contained in:
@@ -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;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -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;
|
||||||
@@ -73,6 +71,8 @@ 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());
|
||||||
@@ -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总的使用率
|
* CPU核心数
|
||||||
|
* */
|
||||||
|
private Integer coreTotal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -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;
|
||||||
@@ -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;
|
||||||
@@ -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());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user