From b47a61f605c7ef3ec4f78dea2d06234180759b28 Mon Sep 17 00:00:00 2001 From: zhangshuai Date: Fri, 26 Aug 2022 18:14:43 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20NEZ-2142=20nz-talon=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?os=E7=B3=BB=E7=BB=9F=E4=BF=A1=E6=81=AF=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../confagent/controller/OSHIController.java | 9 ++------- .../java/net/geedge/confagent/util/OSHIUtils.java | 14 +++++++++----- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/main/java/net/geedge/confagent/controller/OSHIController.java b/src/main/java/net/geedge/confagent/controller/OSHIController.java index ba202c7..f4f53e7 100644 --- a/src/main/java/net/geedge/confagent/controller/OSHIController.java +++ b/src/main/java/net/geedge/confagent/controller/OSHIController.java @@ -7,7 +7,6 @@ import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.net.UnknownHostException; -import java.util.HashMap; import java.util.List; import java.util.Map; @@ -26,18 +25,14 @@ public class OSHIController extends BaseController{ public R getProcessInfo(HttpServletRequest request){ List result = OSHIUtils.getProcessInfo(); - HashMap data = Tool.MapUtil.newHashMap(); - data.put("lsit" ,result); - return R.ok(data); + return R.ok(result); } @GetMapping("/oshi/netstat") public R getNetstatInfo(HttpServletRequest request) throws UnknownHostException { List result = OSHIUtils.getNetInfo(); - HashMap data = Tool.MapUtil.newHashMap(); - data.put("lsit" ,result); - return R.ok(data); + return R.ok(result); } } diff --git a/src/main/java/net/geedge/confagent/util/OSHIUtils.java b/src/main/java/net/geedge/confagent/util/OSHIUtils.java index a4bb001..0fdfcfc 100644 --- a/src/main/java/net/geedge/confagent/util/OSHIUtils.java +++ b/src/main/java/net/geedge/confagent/util/OSHIUtils.java @@ -29,8 +29,8 @@ public class OSHIUtils { HashMap os = Tool.MapUtil.newHashMap(); NetworkParams networkParams = operatingSystem.getNetworkParams(); - os.put("versionInfo",String.valueOf(operatingSystem)); - os.put("platform",System.getProperty("os.name").toLowerCase()); + os.put("versionInfo",operatingSystem.getVersionInfo().toString()); + os.put("platform",si.getCurrentPlatform()); os.put("family",operatingSystem.getFamily()); os.put("manufacturer",operatingSystem.getManufacturer()); os.put("bitness",operatingSystem.getBitness()); @@ -148,9 +148,13 @@ public class OSHIUtils { procsData.put("parentProcessID",proc.getParentProcessID()); procsData.put("startTime",proc.getStartTime()); procsData.put("priority",proc.getPriority()); - //cpu mem 百分比计算 - procsData.put("cpuUsage",Tool.NumberUtil.div(proc.getKernelTime() + proc.getUserTime(), proc.getUpTime()) * 100); - procsData.put("memUsage",Tool.NumberUtil.div(proc.getResidentSetSize(), memory.getTotal()) * 100); + /** + * For per-Process CPU ticks, there is no "idle" counter available, so the calculation ends up being (active time / up time) + * This interpretation matches the value displayed in ps or top on Unix-based operating systems + * If you want per-Process CPU load to match the Windows Task Manager display, you should divide OSHI's calculation by the number of logical processors + */ + procsData.put("cpuUsage",Tool.NumberUtil.div(proc.getKernelTime() + proc.getUserTime(), proc.getUpTime()) * 100d); + procsData.put("memUsage",Tool.NumberUtil.div(proc.getResidentSetSize(), memory.getTotal()) * 100d); procsData.put("state",proc.getState().toString()); procsData.put("openFiles",proc.getOpenFiles()); procsData.put("threadCount",proc.getThreadCount());