Package io.micrometer.core.instrument
Interface LongTaskTimer
- All Superinterfaces:
HistogramSupport,Meter
- All Known Implementing Classes:
CumulativeHistogramLongTaskTimer,DefaultLongTaskTimer,NoopLongTaskTimer
public interface LongTaskTimer extends Meter, HistogramSupport
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 classLongTaskTimer.BuilderFluent builder for long task timers.static classLongTaskTimer.SampleNested classes/interfaces inherited from interface io.micrometer.core.instrument.Meter
Meter.Id, Meter.Type -
Method Summary
Modifier and Type Method Description intactiveTasks()java.util.concurrent.TimeUnitbaseTimeUnit()static LongTaskTimer.Builderbuilder(Timed timed)Create a timer builder from aTimedannotation.static LongTaskTimer.Builderbuilder(java.lang.String name)default doubleduration(long task, java.util.concurrent.TimeUnit unit)Deprecated.doubleduration(java.util.concurrent.TimeUnit unit)doublemax(java.util.concurrent.TimeUnit unit)The amount of time the longest running task has been runningdefault doublemean(java.util.concurrent.TimeUnit unit)default java.lang.Iterable<Measurement>measure()Get a set of measurements.default voidrecord(java.lang.Runnable f)Executes the runnablefand records the time taken.default voidrecord(java.util.function.Consumer<LongTaskTimer.Sample> f)Executes the runnablefand records the time taken.default <T> Trecord(java.util.function.Supplier<T> f)Executes the callablefand records the time taken.default <T> TrecordCallable(java.util.concurrent.Callable<T> f)Executes the callablefand records the time taken.LongTaskTimer.Samplestart()Start keeping time for a task.default longstop(long task)Deprecated.Methods inherited from interface io.micrometer.core.instrument.distribution.HistogramSupport
takeSnapshot, takeSnapshot
-
Method Details
-
builder
-
builder
Create a timer builder from aTimedannotation.- 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.ExceptionExecutes the callablefand records the time taken.- Type Parameters:
T- The return type of theCallable.- 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 callablefand records the time taken.- Type Parameters:
T- The return type of theSupplier.- Parameters:
f- Function to execute and measure the execution time.- Returns:
- The return value of
f.
-
record
Executes the runnablefand 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 runnablefand records the time taken.- Parameters:
f- Function to execute and measure the execution time.
-
start
LongTaskTimer.Sample 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.
-
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.
-
mean
default double mean(java.util.concurrent.TimeUnit unit)- Parameters:
unit- The base unit of time to scale the mean to.- Returns:
- The distribution average for all recorded events.
- Since:
- 1.5.1
-
max
double max(java.util.concurrent.TimeUnit unit)The amount of time the longest running task has been running- Parameters:
unit- The time unit to scale the max to.- Returns:
- The maximum active task duration.
- Since:
- 1.5.0
-
baseTimeUnit
java.util.concurrent.TimeUnit baseTimeUnit()- Returns:
- The base time unit of the long task timer to which all published metrics will be scaled
- Since:
- 1.5.0
-
stop
@Deprecated default long stop(long task)Deprecated.UseLongTaskTimer.Sample.stop(). As of 1.5.0, this always returns -1 as tasks no longer have IDs.Mark a given task as completed.- Parameters:
task- Id for the task to stop. This should be the value returned fromstart().- Returns:
- Duration for the task in nanoseconds. A -1 value will be returned for an unknown task.
-
duration
@Deprecated default double duration(long task, java.util.concurrent.TimeUnit unit)Deprecated.UseLongTaskTimer.Sample.duration(TimeUnit). As of 1.5.0, this always returns -1 as tasks no longer have IDs.The current duration for an active task.- Parameters:
task- Id for the task to stop. This should be the value returned fromstart().unit- The time unit to scale the duration to.- Returns:
- Duration for the task. A -1 value will be returned for an unknown task.
-
measure
Description copied from interface:MeterGet 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.
-
LongTaskTimer.Sample.duration(TimeUnit).