Interface LongUpDownSumObserver

  • All Superinterfaces:
    AsynchronousInstrument<AsynchronousInstrument.LongResult>, Instrument

    @ThreadSafe
    public interface LongUpDownSumObserver
    extends AsynchronousInstrument<AsynchronousInstrument.LongResult>
    UpDownSumObserver is the asynchronous instrument corresponding to UpDownCounter, used to capture a non-monotonic count with Observe(sum).

    "Sum" appears in the name to remind that it is used to capture sums directly. Use a UpDownSumObserver to capture any value that starts at zero and rises or falls throughout the process lifetime.

    A UpDownSumObserver is a good choice in situations where a measurement is expensive to compute, such that it would be wasteful to compute on every request.

    Example:

    
     class YourClass {
    
       private static final Meter meter = OpenTelemetry.getMeterProvider().get("my_library_name");
       private static final LongUpDownSumObserver memoryObserver =
           meter.
               .longUpDownSumObserverBuilder("memory_usage")
               .setDescription("System memory usage")
               .setUnit("by")
               .build();
    
       void init() {
         memoryObserver.setCallback(
             new LongUpDownSumObserver.Callback<LongResult>() {
              {@literal @}Override
               public void update(LongResult result) {
                 // Get system memory usage
                 result.observe(memoryUsed, "state", "used");
                 result.observe(memoryFree, "state", "free");
               }
             });
       }
     }