aboutsummaryrefslogtreecommitdiffstats
path: root/vespajlib/src/main/java/com/yahoo/concurrent/maintenance/JobMetrics.java
diff options
context:
space:
mode:
Diffstat (limited to 'vespajlib/src/main/java/com/yahoo/concurrent/maintenance/JobMetrics.java')
-rw-r--r--vespajlib/src/main/java/com/yahoo/concurrent/maintenance/JobMetrics.java24
1 files changed, 12 insertions, 12 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/concurrent/maintenance/JobMetrics.java b/vespajlib/src/main/java/com/yahoo/concurrent/maintenance/JobMetrics.java
index 4c05d46d782..a43e2156025 100644
--- a/vespajlib/src/main/java/com/yahoo/concurrent/maintenance/JobMetrics.java
+++ b/vespajlib/src/main/java/com/yahoo/concurrent/maintenance/JobMetrics.java
@@ -1,10 +1,7 @@
// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.concurrent.maintenance;
-import java.time.Clock;
-import java.time.Instant;
import java.util.Map;
-import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.BiConsumer;
@@ -15,26 +12,29 @@ import java.util.function.BiConsumer;
*/
public class JobMetrics {
- private final Clock clock;
- private final BiConsumer<String, Instant> metricConsumer;
+ private final BiConsumer<String, Long> metricConsumer;
- private final Map<String, Instant> successfulRuns = new ConcurrentHashMap<>();
+ private final Map<String, Long> incompleteRuns = new ConcurrentHashMap<>();
- public JobMetrics(Clock clock, BiConsumer<String, Instant> metricConsumer) {
- this.clock = Objects.requireNonNull(clock);
+ public JobMetrics(BiConsumer<String, Long> metricConsumer) {
this.metricConsumer = metricConsumer;
}
+ /** Record a run for given job */
+ public void recordRunOf(String job) {
+ incompleteRuns.compute(job, (ignored, run) -> run == null ? 1 : ++run);
+ }
+
/** Record successful run of given job */
public void recordSuccessOf(String job) {
- successfulRuns.put(job, clock.instant());
+ incompleteRuns.put(job, 0L);
}
/** Forward metrics for given job to metric consumer */
public void forward(String job) {
- Instant lastSuccess = successfulRuns.get(job);
- if (lastSuccess != null) {
- metricConsumer.accept(job, lastSuccess);
+ Long incompleteRuns = this.incompleteRuns.get(job);
+ if (incompleteRuns != null) {
+ metricConsumer.accept(job, incompleteRuns);
}
}