org.apache.hadoop.metrics2.lib

## Class MutableRollingAverages

- java.lang.Object
- - org.apache.hadoop.metrics2.lib.MutableMetric
  - - org.apache.hadoop.metrics2.lib.MutableRollingAverages

- All Implemented Interfaces:
    Closeable, AutoCloseable

      @InterfaceAudience.Public
       @InterfaceStability.Evolving
      public class MutableRollingAverages
      extends MutableMetric
      implements Closeable

  This class maintains a group of rolling average metrics. It implements the algorithm of rolling average, i.e. a number of sliding windows are kept to roll over and evict old subsets of samples. Each window has a subset of samples in a stream, where sub-sum and sub-total are collected. All sub-sums and sub-totals in all windows will be aggregated to final-sum and final-total used to compute final average, which is called rolling average.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `MutableRollingAverages(String metricValueName)` Constructor for `MutableRollingAverages`.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(String name, long value)`
    `void` | `close()`
    `void` | `collectThreadLocalStates()` Collects states maintained in `ThreadLocal`, if any.
    `Map<String,Double>` | `getStats(long minSamples)` Retrieve a map of metric name -> (aggregate).
    `void` | `setRecordValidityMs(long value)` Use for test only.
    `void` | `snapshot(MetricsRecordBuilder builder, boolean all)` Get a snapshot of the metric

    - ### Methods inherited from class org.apache.hadoop.metrics2.lib.MutableMetric

      `changed, clearChanged, setChanged, snapshot`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### MutableRollingAverages

          public MutableRollingAverages(String metricValueName)

      Constructor for `MutableRollingAverages`.
      Parameters:
        `metricValueName` -

  - ### Method Detail

    - #### snapshot

          public void snapshot(MetricsRecordBuilder builder,
                               boolean all)

      Description copied from class: `MutableMetric`
      Get a snapshot of the metric
      Specified by:
        `snapshot` in class `MutableMetric`
      Parameters:
        `builder` - the metrics record builder
        `all` - if true, snapshot unchanged metrics as well

    - #### collectThreadLocalStates

          public void collectThreadLocalStates()

      Collects states maintained in `ThreadLocal`, if any.

    - #### add

          public void add(String name,
                          long value)

      Parameters:
        `name` - name of metric
        `value` - value of metric

    - #### close

          public void close()
                     throws IOException

      Specified by:
        `close` in interface `Closeable`
      Specified by:
        `close` in interface `AutoCloseable`
      Throws:
        `IOException`

    - #### getStats

          public Map<String,Double> getStats(long minSamples)

      Retrieve a map of metric name -> (aggregate). Filter out entries that don't have at least minSamples.
      Returns:
        a map of peer DataNode Id to the average latency to that node seen over the measurement period.

    - #### setRecordValidityMs

          public void setRecordValidityMs(long value)

      Use for test only.

Copyright © 2022 Apache Software Foundation. All rights reserved.