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 by Meter.

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 ExponentialMovingAverages implementation, with this class the moving average rate drops immediately to zero if the last marked event is older than the time window.

A Meter with SlidingTimeWindowMovingAverages works similarly to a Histogram with an SlidingTimeWindowArrayReservoir, 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 Details

  • Method Details

    • update

      public void update(long n)
      Description copied from interface: MovingAverages
      Update all three moving averages with n events having occurred since the last update.
      Specified by:
      update in interface MovingAverages
    • tickIfNecessary

      public void tickIfNecessary()
      Description copied from interface: MovingAverages
      Tick the internal clock of the MovingAverages implementation if needed (according to the internal ticking interval)
      Specified by:
      tickIfNecessary in interface MovingAverages
    • getM15Rate

      public double getM15Rate()
      Description copied from interface: MovingAverages
      Returns the fifteen-minute moving average rate
      Specified by:
      getM15Rate in interface MovingAverages
      Returns:
      the fifteen-minute moving average rate
    • getM5Rate

      public double getM5Rate()
      Description copied from interface: MovingAverages
      Returns the five-minute moving average rate
      Specified by:
      getM5Rate in interface MovingAverages
      Returns:
      the five-minute moving average rate
    • getM1Rate

      public double getM1Rate()
      Description copied from interface: MovingAverages
      Returns the one-minute moving average rate
      Specified by:
      getM1Rate in interface MovingAverages
      Returns:
      the one-minute moving average rate
    • getSum

      public long getSum()
      Specified by:
      getSum in interface MovingAverages