Class DoubleGauge

  • Direct Known Subclasses:
    DoubleGauge.NoopDoubleGauge, DoubleGaugeImpl

    @ThreadSafe
    public abstract class DoubleGauge
    extends java.lang.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 Detail

      • DoubleGauge

        public DoubleGauge()
    • Method Detail

      • getOrCreateTimeSeries

        public abstract DoubleGauge.DoublePoint getOrCreateTimeSeries​(java.util.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(java.lang.String, java.lang.String, java.lang.String, java.util.List<io.opencensus.metrics.LabelKey>).
        Returns:
        a DoublePoint the value of single gauge.
        Throws:
        java.lang.NullPointerException - if labelValues is null OR any element of labelValues is null.
        java.lang.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​(java.util.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:
        java.lang.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​(java.lang.String name,
                                              java.lang.String description,
                                              java.lang.String unit,
                                              java.util.List<LabelKey> labelKeys)
        Returns the no-op implementation of the DoubleGauge.
        Returns:
        the no-op implementation of the DoubleGauge.
        Since:
        0.17