diff options
author | jonmv <venstad@gmail.com> | 2023-07-10 12:24:15 +0200 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2023-07-10 12:24:15 +0200 |
commit | e2db862f291c71d7140c1456faf94266610a0662 (patch) | |
tree | 6225d9594deac8733d0fca594361f23a992bb422 /vespaclient-core/src/main | |
parent | d097d374cbc284b2a0a8459f47e87f9b83c68034 (diff) |
Use consistent timer instance, and set meaningful message timestamps
Diffstat (limited to 'vespaclient-core/src/main')
-rw-r--r-- | vespaclient-core/src/main/java/com/yahoo/clientmetrics/MessageTypeMetricSet.java | 10 | ||||
-rw-r--r-- | vespaclient-core/src/main/java/com/yahoo/clientmetrics/RouteMetricSet.java | 12 |
2 files changed, 17 insertions, 5 deletions
diff --git a/vespaclient-core/src/main/java/com/yahoo/clientmetrics/MessageTypeMetricSet.java b/vespaclient-core/src/main/java/com/yahoo/clientmetrics/MessageTypeMetricSet.java index 46ad5ebfab6..8b798d4b76e 100644 --- a/vespaclient-core/src/main/java/com/yahoo/clientmetrics/MessageTypeMetricSet.java +++ b/vespaclient-core/src/main/java/com/yahoo/clientmetrics/MessageTypeMetricSet.java @@ -1,6 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.clientmetrics; +import com.yahoo.concurrent.Timer; import com.yahoo.documentapi.messagebus.protocol.DocumentIgnoredReply; import com.yahoo.documentapi.messagebus.protocol.DocumentProtocol; import com.yahoo.messagebus.Reply; @@ -12,21 +13,24 @@ import java.util.Map; import java.util.stream.Stream; /** -* @author thomasg +* @author Thomas Gundersen */ public class MessageTypeMetricSet { + public long latency_total; public long latency_min = Long.MAX_VALUE; public long latency_max = Long.MIN_VALUE; public long count = 0; public long ignored = 0; public long errorCount = 0; + public final Timer timer; private final Map<String, Long> errorCounts = new HashMap<>(); private final String msgName; - public MessageTypeMetricSet(String msgName) { + MessageTypeMetricSet(String msgName, Timer timer) { this.msgName = msgName; + this.timer = timer; } public String getMessageName() { @@ -55,7 +59,7 @@ public class MessageTypeMetricSet { private void updateSuccessMetrics(Reply r) { if (!(r instanceof DocumentIgnoredReply)) { if (r.getMessage().getTimeReceived() != 0) { - long latency = (SystemTimer.INSTANCE.milliTime() - r.getMessage().getTimeReceived()); + long latency = (timer.milliTime() - r.getMessage().getTimeReceived()); latency_max = Math.max(latency_max, latency); latency_min = Math.min(latency_min, latency); latency_total += latency; diff --git a/vespaclient-core/src/main/java/com/yahoo/clientmetrics/RouteMetricSet.java b/vespaclient-core/src/main/java/com/yahoo/clientmetrics/RouteMetricSet.java index ebf6246b034..96bcfd4239c 100644 --- a/vespaclient-core/src/main/java/com/yahoo/clientmetrics/RouteMetricSet.java +++ b/vespaclient-core/src/main/java/com/yahoo/clientmetrics/RouteMetricSet.java @@ -1,6 +1,8 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.clientmetrics; +import com.yahoo.concurrent.SystemTimer; +import com.yahoo.concurrent.Timer; import com.yahoo.messagebus.Reply; import java.util.HashMap; @@ -12,6 +14,7 @@ import java.util.Map; public class RouteMetricSet { private final String route; + private final Timer timer; private final ProgressCallback callback; private final Map<Integer, MessageTypeMetricSet> typeMap = new HashMap<>(); @@ -20,18 +23,23 @@ public class RouteMetricSet { void done(RouteMetricSet route); } - public RouteMetricSet(String route, ProgressCallback callback) { + RouteMetricSet(String route, Timer timer, ProgressCallback callback) { this.route = route; + this.timer = timer; this.callback = callback; } + public RouteMetricSet(String route, ProgressCallback callback) { + this(route, SystemTimer.INSTANCE, callback); + } + public Map<Integer, MessageTypeMetricSet> getMetrics() { return typeMap; } public void addReply(Reply r) { MessageTypeMetricSet type = typeMap.get(r.getMessage().getType()); if (type == null) { String msgName = r.getMessage().getClass().getSimpleName().replace("Message", ""); - type = new MessageTypeMetricSet(msgName); + type = new MessageTypeMetricSet(msgName, timer); typeMap.put(r.getMessage().getType(), type); } |