Class DerivedLongGauge

java.lang.Object
io.opencensus.metrics.DerivedLongGauge
Direct Known Subclasses:
DerivedLongGauge.NoopDerivedLongGauge, DerivedLongGaugeImpl

@ThreadSafe public abstract class DerivedLongGauge extends Object
Derived 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: Create a Gauge with an object and a callback function.


 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"));

   DerivedLongGauge gauge = metricRegistry.addDerivedLongGauge(
       "queue_size", "Pending jobs in a queue", "1", labelKeys);

   QueueManager queueManager = new QueueManager();
   gauge.createTimeSeries(labelValues, queueManager,
         new ToLongFunction<QueueManager>() {
           {@literal @}Override
           public long applyAsLong(QueueManager queue) {
             return queue.size();
           }
         });

   void doWork() {
      // Your code here.
   }
 }

 
Since:
0.17
  • Constructor Details

    • DerivedLongGauge

      public DerivedLongGauge()
  • Method Details

    • createTimeSeries

      public abstract <T> void createTimeSeries(List<LabelValue> labelValues, T obj, ToLongFunction<T> function)
      Creates a TimeSeries. The value of a single point in the TimeSeries is observed from a callback function. This function is invoked whenever metrics are collected, meaning the reported value is up-to-date. It keeps a WeakReference to the object and it is the user's responsibility to manage the lifetime of the object.
      Type Parameters:
      T - the type of the object upon which the function derives a measurement.
      Parameters:
      labelValues - the list of label values.
      obj - the state object from which the function derives a measurement.
      function - the function to be called.
      Throws:
      NullPointerException - if labelValues is null OR any element of labelValues is null OR function is null.
      IllegalArgumentException - if different time series with the same labels already exists OR if number of labelValuess are not equal to the label keys.
      Since:
      0.17
    • removeTimeSeries

      public abstract void removeTimeSeries(List<LabelValue> labelValues)
      Removes the TimeSeries from the gauge metric, if it is present.
      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.
      Since:
      0.17
    • newNoopDerivedLongGauge

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