Class LongCumulative

  • Direct Known Subclasses:
    LongCumulative.NoopLongCumulative, LongCumulativeImpl

    @ThreadSafe
    public abstract class LongCumulative
    extends java.lang.Object
    Long Cumulative metric, to report instantaneous measurement of an int64 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"));
    
       LongCumulative cumulative = metricRegistry.addLongCumulative(
         "processed_jobs", "Processed jobs", "1", labelKeys);
    
       // It is recommended to keep a reference of a point for manual operations.
       LongPoint 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"));
    
       LongCumulative cumulative = metricRegistry.addLongCumulative(
         "processed_jobs", "Processed jobs", "1", labelKeys);
    
       // It is recommended to keep a reference of a point for manual operations.
       LongPoint inboundPoint = cumulative.getOrCreateTimeSeries(labelValues);
    
       void doSomeWork() {
          // Your code here.
          inboundPoint.set(15);
       }
    
     }
     
    Since:
    0.21
    • Constructor Detail

      • LongCumulative

        public LongCumulative()
    • Method Detail

      • getDefaultTimeSeries

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

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

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