summaryrefslogtreecommitdiffstats
path: root/messagebus
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-04-13 18:33:40 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2019-04-13 18:33:40 +0200
commit6756cd21d2bc11e12e2b6f3ad15d0f5655f1f5c6 (patch)
tree7b05f8febad87b83d004c70ce0874ce86d32b8cb /messagebus
parent41013594ee3ece43913ba717f04e72339d5cd222 (diff)
GC unused metrics instead of guarding it.
Diffstat (limited to 'messagebus')
-rw-r--r--messagebus/abi-spec.json1
-rw-r--r--messagebus/src/main/java/com/yahoo/messagebus/MessageBus.java15
-rw-r--r--messagebus/src/main/java/com/yahoo/messagebus/SendProxy.java14
-rw-r--r--messagebus/src/main/java/com/yahoo/messagebus/metrics/AverageMetric.java52
-rw-r--r--messagebus/src/main/java/com/yahoo/messagebus/metrics/MessageBusMetricSet.java42
-rw-r--r--messagebus/src/main/java/com/yahoo/messagebus/metrics/MetricSet.java2
-rw-r--r--messagebus/src/main/java/com/yahoo/messagebus/metrics/RouteMetricSet.java45
-rwxr-xr-xmessagebus/src/main/java/com/yahoo/messagebus/routing/RoutingNode.java11
8 files changed, 0 insertions, 182 deletions
diff --git a/messagebus/abi-spec.json b/messagebus/abi-spec.json
index 876bf4a6960..54c5c782cb5 100644
--- a/messagebus/abi-spec.json
+++ b/messagebus/abi-spec.json
@@ -307,7 +307,6 @@
"public void register(com.yahoo.messagebus.MessageBus$SendBlockedMessages)",
"public void <init>(com.yahoo.messagebus.network.Network, java.util.List)",
"public void <init>(com.yahoo.messagebus.network.Network, com.yahoo.messagebus.MessageBusParams)",
- "public com.yahoo.messagebus.metrics.MessageBusMetricSet getMetrics()",
"public boolean destroy()",
"public void sync()",
"public com.yahoo.messagebus.SourceSession createSourceSession(com.yahoo.messagebus.ReplyHandler)",
diff --git a/messagebus/src/main/java/com/yahoo/messagebus/MessageBus.java b/messagebus/src/main/java/com/yahoo/messagebus/MessageBus.java
index 393cf420ae1..5622aebab66 100644
--- a/messagebus/src/main/java/com/yahoo/messagebus/MessageBus.java
+++ b/messagebus/src/main/java/com/yahoo/messagebus/MessageBus.java
@@ -4,7 +4,6 @@ package com.yahoo.messagebus;
import com.yahoo.concurrent.CopyOnWriteHashMap;
import com.yahoo.concurrent.SystemTimer;
import com.yahoo.log.LogLevel;
-import com.yahoo.messagebus.metrics.MessageBusMetricSet;
import com.yahoo.messagebus.network.Network;
import com.yahoo.messagebus.network.NetworkOwner;
import com.yahoo.messagebus.routing.Resender;
@@ -74,7 +73,6 @@ public class MessageBus implements ConfigHandler, NetworkOwner, MessageHandler,
private int pendingSize = 0;
private final Thread careTaker = new Thread(this::sendBlockedMessages);
private final ConcurrentHashMap<SendBlockedMessages, Long> blockedSenders = new ConcurrentHashMap<>();
- private MessageBusMetricSet metrics = new MessageBusMetricSet();
public interface SendBlockedMessages {
/**
@@ -131,10 +129,6 @@ public class MessageBus implements ConfigHandler, NetworkOwner, MessageHandler,
maxPendingSize = params.getMaxPendingSize();
for (int i = 0, len = params.getNumProtocols(); i < len; ++i) {
protocolRepository.putProtocol(params.getProtocol(i));
-
- if (params.getProtocol(i).getMetrics() != null) {
- metrics.protocols.addMetric(params.getProtocol(i).getMetrics());
- }
}
// Attach and start network.
@@ -160,15 +154,6 @@ public class MessageBus implements ConfigHandler, NetworkOwner, MessageHandler,
}
/**
- * <p>Returns the metrics used by this messagebus.</p>
- *
- * @return The metric set.
- */
- public MessageBusMetricSet getMetrics() {
- return metrics;
- }
-
- /**
* <p>Sets the destroyed flag to true. The very first time this method is
* called, it cleans up all its dependencies. Even if you retain a reference
* to this object, all of its content is allowed to be garbage
diff --git a/messagebus/src/main/java/com/yahoo/messagebus/SendProxy.java b/messagebus/src/main/java/com/yahoo/messagebus/SendProxy.java
index ddddaf23299..781235847a0 100644
--- a/messagebus/src/main/java/com/yahoo/messagebus/SendProxy.java
+++ b/messagebus/src/main/java/com/yahoo/messagebus/SendProxy.java
@@ -1,8 +1,6 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.messagebus;
-import com.yahoo.concurrent.SystemTimer;
-import com.yahoo.messagebus.metrics.RouteMetricSet;
import com.yahoo.messagebus.network.Network;
import com.yahoo.messagebus.routing.Resender;
import com.yahoo.messagebus.routing.RoutingNode;
@@ -24,7 +22,6 @@ public class SendProxy implements MessageHandler, ReplyHandler {
private final Resender resender;
private Message msg = null;
private boolean logTrace = false;
- private final long sendTime;
/**
* Constructs a new instance of this class to maintain sending of a single message.
@@ -37,7 +34,6 @@ public class SendProxy implements MessageHandler, ReplyHandler {
this.mbus = mbus;
this.net = net;
this.resender = resender;
- sendTime = SystemTimer.INSTANCE.milliTime();
}
public void handleMessage(Message msg) {
@@ -76,16 +72,6 @@ public class SendProxy implements MessageHandler, ReplyHandler {
reply.swapState(msg);
reply.setMessage(msg);
- if (msg.getRoute() != null) {
- RouteMetricSet metrics = mbus.getMetrics().getRouteMetrics(msg.getRoute());
- for (int i = 0; i < reply.getNumErrors(); i++) {
- metrics.addFailure(reply.getError(i));
- }
- if (reply.getNumErrors() == 0) {
- metrics.latency.addValue(msg.getTimeReceived() - sendTime);
- }
- }
-
ReplyHandler handler = reply.popHandler();
handler.handleReply(reply);
}
diff --git a/messagebus/src/main/java/com/yahoo/messagebus/metrics/AverageMetric.java b/messagebus/src/main/java/com/yahoo/messagebus/metrics/AverageMetric.java
deleted file mode 100644
index d802e1a2c63..00000000000
--- a/messagebus/src/main/java/com/yahoo/messagebus/metrics/AverageMetric.java
+++ /dev/null
@@ -1,52 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.messagebus.metrics;
-
-import com.yahoo.text.XMLWriter;
-import com.yahoo.text.Utf8String;
-
-/**
- * @author thomasg
- */
-public class AverageMetric extends Metric {
- double sum = 0;
- double min = 0;
- double max = 0;
- int count = 0;
-
-
- public AverageMetric(String name, MetricSet owner) {
- super(name);
- owner.addMetric(this);
- }
-
- public void addValue(double value) {
- sum += value;
- count++;
-
- if (min == 0 || value < min) {
- min = value;
- }
- if (max == 0 || value > max) {
- max = value;
- }
-
- }
-
- static private final Utf8String attrValue = new Utf8String("value");
- static private final Utf8String attrCount = new Utf8String("count");
- static private final Utf8String attrMin = new Utf8String("min");
- static private final Utf8String attrMax = new Utf8String("max");
-
- @Override
- public void toXML(XMLWriter writer) {
- renderXmlName(writer);
-
- if (count > 0) {
- writer.attribute(attrValue, (sum / count));
- writer.attribute(attrCount, count);
- writer.attribute(attrMin, min);
- writer.attribute(attrMax, max);
- }
- writer.closeTag();
- }
-}
diff --git a/messagebus/src/main/java/com/yahoo/messagebus/metrics/MessageBusMetricSet.java b/messagebus/src/main/java/com/yahoo/messagebus/metrics/MessageBusMetricSet.java
deleted file mode 100644
index ad1d97a25ad..00000000000
--- a/messagebus/src/main/java/com/yahoo/messagebus/metrics/MessageBusMetricSet.java
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.messagebus.metrics;
-
-import com.yahoo.concurrent.CopyOnWriteHashMap;
-import com.yahoo.messagebus.Reply;
-import com.yahoo.messagebus.routing.Route;
-
-/**
- * @author thomasg
- */
-public class MessageBusMetricSet extends MetricSet {
- public MetricSet protocols = new MetricSet("protocols");
-
- private final CopyOnWriteHashMap<String, RouteMetricSet> routeMetrics = new CopyOnWriteHashMap<String, RouteMetricSet>();
-
- public MessageBusMetricSet() {
- super("messagebus");
- addMetric(protocols);
- }
-
- public RouteMetricSet getRouteMetrics(Route r) {
- String route = r.toString();
- RouteMetricSet metric = routeMetrics.get(route);
- if (metric == null) {
- synchronized (routeMetrics) {
- metric = routeMetrics.get(route);
- if (metric == null) {
- metric = new RouteMetricSet(route);
- addMetric(metric);
- routeMetrics.put(route, metric);
- }
- }
- }
-
- return metric;
- }
-
- public void updateMetrics(Reply reply, Route r) {
-
- }
-
-}
diff --git a/messagebus/src/main/java/com/yahoo/messagebus/metrics/MetricSet.java b/messagebus/src/main/java/com/yahoo/messagebus/metrics/MetricSet.java
index 472a9a3d2f1..44264246b3a 100644
--- a/messagebus/src/main/java/com/yahoo/messagebus/metrics/MetricSet.java
+++ b/messagebus/src/main/java/com/yahoo/messagebus/metrics/MetricSet.java
@@ -3,8 +3,6 @@ package com.yahoo.messagebus.metrics;
import com.yahoo.text.XMLWriter;
-import java.io.StringWriter;
-import java.io.Writer;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
diff --git a/messagebus/src/main/java/com/yahoo/messagebus/metrics/RouteMetricSet.java b/messagebus/src/main/java/com/yahoo/messagebus/metrics/RouteMetricSet.java
deleted file mode 100644
index b66fcc2f643..00000000000
--- a/messagebus/src/main/java/com/yahoo/messagebus/metrics/RouteMetricSet.java
+++ /dev/null
@@ -1,45 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-package com.yahoo.messagebus.metrics;
-
-import com.yahoo.messagebus.ErrorCode;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author thomasg
- */
-public class RouteMetricSet extends MetricSet {
- public MetricSet allErrors = new MetricSet("errors");
- public MetricSet failures = new MetricSet("failures");
- public AverageMetric latency = new AverageMetric("latency", this);
-
- private Map<Integer, CountMetric> errorMap = new HashMap<Integer, CountMetric>();
-
- RouteMetricSet(String route) {
- super(route);
- setXmlTagName("messages");
- addMetric(allErrors);
- addMetric(failures);
- }
-
- public void addError(com.yahoo.messagebus.Error e) {
- CountMetric metric = errorMap.get(e.getCode());
- if (metric == null) {
- metric = new CountMetric(ErrorCode.getName(e.getCode()), allErrors);
- metric.setXmlTagName("error");
- errorMap.put(e.getCode(), metric);
- }
- metric.inc(1);
- }
-
- public void addFailure(com.yahoo.messagebus.Error e) {
- CountMetric metric = errorMap.get(e.getCode());
- if (metric == null) {
- metric = new CountMetric(ErrorCode.getName(e.getCode()), failures);
- metric.setXmlTagName("failure");
- errorMap.put(e.getCode(), metric);
- }
- metric.inc(1);
- }
-}
diff --git a/messagebus/src/main/java/com/yahoo/messagebus/routing/RoutingNode.java b/messagebus/src/main/java/com/yahoo/messagebus/routing/RoutingNode.java
index e04cccfcbd1..e98a3820ff2 100755
--- a/messagebus/src/main/java/com/yahoo/messagebus/routing/RoutingNode.java
+++ b/messagebus/src/main/java/com/yahoo/messagebus/routing/RoutingNode.java
@@ -12,7 +12,6 @@ import com.yahoo.messagebus.SendProxy;
import com.yahoo.messagebus.Trace;
import com.yahoo.messagebus.TraceLevel;
import com.yahoo.messagebus.TraceNode;
-import com.yahoo.messagebus.metrics.RouteMetricSet;
import com.yahoo.messagebus.network.Network;
import com.yahoo.messagebus.network.ServiceAddress;
@@ -51,7 +50,6 @@ public class RoutingNode implements ReplyHandler {
private ServiceAddress serviceAddress = null;
private boolean isActive = true;
private boolean shouldRetry = false;
- private RouteMetricSet routeMetrics;
/**
* Constructs a new instance of this class. This is the root node constructor, and will be used by the different
@@ -73,10 +71,6 @@ public class RoutingNode implements ReplyHandler {
this.trace = new Trace(msg.getTrace().getLevel());
this.route = msg.getRoute();
this.parent = null;
-
- if (route != null) {
- routeMetrics = mbus.getMetrics().getRouteMetrics(route);
- }
}
/**
@@ -814,11 +808,6 @@ public class RoutingNode implements ReplyHandler {
@Override
public void handleReply(Reply reply) {
setReply(reply);
- if (routeMetrics != null) {
- for (int i = 0; i < reply.getNumErrors(); i++) {
- routeMetrics.addError(reply.getError(i));
- }
- }
notifyParent();
}
}