Package com.codahale.metrics
Class EWMA
- java.lang.Object
-
- com.codahale.metrics.EWMA
-
public class EWMA extends java.lang.Object
An exponentially-weighted moving average.
-
-
Field Summary
Fields Modifier and Type Field Description private double
alpha
private static int
FIFTEEN_MINUTES
private static int
FIVE_MINUTES
private boolean
initialized
private double
interval
private static int
INTERVAL
private static double
M1_ALPHA
private static double
M15_ALPHA
private static double
M5_ALPHA
private static int
ONE_MINUTE
private double
rate
private static double
SECONDS_PER_MINUTE
private LongAdder
uncounted
-
Constructor Summary
Constructors Constructor Description EWMA(double alpha, long interval, java.util.concurrent.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 EWMA
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 EWMA
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(java.util.concurrent.TimeUnit rateUnit)
Returns the rate in the given units of time.static EWMA
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.
-
-
-
Field Detail
-
INTERVAL
private static final int INTERVAL
- See Also:
- Constant Field Values
-
SECONDS_PER_MINUTE
private static final double SECONDS_PER_MINUTE
- See Also:
- Constant Field Values
-
ONE_MINUTE
private static final int ONE_MINUTE
- See Also:
- Constant Field Values
-
FIVE_MINUTES
private static final int FIVE_MINUTES
- See Also:
- Constant Field Values
-
FIFTEEN_MINUTES
private static final int FIFTEEN_MINUTES
- See Also:
- Constant Field Values
-
M1_ALPHA
private static final double M1_ALPHA
-
M5_ALPHA
private static final double M5_ALPHA
-
M15_ALPHA
private static final double M15_ALPHA
-
initialized
private volatile boolean initialized
-
rate
private volatile double rate
-
uncounted
private final LongAdder uncounted
-
alpha
private final double alpha
-
interval
private final double interval
-
-
Method Detail
-
oneMinuteEWMA
public static EWMA 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 EWMA 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 EWMA 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(java.util.concurrent.TimeUnit rateUnit)
Returns the rate in the given units of time.- Parameters:
rateUnit
- the unit of time- Returns:
- the rate
-
-