Class ExponentiallyWeightedMovingAverage
- java.lang.Object
-
- fish.payara.microprofile.metrics.impl.ExponentiallyWeightedMovingAverage
-
public class ExponentiallyWeightedMovingAverage extends Object
An exponentially-weighted moving average.
-
-
Constructor Summary
Constructors Constructor Description ExponentiallyWeightedMovingAverage(double alpha, long interval, TimeUnit intervalUnit)
Create a new EWMA with a specific smoothing constant.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static ExponentiallyWeightedMovingAverage
fifteenMinuteEWMA()
Creates a new EWMA which is equivalent to the UNIX fifteen minute load average and which expects to be ticked every 5 seconds.static ExponentiallyWeightedMovingAverage
fiveMinuteEWMA()
Creates a new EWMA which is equivalent to the UNIX five minute load average and which expects to be ticked every 5 seconds.double
getRate(TimeUnit rateUnit)
Returns the rate in the given units of time.static ExponentiallyWeightedMovingAverage
oneMinuteEWMA()
Creates a new EWMA which is equivalent to the UNIX one minute load average and which expects to be ticked every 5 seconds.void
tick()
Mark the passage of time and decay the current rate accordingly.void
update(long n)
Update the moving average with a new value.
-
-
-
Constructor Detail
-
ExponentiallyWeightedMovingAverage
public ExponentiallyWeightedMovingAverage(double alpha, long interval, TimeUnit intervalUnit)
Create a new EWMA with a specific smoothing constant.- Parameters:
alpha
- the smoothing constantinterval
- the expected tick intervalintervalUnit
- the time unit of the tick interval
-
-
Method Detail
-
oneMinuteEWMA
public static ExponentiallyWeightedMovingAverage oneMinuteEWMA()
Creates a new EWMA which is equivalent to the UNIX one minute load average and which expects to be ticked every 5 seconds.- Returns:
- a one-minute EWMA
-
fiveMinuteEWMA
public static ExponentiallyWeightedMovingAverage fiveMinuteEWMA()
Creates a new EWMA which is equivalent to the UNIX five minute load average and which expects to be ticked every 5 seconds.- Returns:
- a five-minute EWMA
-
fifteenMinuteEWMA
public static ExponentiallyWeightedMovingAverage fifteenMinuteEWMA()
Creates a new EWMA which is equivalent to the UNIX fifteen minute load average and which expects to be ticked every 5 seconds.- Returns:
- a fifteen-minute EWMA
-
update
public void update(long n)
Update the moving average with a new value.- Parameters:
n
- the new value
-
tick
public void tick()
Mark the passage of time and decay the current rate accordingly.
-
getRate
public double getRate(TimeUnit rateUnit)
Returns the rate in the given units of time.- Parameters:
rateUnit
- the unit of time- Returns:
- the rate
-
-