Class SlidingTimeWindowMovingAverages
- java.lang.Object
-
- io.dropwizard.metrics5.SlidingTimeWindowMovingAverages
-
- All Implemented Interfaces:
MovingAverages
public class SlidingTimeWindowMovingAverages extends Object implements MovingAverages
A triple of simple moving average rates (one, five and fifteen minutes rates) as needed byMeter.The averages are unweighted, i.e. they include strictly only the events in the sliding time window, every event having the same weight. Unlike the the more widely used
ExponentialMovingAveragesimplementation, with this class the moving average rate drops immediately to zero if the last marked event is older than the time window.A
MeterwithSlidingTimeWindowMovingAveragesworks similarly to aHistogramwith anSlidingTimeWindowArrayReservoir, but as a Meter needs to keep track only of the count of events (not the events itself), the memory overhead is much smaller. SlidingTimeWindowMovingAverages uses buckets with just one counter to accumulate the number of events (one bucket per seconds, giving 900 buckets for the 15 minutes time window).
-
-
Constructor Summary
Constructors Constructor Description SlidingTimeWindowMovingAverages()Creates a newSlidingTimeWindowMovingAverages.SlidingTimeWindowMovingAverages(Clock clock)Creates a newSlidingTimeWindowMovingAverages.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description doublegetM15Rate()Returns the fifteen-minute moving average ratedoublegetM1Rate()Returns the one-minute moving average ratedoublegetM5Rate()Returns the five-minute moving average ratelonggetSum()voidtickIfNecessary()Tick the internal clock of the MovingAverages implementation if needed (according to the internal ticking interval)voidupdate(long n)Update all three moving averages with n events having occurred since the last update.
-
-
-
Constructor Detail
-
SlidingTimeWindowMovingAverages
public SlidingTimeWindowMovingAverages()
Creates a newSlidingTimeWindowMovingAverages.
-
SlidingTimeWindowMovingAverages
public SlidingTimeWindowMovingAverages(Clock clock)
Creates a newSlidingTimeWindowMovingAverages.- Parameters:
clock- the clock to use for the meter ticks
-
-
Method Detail
-
update
public void update(long n)
Description copied from interface:MovingAveragesUpdate all three moving averages with n events having occurred since the last update.- Specified by:
updatein interfaceMovingAverages
-
tickIfNecessary
public void tickIfNecessary()
Description copied from interface:MovingAveragesTick the internal clock of the MovingAverages implementation if needed (according to the internal ticking interval)- Specified by:
tickIfNecessaryin interfaceMovingAverages
-
getM15Rate
public double getM15Rate()
Description copied from interface:MovingAveragesReturns the fifteen-minute moving average rate- Specified by:
getM15Ratein interfaceMovingAverages- Returns:
- the fifteen-minute moving average rate
-
getM5Rate
public double getM5Rate()
Description copied from interface:MovingAveragesReturns the five-minute moving average rate- Specified by:
getM5Ratein interfaceMovingAverages- Returns:
- the five-minute moving average rate
-
getM1Rate
public double getM1Rate()
Description copied from interface:MovingAveragesReturns the one-minute moving average rate- Specified by:
getM1Ratein interfaceMovingAverages- Returns:
- the one-minute moving average rate
-
getSum
public long getSum()
- Specified by:
getSumin interfaceMovingAverages
-
-