aboutsummaryrefslogtreecommitdiff
path: root/spark-common/src/main/java/me/lucko/spark/common/util
diff options
context:
space:
mode:
authorLuck <git@lucko.me>2022-04-18 11:54:40 +0100
committerLuck <git@lucko.me>2022-04-18 11:54:40 +0100
commit45edd6197aa777d0c746f37a813d6be4ca916694 (patch)
tree967c3998eb21a363e9896654dccd86e70e0368b0 /spark-common/src/main/java/me/lucko/spark/common/util
parentecc9ac3fdb731ef3beee2ce45ddf4b355b12745f (diff)
downloadspark-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')
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/util/FormatUtil.java23
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/util/LinuxProc.java7
-rw-r--r--spark-common/src/main/java/me/lucko/spark/common/util/RollingAverage.java11
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();
+ }
+
}