Class EWMA

    • 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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • 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
    • Constructor Detail

      • EWMA

        public EWMA​(double alpha,
                    long interval,
                    java.util.concurrent.TimeUnit intervalUnit)
        Create a new EWMA with a specific smoothing constant.
        Parameters:
        alpha - the smoothing constant
        interval - the expected tick interval
        intervalUnit - the time unit of the tick 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