Class LongGauge

java.lang.Object
io.opencensus.metrics.LongGauge
Direct Known Subclasses:
LongGauge.NoopLongGauge, LongGaugeImpl

@ThreadSafe public abstract class LongGauge extends Object
Long Gauge metric, to report instantaneous measurement of an int64 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"));

  LongGauge gauge = metricRegistry.addLongGauge("queue_size", "Pending jobs", "1", labelKeys);

  // It is recommended to keep a reference of a point for manual operations.
  LongPoint 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"));

  LongGauge gauge = metricRegistry.addLongGauge("queue_size", "Pending jobs", "1", labelKeys);

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

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

}
Since:
0.17
  • Constructor Details

    • LongGauge

      public LongGauge()
  • Method Details

    • getOrCreateTimeSeries

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

      It is recommended to keep a reference to the LongPoint 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.addLongGauge(String, String, String, List).
      Returns:
      a LongPoint 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 passed to MetricRegistry.addLongGauge(String, String, String, List).
      Since:
      0.17
    • getDefaultTimeSeries

      public abstract LongGauge.LongPoint getDefaultTimeSeries()
      Returns a LongPoint for a gauge with all labels not set, or default labels.
      Returns:
      a LongPoint 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 LongPoint objects are invalid (not part of the metric).
      Parameters:
      labelValues - the list of label values.
      Throws:
      NullPointerException - if labelValues is null.
      Since:
      0.17
    • clear

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

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