public abstract class AbstractTimer extends AbstractMeter implements Timer
Timer.Builder, Timer.Sample
Meter.Id, Meter.Type
Modifier and Type | Field and Description |
---|---|
protected Clock |
clock |
protected Histogram |
histogram |
Modifier | Constructor and Description |
---|---|
protected |
AbstractTimer(Meter.Id id,
Clock clock,
DistributionStatisticConfig distributionStatisticConfig,
PauseDetector pauseDetector,
java.util.concurrent.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.
|
protected |
AbstractTimer(Meter.Id id,
Clock clock,
DistributionStatisticConfig distributionStatisticConfig,
PauseDetector pauseDetector,
java.util.concurrent.TimeUnit baseTimeUnit,
boolean supportsAggregablePercentiles)
Creates a new timer.
|
Modifier and Type | Method and Description |
---|---|
java.util.concurrent.TimeUnit |
baseTimeUnit() |
void |
close() |
boolean |
equals(java.lang.Object o) |
int |
hashCode() |
void |
record(long amount,
java.util.concurrent.TimeUnit unit)
Updates the statistics kept by the timer with the specified amount.
|
void |
record(java.lang.Runnable f)
Executes the runnable
f and records the time taken. |
<T> T |
record(java.util.function.Supplier<T> f)
Executes the Supplier
f and records the time taken. |
<T> T |
recordCallable(java.util.concurrent.Callable<T> f)
Executes the callable
f and records the time taken. |
protected abstract void |
recordNonNegative(long amount,
java.util.concurrent.TimeUnit unit) |
HistogramSnapshot |
takeSnapshot()
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.
|
getId
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
builder, builder, count, histogramCountAtValue, max, mean, measure, percentile, record, start, start, start, totalTime, wrap, wrap
takeSnapshot
@Deprecated protected AbstractTimer(Meter.Id id, Clock clock, DistributionStatisticConfig distributionStatisticConfig, PauseDetector pauseDetector, java.util.concurrent.TimeUnit baseTimeUnit)
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.protected AbstractTimer(Meter.Id id, Clock clock, DistributionStatisticConfig distributionStatisticConfig, PauseDetector pauseDetector, java.util.concurrent.TimeUnit baseTimeUnit, boolean supportsAggregablePercentiles)
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.public <T> T recordCallable(java.util.concurrent.Callable<T> f) throws java.lang.Exception
Timer
f
and records the time taken.recordCallable
in interface Timer
T
- The return type of the Callable
.f
- Function to execute and measure the execution time.f
.java.lang.Exception
- Any exception bubbling up from the callable.public <T> T record(java.util.function.Supplier<T> f)
Timer
f
and records the time taken.public void record(java.lang.Runnable f)
Timer
f
and records the time taken.public final void record(long amount, java.util.concurrent.TimeUnit unit)
Timer
protected abstract void recordNonNegative(long amount, java.util.concurrent.TimeUnit unit)
public HistogramSnapshot takeSnapshot()
HistogramSupport
takeSnapshot
in interface HistogramSupport
public java.util.concurrent.TimeUnit baseTimeUnit()
baseTimeUnit
in interface Timer
public boolean equals(@Nullable java.lang.Object o)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object