Loading dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/OSUtils.java +12 −3 Original line number Diff line number Diff line Loading @@ -53,6 +53,12 @@ public class OSUtils { private static final SystemInfo SI = new SystemInfo(); public static final String TWO_DECIMAL = "0.00"; /** * return -1 when the function can not get hardware env info * e.g {@link OSUtils#loadAverage()} {@link OSUtils#cpuUsage()} */ public static final double NEGATIVE_ONE = -1; private static HardwareAbstractionLayer hal = SI.getHardware(); private OSUtils() {} Loading Loading @@ -118,9 +124,11 @@ public class OSUtils { */ public static double loadAverage() { double loadAverage = hal.getProcessor().getSystemLoadAverage(); if (Double.isNaN(loadAverage)) { return NEGATIVE_ONE; } DecimalFormat df = new DecimalFormat(TWO_DECIMAL); df.setRoundingMode(RoundingMode.HALF_UP); return Double.parseDouble(df.format(loadAverage)); } Loading @@ -133,10 +141,12 @@ public class OSUtils { public static double cpuUsage() { CentralProcessor processor = hal.getProcessor(); double cpuUsage = processor.getSystemCpuLoad(); if (Double.isNaN(cpuUsage)) { return NEGATIVE_ONE; } DecimalFormat df = new DecimalFormat(TWO_DECIMAL); df.setRoundingMode(RoundingMode.HALF_UP); return Double.parseDouble(df.format(cpuUsage)); } Loading Loading @@ -393,7 +403,6 @@ public class OSUtils { return null; } /** * whether is macOS * @return true if mac Loading dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/OSUtilsTest.java +4 −4 Original line number Diff line number Diff line Loading @@ -41,15 +41,15 @@ public class OSUtilsTest { public void testOSMetric(){ if (!OSUtils.isWindows()) { double availablePhysicalMemorySize = OSUtils.availablePhysicalMemorySize(); Assert.assertTrue(availablePhysicalMemorySize > 0.0f); Assert.assertTrue(availablePhysicalMemorySize >= 0.0d); double totalMemorySize = OSUtils.totalMemorySize(); Assert.assertTrue(totalMemorySize > 0.0f); Assert.assertTrue(totalMemorySize >= 0.0d); double loadAverage = OSUtils.loadAverage(); logger.info("loadAverage {}", loadAverage); double memoryUsage = OSUtils.memoryUsage(); Assert.assertTrue(memoryUsage > 0.0f); Assert.assertTrue(memoryUsage >= 0.0d); double cpuUsage = OSUtils.cpuUsage(); Assert.assertTrue(cpuUsage > 0.0f); Assert.assertTrue(cpuUsage >= 0.0d || cpuUsage == -1.0d); } else { // TODO window ut } Loading Loading
dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/OSUtils.java +12 −3 Original line number Diff line number Diff line Loading @@ -53,6 +53,12 @@ public class OSUtils { private static final SystemInfo SI = new SystemInfo(); public static final String TWO_DECIMAL = "0.00"; /** * return -1 when the function can not get hardware env info * e.g {@link OSUtils#loadAverage()} {@link OSUtils#cpuUsage()} */ public static final double NEGATIVE_ONE = -1; private static HardwareAbstractionLayer hal = SI.getHardware(); private OSUtils() {} Loading Loading @@ -118,9 +124,11 @@ public class OSUtils { */ public static double loadAverage() { double loadAverage = hal.getProcessor().getSystemLoadAverage(); if (Double.isNaN(loadAverage)) { return NEGATIVE_ONE; } DecimalFormat df = new DecimalFormat(TWO_DECIMAL); df.setRoundingMode(RoundingMode.HALF_UP); return Double.parseDouble(df.format(loadAverage)); } Loading @@ -133,10 +141,12 @@ public class OSUtils { public static double cpuUsage() { CentralProcessor processor = hal.getProcessor(); double cpuUsage = processor.getSystemCpuLoad(); if (Double.isNaN(cpuUsage)) { return NEGATIVE_ONE; } DecimalFormat df = new DecimalFormat(TWO_DECIMAL); df.setRoundingMode(RoundingMode.HALF_UP); return Double.parseDouble(df.format(cpuUsage)); } Loading Loading @@ -393,7 +403,6 @@ public class OSUtils { return null; } /** * whether is macOS * @return true if mac Loading
dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/OSUtilsTest.java +4 −4 Original line number Diff line number Diff line Loading @@ -41,15 +41,15 @@ public class OSUtilsTest { public void testOSMetric(){ if (!OSUtils.isWindows()) { double availablePhysicalMemorySize = OSUtils.availablePhysicalMemorySize(); Assert.assertTrue(availablePhysicalMemorySize > 0.0f); Assert.assertTrue(availablePhysicalMemorySize >= 0.0d); double totalMemorySize = OSUtils.totalMemorySize(); Assert.assertTrue(totalMemorySize > 0.0f); Assert.assertTrue(totalMemorySize >= 0.0d); double loadAverage = OSUtils.loadAverage(); logger.info("loadAverage {}", loadAverage); double memoryUsage = OSUtils.memoryUsage(); Assert.assertTrue(memoryUsage > 0.0f); Assert.assertTrue(memoryUsage >= 0.0d); double cpuUsage = OSUtils.cpuUsage(); Assert.assertTrue(cpuUsage > 0.0f); Assert.assertTrue(cpuUsage >= 0.0d || cpuUsage == -1.0d); } else { // TODO window ut } Loading