Package io.micrometer.core.instrument
Class AbstractTimer
java.lang.Object
io.micrometer.core.instrument.AbstractMeter
io.micrometer.core.instrument.AbstractTimer
- All Implemented Interfaces:
HistogramSupport,Meter,Timer
- Direct Known Subclasses:
CumulativeTimer,DropwizardTimer,StepTimer
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.micrometer.core.instrument.Meter
Meter.Builder, Meter.Id, Meter.MeterProvider<T extends Meter>, Meter.TypeNested classes/interfaces inherited from interface io.micrometer.core.instrument.Timer
Timer.Builder, Timer.ResourceSample, Timer.Sample -
Field Summary
Fields -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractTimer(Meter.Id id, Clock clock, DistributionStatisticConfig distributionStatisticConfig, PauseDetector pauseDetector, TimeUnit baseTimeUnit) Deprecated.Timer implementations should now declare at construction time whether they support aggregable percentiles or not.protectedAbstractTimer(Meter.Id id, Clock clock, DistributionStatisticConfig distributionStatisticConfig, PauseDetector pauseDetector, TimeUnit baseTimeUnit, boolean supportsAggregablePercentiles) Creates a new timer.protectedAbstractTimer(Meter.Id id, Clock clock, PauseDetector pauseDetector, TimeUnit baseTimeUnit, Histogram histogram) Creates a new timer. -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()protected static HistogramdefaultHistogram(Clock clock, DistributionStatisticConfig distributionStatisticConfig, boolean supportsAggregablePercentiles) Creates a default histogram.final voidUpdates the statistics kept by the timer with the specified amount.voidExecutes the runnablefand records the time taken.booleanExecutes the Supplierfand records the time taken.doubleExecutes the Supplierfand records the time taken.intExecutes the Supplierfand records the time taken.longExecutes the Supplierfand records the time taken.<T> TExecutes the Supplierfand records the time taken.<T> TrecordCallable(Callable<T> f) Executes the callablefand records the time taken.protected abstract voidrecordNonNegative(long amount, TimeUnit unit) Summary statistics should be published off of a single snapshot instance so that, for example, there isn't disagreement between the distribution's bucket counts because more events continue to stream in.Methods inherited from class io.micrometer.core.instrument.AbstractMeter
equals, getId, hashCodeMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.micrometer.core.instrument.distribution.HistogramSupport
takeSnapshot
-
Field Details
-
clock
-
histogram
-
-
Constructor Details
-
AbstractTimer
@Deprecated protected AbstractTimer(Meter.Id id, Clock clock, DistributionStatisticConfig distributionStatisticConfig, PauseDetector pauseDetector, TimeUnit baseTimeUnit) Deprecated.Timer implementations should now declare at construction time whether they support aggregable percentiles or not. By declaring it up front, Micrometer can memory optimize the histogram structure used to store distribution statistics.Creates a new timer.- Parameters:
id- The timer's name and tags.clock- The clock used to measure latency.distributionStatisticConfig- Configuration determining which distribution statistics are sent.pauseDetector- Compensation for coordinated omission.baseTimeUnit- The time scale of this timer.
-
AbstractTimer
protected AbstractTimer(Meter.Id id, Clock clock, DistributionStatisticConfig distributionStatisticConfig, PauseDetector pauseDetector, TimeUnit baseTimeUnit, boolean supportsAggregablePercentiles) Creates a new timer.- Parameters:
id- The timer's name and tags.clock- The clock used to measure latency.distributionStatisticConfig- Configuration determining which distribution statistics are sent.pauseDetector- Compensation for coordinated omission.baseTimeUnit- The time scale of this timer.supportsAggregablePercentiles- Indicates whether the registry supports percentile approximations from histograms.
-
AbstractTimer
protected AbstractTimer(Meter.Id id, Clock clock, PauseDetector pauseDetector, TimeUnit baseTimeUnit, Histogram histogram) Creates a new timer.- Parameters:
id- The timer's name and tags.clock- The clock used to measure latency.pauseDetector- Compensation for coordinated omission.baseTimeUnit- The time scale of this timer.histogram- Histogram.- Since:
- 1.11.0
-
-
Method Details
-
defaultHistogram
protected static Histogram defaultHistogram(Clock clock, DistributionStatisticConfig distributionStatisticConfig, boolean supportsAggregablePercentiles) Creates a default histogram.- Parameters:
clock- The clock used to measure latency.distributionStatisticConfig- Configuration determining which distribution statistics are sent.supportsAggregablePercentiles- Indicates whether the registry supports percentile approximations from histograms.- Returns:
- a default histogram
- Since:
- 1.11.0
-
recordCallable
Description copied from interface:TimerExecutes the callablefand records the time taken.- Specified by:
recordCallablein interfaceTimer- 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:
Exception- Any exception bubbling up from the callable.
-
record
Description copied from interface:TimerExecutes the Supplierfand records the time taken. -
record
Description copied from interface:TimerExecutes the Supplierfand records the time taken. -
record
Description copied from interface:TimerExecutes the Supplierfand records the time taken. -
record
Description copied from interface:TimerExecutes the Supplierfand records the time taken. -
record
Description copied from interface:TimerExecutes the Supplierfand records the time taken. -
record
Description copied from interface:TimerExecutes the runnablefand records the time taken. -
record
Description copied from interface:TimerUpdates the statistics kept by the timer with the specified amount. -
recordNonNegative
-
takeSnapshot
Description copied from interface:HistogramSupportSummary statistics should be published off of a single snapshot instance so that, for example, there isn't disagreement between the distribution's bucket counts because more events continue to stream in.- Specified by:
takeSnapshotin interfaceHistogramSupport- Returns:
- A snapshot of all distribution statistics at a point in time.
-
baseTimeUnit
- Specified by:
baseTimeUnitin interfaceTimer- Returns:
- The base time unit of the timer to which all published metrics will be scaled
-
close
public void close()
-