Interface LongUpDownCounter

  • All Superinterfaces:
    Instrument, SynchronousInstrument<LongUpDownCounter.BoundLongUpDownCounter>

    @ThreadSafe
    public interface LongUpDownCounter
    extends SynchronousInstrument<LongUpDownCounter.BoundLongUpDownCounter>
    UpDownCounter is a synchronous instrument and very similar to Counter except that Add(increment) supports negative increments. This makes UpDownCounter not useful for computing a rate aggregation. The default aggregation is `Sum`, only the sum is non-monotonic. It is generally useful for capturing changes in an amount of resources used, or any quantity that rises and falls during a request.

    Example:

    
     class YourClass {
       private static final Meter meter = OpenTelemetry.getMeterProvider().get("my_library_name");
       private static final LongUpDownCounter upDownCounter =
           meter.
               .longUpDownCounterBuilder("active_tasks")
               .setDescription("Number of active tasks")
               .setUnit("1")
               .build();
    
       // It is recommended that the API user keep a reference to a Bound Counter.
       private static final BoundLongUpDownCounter someWorkBound =
           upDownCounter.bind("work_name", "some_work");
    
       void doSomeWork() {
          someWorkBound.add(1);
          // Your code here.
          someWorkBound.add(-1);
       }
     }
     
    • Method Detail

      • add

        void add​(long increment,
                 Labels labels)
        Adds the given increment to the current value.

        The value added is associated with the current Context and provided set of labels.

        Parameters:
        increment - the value to add.
        labels - the set of labels to be associated to this recording.
      • add

        void add​(long increment)
        Adds the given increment to the current value.

        The value added is associated with the current Context and empty labels.

        Parameters:
        increment - the value to add.