Class SampledStat

  • All Implemented Interfaces:
    Measurable, MeasurableStat, MetricValueProvider<Double>, Stat
    Direct Known Subclasses:
    Avg, Frequencies, Max, Min, Percentiles, WindowedSum

    public abstract class SampledStat
    extends Object
    implements MeasurableStat
    A SampledStat records a single scalar value measured over one or more samples. Each sample is recorded over a configurable window. The window can be defined by number of events or elapsed time (or both, if both are given the window is complete when either the event count or elapsed time criterion is met).

    All the samples are combined to produce the measurement. When a window is complete the oldest sample is cleared and recycled to begin recording the next sample. Subclasses of this class define different statistics measured using this basic pattern.

    • Constructor Detail

      • SampledStat

        public SampledStat​(double initialValue)
    • Method Detail

      • record

        public void record​(MetricConfig config,
                           double value,
                           long timeMs)
        Description copied from interface: Stat
        Record the given value
        Specified by:
        record in interface Stat
        Parameters:
        config - The configuration to use for this metric
        value - The value to record
        timeMs - The POSIX time in milliseconds this value occurred
      • measure

        public double measure​(MetricConfig config,
                              long now)
        Description copied from interface: Measurable
        Measure this quantity and return the result as a double
        Specified by:
        measure in interface Measurable
        Parameters:
        config - The configuration for this metric
        now - The POSIX time in milliseconds the measurement is being taken
        Returns:
        The measured value
      • purgeObsoleteSamples

        protected void purgeObsoleteSamples​(MetricConfig config,
                                            long now)