Class DoubleGauge

java.lang.Object
io.opencensus.metrics.DoubleGauge
Direct Known Subclasses:
DoubleGauge.NoopDoubleGauge, DoubleGaugeImpl

@ThreadSafe public abstract class DoubleGauge extends Object
Double Gauge metric, to report instantaneous measurement of a double value. Gauges can go both up and down. The gauges values can be negative.

Example 1: Create a Gauge with default labels.

class YourClass {

  private static final MetricRegistry metricRegistry = Metrics.getMetricRegistry();

  List<LabelKey> labelKeys = Arrays.asList(LabelKey.create("Name", "desc"));

  DoubleGauge gauge = metricRegistry.addDoubleGauge("queue_size",
                      "Pending jobs", "1", labelKeys);

  // It is recommended to keep a reference of a point for manual operations.
  DoublePoint defaultPoint = gauge.getDefaultTimeSeries();

  void doWork() {
     // Your code here.
     defaultPoint.add(10);
  }

}

Example 2: You can also use labels(keys and values) to track different types of metric.

class YourClass {

  private static final MetricRegistry metricRegistry = Metrics.getMetricRegistry();

  List<LabelKey> labelKeys = Arrays.asList(LabelKey.create("Name", "desc"));
  List<LabelValue> labelValues = Arrays.asList(LabelValue.create("Inbound"));

  DoubleGauge gauge = metricRegistry.addDoubleGauge("queue_size",
                      "Pending jobs", "1", labelKeys);

  // It is recommended to keep a reference of a point for manual operations.
  DoublePoint inboundPoint = gauge.getOrCreateTimeSeries(labelValues);

  void doSomeWork() {
     // Your code here.
     inboundPoint.set(15);
  }

}
Since:
0.17
  • Constructor Details

    • DoubleGauge

      public DoubleGauge()
  • Method Details

    • getOrCreateTimeSeries

      public abstract DoubleGauge.DoublePoint getOrCreateTimeSeries(List<LabelValue> labelValues)
      Creates a TimeSeries and returns a DoublePoint if the specified labelValues is not already associated with this gauge, else returns an existing DoublePoint.

      It is recommended to keep a reference to the DoublePoint instead of always calling this method for manual operations.

      Parameters:
      labelValues - the list of label values. The number of label values must be the same to that of the label keys passed to MetricRegistry.addDoubleGauge(String, String, String, List).
      Returns:
      a DoublePoint the value of single gauge.
      Throws:
      NullPointerException - if labelValues is null OR any element of labelValues is null.
      IllegalArgumentException - if number of labelValuess are not equal to the label keys.
      Since:
      0.17
    • getDefaultTimeSeries

      public abstract DoubleGauge.DoublePoint getDefaultTimeSeries()
      Returns a DoublePoint for a gauge with all labels not set, or default labels.
      Returns:
      a DoublePoint for a gauge with all labels not set, or default labels.
      Since:
      0.17
    • removeTimeSeries

      public abstract void removeTimeSeries(List<LabelValue> labelValues)
      Removes the TimeSeries from the gauge metric, if it is present. i.e. references to previous DoublePoint objects are invalid (not part of the metric).
      Parameters:
      labelValues - the list of label values.
      Throws:
      NullPointerException - if labelValues is null or any element of labelValues is null.
      Since:
      0.17
    • clear

      public abstract void clear()
      Removes all TimeSeries from the gauge metric. i.e. references to all previous DoublePoint objects are invalid (not part of the metric).
      Since:
      0.17
    • newNoopDoubleGauge

      static DoubleGauge newNoopDoubleGauge(String name, String description, String unit, List<LabelKey> labelKeys)
      Returns the no-op implementation of the DoubleGauge.
      Returns:
      the no-op implementation of the DoubleGauge.
      Since:
      0.17