Package io.prometheus.client
Class SimpleTimer
java.lang.Object
io.prometheus.client.SimpleTimer
SimpleTimer, to measure elapsed duration in seconds as a double.
This is a helper class intended to measure latencies and encapsulate the conversion to seconds without losing precision.
Keep in mind that preferred approaches avoid using this mechanism if possible, since latency metrics broken out by
outcome should be minimized; Summary.startTimer()
and Histogram.startTimer()
are preferred.
Consider moving outcome labels to a separate metric like a counter.
Example usage:
class YourClass {
static final Summary requestLatency = Summary.build()
.name("requests_latency_seconds")
.help("Request latency in seconds.")
.labelNames("aLabel")
.register();
void processRequest(Request req) {
SimpleTimer requestTimer = new SimpleTimer();
try {
// Your code here.
} finally {
requestLatency.labels("aLabelValue").observe(requestTimer.elapsedSeconds());
}
}
}
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescription(package private) static SimpleTimer.TimeProvider
private final long
private final SimpleTimer.TimeProvider
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondouble
static double
elapsedSecondsFromNanos
(long startNanos, long endNanos)
-
Field Details
-
start
private final long start -
defaultTimeProvider
-
timeProvider
-
-
Constructor Details
-
SimpleTimer
SimpleTimer(SimpleTimer.TimeProvider timeProvider) -
SimpleTimer
public SimpleTimer()
-
-
Method Details
-
elapsedSeconds
public double elapsedSeconds()- Returns:
- Measured duration in seconds since
SimpleTimer
was constructed.
-
elapsedSecondsFromNanos
public static double elapsedSecondsFromNanos(long startNanos, long endNanos)
-