summaryrefslogtreecommitdiffstats
path: root/vespaclient-core
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2023-07-10 12:24:15 +0200
committerjonmv <venstad@gmail.com>2023-07-10 12:24:15 +0200
commite2db862f291c71d7140c1456faf94266610a0662 (patch)
tree6225d9594deac8733d0fca594361f23a992bb422 /vespaclient-core
parentd097d374cbc284b2a0a8459f47e87f9b83c68034 (diff)
Use consistent timer instance, and set meaningful message timestamps
Diffstat (limited to 'vespaclient-core')
-rw-r--r--vespaclient-core/src/main/java/com/yahoo/clientmetrics/MessageTypeMetricSet.java10
-rw-r--r--vespaclient-core/src/main/java/com/yahoo/clientmetrics/RouteMetricSet.java12
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);
}