Interface LongTaskTimer

All Superinterfaces:
Meter
All Known Implementing Classes:
DefaultLongTaskTimer, NoopLongTaskTimer

public interface LongTaskTimer
extends Meter
A long task timer is used to track the total duration of all in-flight long-running tasks and the number of such tasks.
  • Nested Class Summary

    Nested Classes 
    Modifier and Type Interface Description
    static class  LongTaskTimer.Builder
    Fluent builder for long task timers.
    static class  LongTaskTimer.Sample  

    Nested classes/interfaces inherited from interface io.micrometer.core.instrument.Meter

    Meter.Id, Meter.Type
  • Method Summary

    Modifier and Type Method Description
    int activeTasks()  
    static LongTaskTimer.Builder builder​(Timed timed)
    Create a timer builder from a Timed annotation.
    static LongTaskTimer.Builder builder​(java.lang.String name)  
    double duration​(long task, java.util.concurrent.TimeUnit unit)
    The current duration for an active task.
    double duration​(java.util.concurrent.TimeUnit unit)  
    default java.lang.Iterable<Measurement> measure()
    Get a set of measurements.
    default void record​(java.lang.Runnable f)
    Executes the runnable f and records the time taken.
    default void record​(java.util.function.Consumer<LongTaskTimer.Sample> f)
    Executes the runnable f and records the time taken.
    default <T> T record​(java.util.function.Supplier<T> f)
    Executes the callable f and records the time taken.
    default <T> T recordCallable​(java.util.concurrent.Callable<T> f)
    Executes the callable f and records the time taken.
    LongTaskTimer.Sample start()
    Start keeping time for a task.
    long stop​(long task)
    Mark a given task as completed.

    Methods inherited from interface io.micrometer.core.instrument.Meter

    close, getId, match, use
  • Method Details

    • builder

      static LongTaskTimer.Builder builder​(java.lang.String name)
    • builder

      static LongTaskTimer.Builder builder​(Timed timed)
      Create a timer builder from a Timed annotation.
      Parameters:
      timed - The annotation instance to base a new timer on.
      Returns:
      This builder.
    • recordCallable

      default <T> T recordCallable​(java.util.concurrent.Callable<T> f) throws java.lang.Exception
      Executes the callable f and records the time taken.
      Type Parameters:
      T - The return type of the Callable.
      Parameters:
      f - Function to execute and measure the execution time.
      Returns:
      The return value of f.
      Throws:
      java.lang.Exception - Any exception bubbling up from the callable.
    • record

      default <T> T record​(java.util.function.Supplier<T> f)
      Executes the callable f and records the time taken.
      Type Parameters:
      T - The return type of the Supplier.
      Parameters:
      f - Function to execute and measure the execution time.
      Returns:
      The return value of f.
    • record

      default void record​(java.util.function.Consumer<LongTaskTimer.Sample> f)
      Executes the runnable f and records the time taken.
      Parameters:
      f - Function to execute and measure the execution time with a reference to the timer id useful for looking up current duration.
    • record

      default void record​(java.lang.Runnable f)
      Executes the runnable f and records the time taken.
      Parameters:
      f - Function to execute and measure the execution time.
    • start

      Start keeping time for a task.
      Returns:
      A task id that can be used to look up how long the task has been running.
    • stop

      long stop​(long task)
      Mark a given task as completed.
      Parameters:
      task - Id for the task to stop. This should be the value returned from start().
      Returns:
      Duration for the task in nanoseconds. A -1 value will be returned for an unknown task.
    • duration

      double duration​(long task, java.util.concurrent.TimeUnit unit)
      The current duration for an active task.
      Parameters:
      task - Id for the task to stop. This should be the value returned from start().
      unit - The time unit to scale the duration to.
      Returns:
      Duration for the task. A -1 value will be returned for an unknown task.
    • duration

      double duration​(java.util.concurrent.TimeUnit unit)
      Parameters:
      unit - The time unit to scale the duration to.
      Returns:
      The cumulative duration of all current tasks.
    • activeTasks

      int activeTasks()
      Returns:
      The current number of tasks being executed.
    • measure

      default java.lang.Iterable<Measurement> measure()
      Description copied from interface: Meter
      Get a set of measurements. Should always return the same number of measurements and in the same order, regardless of the level of activity or the lack thereof.
      Specified by:
      measure in interface Meter
      Returns:
      The set of measurements that represents the instantaneous value of this meter.