From 9228cf8b55dc34a5f49bddfe4637fbd4dd7fecb5 Mon Sep 17 00:00:00 2001 From: Luck Date: Wed, 7 Apr 2021 11:51:03 +0100 Subject: Add a basic API for retrieving spark statistics --- .../me/lucko/spark/common/util/RollingAverage.java | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'spark-common/src/main/java/me/lucko/spark/common/util') 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 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); } -- cgit