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 TimeWindowLatencyHistogram |
histogram |
Modifier | Constructor and Description |
---|---|
protected |
AbstractTimer(Meter.Id id,
Clock clock,
DistributionStatisticConfig distributionStatisticConfig,
PauseDetector pauseDetector,
java.util.concurrent.TimeUnit baseTimeUnit) |
Modifier and Type | Method and Description |
---|---|
java.util.concurrent.TimeUnit |
baseTimeUnit() |
void |
close() |
boolean |
equals(java.lang.Object o) |
int |
hashCode() |
double |
histogramCountAtValue(long valueNanos)
Provides cumulative histogram counts.
|
double |
percentile(double percentile,
java.util.concurrent.TimeUnit unit) |
void |
record(long amount,
java.util.concurrent.TimeUnit unit)
Updates the statistics kept by the counter 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) |
DistributionStatisticConfig |
statsConfig() |
HistogramSnapshot |
takeSnapshot(boolean supportsAggregablePercentiles)
Summary statistics should be published off of a single snapshot instance so that, for example, there isn't
disagreement between the distribution's count and total because more events continue to stream in.
|
getId
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
protected final Clock clock
protected final TimeWindowLatencyHistogram histogram
protected AbstractTimer(Meter.Id id, Clock clock, DistributionStatisticConfig distributionStatisticConfig, PauseDetector pauseDetector, java.util.concurrent.TimeUnit baseTimeUnit)
public <T> T recordCallable(java.util.concurrent.Callable<T> f) throws java.lang.Exception
Timer
recordCallable
in interface Timer
T
- The return type of the Callable
.f
- Function to execute and measure the execution time.java.lang.Exception
- Any exception bubbling up from the callable.public <T> T record(java.util.function.Supplier<T> f)
Timer
public void record(java.lang.Runnable f)
Timer
public final void record(long amount, java.util.concurrent.TimeUnit unit)
Timer
protected abstract void recordNonNegative(long amount, java.util.concurrent.TimeUnit unit)
public double percentile(double percentile, java.util.concurrent.TimeUnit unit)
percentile
in interface Timer
percentile
- A percentile in the domain [0, 1]. For example, 0.5 represents the 50th percentile of the
distribution.unit
- The base unit of time to scale the percentile value to.public double histogramCountAtValue(long valueNanos)
Timer
histogramCountAtValue
in interface Timer
valueNanos
- The histogram bucket to retrieve a count for.public HistogramSnapshot takeSnapshot(boolean supportsAggregablePercentiles)
Timer
takeSnapshot
in interface Timer
supportsAggregablePercentiles
- Whether percentile histogram buckets should be included in the list of CountAtBucket
.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
public DistributionStatisticConfig statsConfig()