Interface LongUpDownCounter

  • All Superinterfaces:
    Instrument, SynchronousInstrument<BoundLongUpDownCounter>

    @ThreadSafe
    public interface LongUpDownCounter
    extends SynchronousInstrument<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.
      • bind

        BoundLongUpDownCounter bind​(Labels labels)
        Description copied from interface: SynchronousInstrument
        Returns a Bound Instrument associated with the specified labels. Multiples requests with the same set of labels may return the same Bound Instrument instance.

        It is recommended that callers keep a reference to the Bound Instrument instead of always calling this method for every operation.

        Specified by:
        bind in interface SynchronousInstrument<BoundLongUpDownCounter>
        Parameters:
        labels - the set of labels, as key-value pairs.
        Returns:
        a Bound Instrument