Class DoubleCumulative

  • Direct Known Subclasses:
    DoubleCumulative.NoopDoubleCumulative, DoubleCumulativeImpl

    @ThreadSafe
    public abstract class DoubleCumulative
    extends java.lang.Object
    Double Cumulative metric, to report instantaneous measurement of a double value. Cumulative values can go up or stay the same, but can never go down. Cumulative values cannot be negative.

    Example 1: Create a Cumulative with default labels.

    
     class YourClass {
    
       private static final MetricRegistry metricRegistry = Metrics.getMetricRegistry();
    
       List<LabelKey> labelKeys = Arrays.asList(LabelKey.create("Name", "desc"));
    
       DoubleCumulative cumulative = metricRegistry.addDoubleCumulative("processed_jobs",
                           "Processed jobs", "1", labelKeys);
    
       // It is recommended to keep a reference of a point for manual operations.
       DoublePoint defaultPoint = cumulative.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"));
    
       DoubleCumulative cumulative = metricRegistry.addDoubleCumulative("processed_jobs",
                           "Processed jobs", "1", labelKeys);
    
       // It is recommended to keep a reference of a point for manual operations.
       DoublePoint inboundPoint = cumulative.getOrCreateTimeSeries(labelValues);
    
       void doSomeWork() {
          // Your code here.
          inboundPoint.set(15);
       }
    
     }
     
    Since:
    0.21
    • Constructor Detail

      • DoubleCumulative

        public DoubleCumulative()
    • Method Detail

      • getOrCreateTimeSeries

        public abstract DoubleCumulative.DoublePoint getOrCreateTimeSeries​(java.util.List<LabelValue> labelValues)
        Creates a TimeSeries and returns a DoublePoint if the specified labelValues is not already associated with this cumulative, 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.addDoubleCumulative(java.lang.String, io.opencensus.metrics.MetricOptions).
        Returns:
        a DoublePoint the value of single cumulative.
        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.21
      • getDefaultTimeSeries

        public abstract DoubleCumulative.DoublePoint getDefaultTimeSeries()
        Returns a DoublePoint for a cumulative with all labels not set, or default labels.
        Returns:
        a DoublePoint for a cumulative with all labels not set, or default labels.
        Since:
        0.21
      • removeTimeSeries

        public abstract void removeTimeSeries​(java.util.List<LabelValue> labelValues)
        Removes the TimeSeries from the cumulative 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.21
      • clear

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

        static DoubleCumulative newNoopDoubleCumulative​(java.lang.String name,
                                                        java.lang.String description,
                                                        java.lang.String unit,
                                                        java.util.List<LabelKey> labelKeys)
        Returns the no-op implementation of the DoubleCumulative.
        Returns:
        the no-op implementation of the DoubleCumulative.
        Since:
        0.21