diff options
author | Luck <git@lucko.me> | 2022-04-18 11:54:40 +0100 |
---|---|---|
committer | Luck <git@lucko.me> | 2022-04-18 11:54:40 +0100 |
commit | 45edd6197aa777d0c746f37a813d6be4ca916694 (patch) | |
tree | 967c3998eb21a363e9896654dccd86e70e0368b0 /spark-common/src/main/java/me/lucko/spark/common/util | |
parent | ecc9ac3fdb731ef3beee2ce45ddf4b355b12745f (diff) | |
download | spark-45edd6197aa777d0c746f37a813d6be4ca916694.tar.gz spark-45edd6197aa777d0c746f37a813d6be4ca916694.tar.bz2 spark-45edd6197aa777d0c746f37a813d6be4ca916694.zip |
Include network interface statistics in '/spark health' command
Diffstat (limited to 'spark-common/src/main/java/me/lucko/spark/common/util')
3 files changed, 40 insertions, 1 deletions
diff --git a/spark-common/src/main/java/me/lucko/spark/common/util/FormatUtil.java b/spark-common/src/main/java/me/lucko/spark/common/util/FormatUtil.java index 492d4ea..cbc496d 100644 --- a/spark-common/src/main/java/me/lucko/spark/common/util/FormatUtil.java +++ b/spark-common/src/main/java/me/lucko/spark/common/util/FormatUtil.java @@ -20,6 +20,9 @@ package me.lucko.spark.common.util; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.TextColor; + public enum FormatUtil { ; @@ -37,4 +40,24 @@ public enum FormatUtil { int sizeIndex = (int) (Math.log(bytes) / Math.log(1024)); return String.format("%.1f", bytes / Math.pow(1024, sizeIndex)) + " " + SIZE_UNITS[sizeIndex]; } + + public static Component formatBytes(long bytes, TextColor color, String suffix) { + String value; + String unit; + + if (bytes == 0) { + value = "0"; + unit = "KB" + suffix; + } else { + int sizeIndex = (int) (Math.log(bytes) / Math.log(1024)); + value = String.format("%.1f", bytes / Math.pow(1024, sizeIndex)); + unit = SIZE_UNITS[sizeIndex] + suffix; + } + + return Component.text() + .append(Component.text(value, color)) + .append(Component.space()) + .append(Component.text(unit)) + .build(); + } } diff --git a/spark-common/src/main/java/me/lucko/spark/common/util/LinuxProc.java b/spark-common/src/main/java/me/lucko/spark/common/util/LinuxProc.java index 0926ae7..7d688d7 100644 --- a/spark-common/src/main/java/me/lucko/spark/common/util/LinuxProc.java +++ b/spark-common/src/main/java/me/lucko/spark/common/util/LinuxProc.java @@ -44,7 +44,12 @@ public enum LinuxProc { /** * Information about the system memory. */ - MEMINFO("/proc/meminfo"); + MEMINFO("/proc/meminfo"), + + /** + * Information about the system network usage. + */ + NET_DEV("/proc/net/dev"); private final Path path; diff --git a/spark-common/src/main/java/me/lucko/spark/common/util/RollingAverage.java b/spark-common/src/main/java/me/lucko/spark/common/util/RollingAverage.java index 57dfdff..65753bc 100644 --- a/spark-common/src/main/java/me/lucko/spark/common/util/RollingAverage.java +++ b/spark-common/src/main/java/me/lucko/spark/common/util/RollingAverage.java @@ -21,6 +21,7 @@ package me.lucko.spark.common.util; import me.lucko.spark.api.statistic.misc.DoubleAverageInfo; +import me.lucko.spark.proto.SparkProtos; import java.math.BigDecimal; import java.math.RoundingMode; @@ -111,4 +112,14 @@ public class RollingAverage implements DoubleAverageInfo { return sortedSamples[rank].doubleValue(); } + public SparkProtos.RollingAverageValues toProto() { + return SparkProtos.RollingAverageValues.newBuilder() + .setMean(mean()) + .setMax(max()) + .setMin(min()) + .setMedian(median()) + .setPercentile95(percentile95th()) + .build(); + } + } |