aboutsummaryrefslogtreecommitdiff
path: root/spark-common/src/main/java/me/lucko/spark/common/util
diff options
context:
space:
mode:
authorLuck <git@lucko.me>2021-04-07 11:51:03 +0100
committerLuck <git@lucko.me>2021-04-07 11:51:03 +0100
commit9228cf8b55dc34a5f49bddfe4637fbd4dd7fecb5 (patch)
treea2e153c4d723216f95c49153d5afef524dea9531 /spark-common/src/main/java/me/lucko/spark/common/util
parentbb3046600f1d1a98a69f918dd59dff64e051480b (diff)
downloadspark-9228cf8b55dc34a5f49bddfe4637fbd4dd7fecb5.tar.gz
spark-9228cf8b55dc34a5f49bddfe4637fbd4dd7fecb5.tar.bz2
spark-9228cf8b55dc34a5f49bddfe4637fbd4dd7fecb5.zip
Add a basic API for retrieving spark statistics
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/RollingAverage.java20
1 files changed, 11 insertions, 9 deletions
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 2c6219a..87c41a4 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
@@ -20,13 +20,15 @@
package me.lucko.spark.common.util;
+import me.lucko.spark.api.statistic.misc.DoubleAverageInfo;
+
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayDeque;
import java.util.Arrays;
import java.util.Queue;
-public class RollingAverage {
+public class RollingAverage implements DoubleAverageInfo {
private final Queue<BigDecimal> samples;
private final int windowSize;
@@ -47,7 +49,8 @@ public class RollingAverage {
}
}
- public double getAverage() {
+ @Override
+ public double mean() {
synchronized (this) {
if (this.samples.isEmpty()) {
return 0;
@@ -57,7 +60,8 @@ public class RollingAverage {
}
}
- public double getMax() {
+ @Override
+ public double max() {
synchronized (this) {
BigDecimal max = null;
for (BigDecimal sample : this.samples) {
@@ -69,7 +73,8 @@ public class RollingAverage {
}
}
- public double getMin() {
+ @Override
+ public double min() {
synchronized (this) {
BigDecimal min = null;
for (BigDecimal sample : this.samples) {
@@ -81,11 +86,8 @@ public class RollingAverage {
}
}
- public double getMedian() {
- return getPercentile(0.50d);
- }
-
- public double getPercentile(double percentile) {
+ @Override
+ public double percentile(double percentile) {
if (percentile < 0 || percentile > 1) {
throw new IllegalArgumentException("Invalid percentile " + percentile);
}