Class TimeSeriesRecorder

  • All Implemented Interfaces:
    TimeSeries

    public class TimeSeriesRecorder
    extends java.lang.Object
    implements TimeSeries
    Recorder of a time series. An instance of this class records (and clears) the state of a given AtomicLong counter once every second and exposes the collected time series through the TimeSeries interface.
    • Constructor Detail

      • TimeSeriesRecorder

        public TimeSeriesRecorder​(boolean resetValueEachSecond)
        Same as TimeSeriesRecorder(boolean, long) passing long for the 2nd argument
        Parameters:
        resetValueEachSecond - Whether to reset value each second
      • TimeSeriesRecorder

        public TimeSeriesRecorder​(boolean resetValueEachSecond,
                                  long missingValue)
        Parameters:
        resetValueEachSecond - Whether to reset value each second
        missingValue - The value used to encode missing values
    • Method Detail

      • getCounter

        public java.util.concurrent.atomic.AtomicLong getCounter()
        Returns the AtomicLong instance used to measure the value for the time series.
        Returns:
        value
      • recordOneSecond

        public void recordOneSecond()
        Records the number of measured values over the past second and resets the counter. This method should be scheduled to be called once per second.
      • getMissingValue

        public long getMissingValue()
        Description copied from interface: TimeSeries
        The value used to encode missing values i.e. for a period where no value was recorded.
        Specified by:
        getMissingValue in interface TimeSeries
        Returns:
        default value
      • getValuePerSecond

        public long[] getValuePerSecond()
        Description copied from interface: TimeSeries
        Returns the measured value per second over the last minute.
        Specified by:
        getValuePerSecond in interface TimeSeries
        Returns:
        measured value per second, in chronological order
      • getValuePerMinute

        public long[] getValuePerMinute()
        Description copied from interface: TimeSeries
        Returns the measured value per minute over the last hour.
        Specified by:
        getValuePerMinute in interface TimeSeries
        Returns:
        measured value per minute, in chronological order
      • getValuePerHour

        public long[] getValuePerHour()
        Description copied from interface: TimeSeries
        Returns the measured value per hour over the last week.
        Specified by:
        getValuePerHour in interface TimeSeries
        Returns:
        measured value per hour, in chronological order
      • getValuePerWeek

        public long[] getValuePerWeek()
        Description copied from interface: TimeSeries
        Returns the measured value per week over the last three years.
        Specified by:
        getValuePerWeek in interface TimeSeries
        Returns:
        measured value per week, in chronological order