Class TimeSeriesRecorder

java.lang.Object
org.apache.jackrabbit.stats.TimeSeriesRecorder
All Implemented Interfaces:
TimeSeries

public class TimeSeriesRecorder extends 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 Details

    • TimeSeriesRecorder

      public TimeSeriesRecorder(RepositoryStatistics.Type type)
    • 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 Details

    • getCounter

      public 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