diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2019-04-13 22:19:36 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2019-04-13 22:19:36 +0200 |
commit | ec4e295270f95e36719b7fbbf660125b871bf489 (patch) | |
tree | 4c69c3db84bf45b8efcafaaaf673c1d8e0e1ec5f /documentapi | |
parent | b542fb6b05da7af5c0cda231231d3858bcd9b3d6 (diff) |
Remove some unused metrics code and dewire it.
Diffstat (limited to 'documentapi')
20 files changed, 86 insertions, 226 deletions
diff --git a/documentapi/abi-spec.json b/documentapi/abi-spec.json index 67569ed99fa..cbfe07eb93d 100644 --- a/documentapi/abi-spec.json +++ b/documentapi/abi-spec.json @@ -1421,8 +1421,7 @@ "public void <init>(java.lang.String)", "public void select(com.yahoo.messagebus.routing.RoutingContext)", "public void merge(com.yahoo.messagebus.routing.RoutingContext)", - "public void destroy()", - "public com.yahoo.messagebus.metrics.MetricSet getMetrics()" + "public void destroy()" ], "fields": [] }, @@ -1723,7 +1722,6 @@ "public byte[] encode(com.yahoo.component.Version, com.yahoo.messagebus.Routable)", "public com.yahoo.messagebus.Routable decode(com.yahoo.component.Version, byte[])", "public java.util.List getRoutableTypes(com.yahoo.component.Version)", - "public com.yahoo.messagebus.metrics.MetricSet getMetrics()", "public final com.yahoo.document.DocumentTypeManager getDocumentTypeManager()" ], "fields": [ @@ -1804,9 +1802,7 @@ "interface", "abstract" ], - "methods": [ - "public abstract com.yahoo.messagebus.metrics.MetricSet getMetrics()" - ], + "methods": [], "fields": [] }, "com.yahoo.documentapi.messagebus.protocol.DocumentReply": { @@ -1840,7 +1836,6 @@ "public void select(com.yahoo.messagebus.routing.RoutingContext)", "public void merge(com.yahoo.messagebus.routing.RoutingContext)", "public void destroy()", - "public com.yahoo.messagebus.metrics.MetricSet getMetrics()", "public bridge synthetic void configure(com.yahoo.config.ConfigInstance)" ], "fields": [] @@ -2008,8 +2003,7 @@ "public void <init>(java.lang.String)", "public void select(com.yahoo.messagebus.routing.RoutingContext)", "public void merge(com.yahoo.messagebus.routing.RoutingContext)", - "public void destroy()", - "public com.yahoo.messagebus.metrics.MetricSet getMetrics()" + "public void destroy()" ], "fields": [] }, @@ -2027,8 +2021,7 @@ "public com.yahoo.jrt.slobrok.api.Mirror getMirror()", "public void select(com.yahoo.messagebus.routing.RoutingContext)", "public void merge(com.yahoo.messagebus.routing.RoutingContext)", - "public void destroy()", - "public com.yahoo.messagebus.metrics.MetricSet getMetrics()" + "public void destroy()" ], "fields": [] }, @@ -2175,17 +2168,6 @@ ], "fields": [] }, - "com.yahoo.documentapi.messagebus.protocol.LoadBalancer$Metrics": { - "superClass": "com.yahoo.messagebus.metrics.MetricSet", - "interfaces": [], - "attributes": [ - "public" - ], - "methods": [ - "public void <init>(java.lang.String)" - ], - "fields": [] - }, "com.yahoo.documentapi.messagebus.protocol.LoadBalancer$Node": { "superClass": "java.lang.Object", "interfaces": [], @@ -2201,18 +2183,18 @@ ] }, "com.yahoo.documentapi.messagebus.protocol.LoadBalancer$NodeMetrics": { - "superClass": "com.yahoo.messagebus.metrics.MetricSet", + "superClass": "java.lang.Object", "interfaces": [], "attributes": [ "public" ], "methods": [ - "public void <init>(java.lang.String, com.yahoo.messagebus.metrics.MetricSet)" + "public void <init>()" ], "fields": [ - "public com.yahoo.messagebus.metrics.CountMetric sent", - "public com.yahoo.messagebus.metrics.CountMetric busy", - "public com.yahoo.messagebus.metrics.ValueMetric weight" + "public java.util.concurrent.atomic.AtomicLong sent", + "public java.util.concurrent.atomic.AtomicLong busy", + "public double weight" ] }, "com.yahoo.documentapi.messagebus.protocol.LoadBalancer": { @@ -2222,7 +2204,7 @@ "public" ], "methods": [ - "public void <init>(java.lang.String, java.lang.String, com.yahoo.documentapi.messagebus.protocol.LoadBalancer$Metrics)", + "public void <init>(java.lang.String)", "public java.util.List getNodeWeights()", "public int getIndex(java.lang.String)", "public com.yahoo.documentapi.messagebus.protocol.LoadBalancer$Node getRecipient(com.yahoo.jrt.slobrok.api.Mirror$Entry[])", @@ -2238,8 +2220,7 @@ ], "methods": [ "public void doSelect(com.yahoo.messagebus.routing.RoutingContext)", - "public void merge(com.yahoo.messagebus.routing.RoutingContext)", - "public com.yahoo.messagebus.metrics.MetricSet getMetrics()" + "public void merge(com.yahoo.messagebus.routing.RoutingContext)" ], "fields": [] }, @@ -2252,11 +2233,9 @@ "public" ], "methods": [ - "public void <init>(java.lang.String)", "public void select(com.yahoo.messagebus.routing.RoutingContext)", "public void merge(com.yahoo.messagebus.routing.RoutingContext)", - "public void destroy()", - "public com.yahoo.messagebus.metrics.MetricSet getMetrics()" + "public void destroy()" ], "fields": [] }, @@ -2286,11 +2265,9 @@ "public" ], "methods": [ - "public void <init>(java.lang.String)", "public void select(com.yahoo.messagebus.routing.RoutingContext)", "public void merge(com.yahoo.messagebus.routing.RoutingContext)", "public void destroy()", - "public com.yahoo.messagebus.metrics.MetricSet getMetrics()", "public void configure(com.yahoo.vespa.config.content.MessagetyperouteselectorpolicyConfig)", "public bridge synthetic void configure(com.yahoo.config.ConfigInstance)" ], @@ -2399,8 +2376,7 @@ "public void <init>()", "public void select(com.yahoo.messagebus.routing.RoutingContext)", "public void merge(com.yahoo.messagebus.routing.RoutingContext)", - "public void destroy()", - "public com.yahoo.messagebus.metrics.MetricSet getMetrics()" + "public void destroy()" ], "fields": [] }, @@ -3106,10 +3082,11 @@ "public void init()", "public void doSelect(com.yahoo.messagebus.routing.RoutingContext)", "public void merge(com.yahoo.messagebus.routing.RoutingContext)", - "public void destroy()", - "public com.yahoo.messagebus.metrics.MetricSet getMetrics()" + "public void destroy()" ], - "fields": [] + "fields": [ + "public static final java.lang.String owningBucketStates" + ] }, "com.yahoo.documentapi.messagebus.protocol.SubsetServicePolicy": { "superClass": "java.lang.Object", @@ -3120,11 +3097,9 @@ "public" ], "methods": [ - "public void <init>(java.lang.String)", "public void select(com.yahoo.messagebus.routing.RoutingContext)", "public void merge(com.yahoo.messagebus.routing.RoutingContext)", - "public void destroy()", - "public com.yahoo.messagebus.metrics.MetricSet getMetrics()" + "public void destroy()" ], "fields": [] }, diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/ANDPolicy.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/ANDPolicy.java index dbf68106e07..5e6aae46989 100755 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/ANDPolicy.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/ANDPolicy.java @@ -1,7 +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.documentapi.messagebus.protocol; -import com.yahoo.messagebus.metrics.MetricSet; import com.yahoo.messagebus.routing.Hop; import com.yahoo.messagebus.routing.Route; import com.yahoo.messagebus.routing.RoutingContext; @@ -60,8 +59,4 @@ public class ANDPolicy implements DocumentProtocolRoutingPolicy { public void destroy() { } - - public MetricSet getMetrics() { - return null; - } } diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/DocumentProtocol.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/DocumentProtocol.java index 590a770624f..16ab9a017d0 100755 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/DocumentProtocol.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/DocumentProtocol.java @@ -8,12 +8,10 @@ import com.yahoo.component.VersionSpecification; import com.yahoo.document.DocumentTypeManager; import com.yahoo.document.DocumentTypeManagerConfigurer; import com.yahoo.documentapi.messagebus.loadtypes.LoadTypeSet; -import com.yahoo.documentapi.metrics.DocumentProtocolMetricSet; import com.yahoo.messagebus.ErrorCode; import com.yahoo.messagebus.Protocol; import com.yahoo.messagebus.Reply; import com.yahoo.messagebus.Routable; -import com.yahoo.messagebus.metrics.MetricSet; import com.yahoo.messagebus.routing.RoutingContext; import com.yahoo.messagebus.routing.RoutingNodeIterator; import com.yahoo.messagebus.routing.RoutingPolicy; @@ -34,8 +32,7 @@ import java.util.logging.Logger; public class DocumentProtocol implements Protocol { private static final Logger log = Logger.getLogger(DocumentProtocol.class.getName()); - private final DocumentProtocolMetricSet metrics = new DocumentProtocolMetricSet(); - private final RoutingPolicyRepository routingPolicyRepository = new RoutingPolicyRepository(metrics); + private final RoutingPolicyRepository routingPolicyRepository = new RoutingPolicyRepository(); private final RoutableRepository routableRepository; private final DocumentTypeManager docMan; @@ -232,7 +229,7 @@ public class DocumentProtocol implements Protocol { private final int val; - private Priority(int val) { + Priority(int val) { this.val = val; } @@ -562,9 +559,5 @@ public class DocumentProtocol implements Protocol { return routableRepository.getRoutableTypes(version); } - public MetricSet getMetrics() { - return metrics; - } - final public DocumentTypeManager getDocumentTypeManager() { return docMan; } } diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/DocumentProtocolRoutingPolicy.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/DocumentProtocolRoutingPolicy.java index a6a06afa45e..77bc904ab12 100644 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/DocumentProtocolRoutingPolicy.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/DocumentProtocolRoutingPolicy.java @@ -1,7 +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.documentapi.messagebus.protocol; -import com.yahoo.messagebus.metrics.MetricSet; import com.yahoo.messagebus.routing.RoutingPolicy; @@ -9,7 +8,4 @@ import com.yahoo.messagebus.routing.RoutingPolicy; * @author thomasg */ public interface DocumentProtocolRoutingPolicy extends RoutingPolicy { - - MetricSet getMetrics(); - } diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/DocumentRouteSelectorPolicy.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/DocumentRouteSelectorPolicy.java index c3204c7b5e2..bdb65b28de0 100755 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/DocumentRouteSelectorPolicy.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/DocumentRouteSelectorPolicy.java @@ -2,15 +2,11 @@ package com.yahoo.documentapi.messagebus.protocol; import com.yahoo.config.subscription.ConfigSubscriber; -import com.yahoo.document.Document; import com.yahoo.document.DocumentGet; -import com.yahoo.document.DocumentPut; -import com.yahoo.document.DocumentType; import com.yahoo.document.select.DocumentSelector; import com.yahoo.document.select.Result; import com.yahoo.log.LogLevel; import com.yahoo.messagebus.Message; -import com.yahoo.messagebus.metrics.MetricSet; import com.yahoo.messagebus.routing.Route; import com.yahoo.messagebus.routing.RoutingContext; @@ -181,8 +177,4 @@ public class DocumentRouteSelectorPolicy } } - @Override - public MetricSet getMetrics() { - return null; - } } diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/ErrorPolicy.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/ErrorPolicy.java index b0b662d1e70..f70128618c5 100755 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/ErrorPolicy.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/ErrorPolicy.java @@ -2,7 +2,6 @@ package com.yahoo.documentapi.messagebus.protocol; import com.yahoo.messagebus.EmptyReply; -import com.yahoo.messagebus.metrics.MetricSet; import com.yahoo.messagebus.routing.RoutingContext; /** @@ -36,9 +35,4 @@ public class ErrorPolicy implements DocumentProtocolRoutingPolicy { public void destroy() { } - - - public MetricSet getMetrics() { - return null; - } } diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/ExternPolicy.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/ExternPolicy.java index 051ec44dd07..312fd6e5964 100755 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/ExternPolicy.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/ExternPolicy.java @@ -6,7 +6,6 @@ import com.yahoo.jrt.Transport; import com.yahoo.jrt.slobrok.api.Mirror; import com.yahoo.jrt.slobrok.api.SlobrokList; import com.yahoo.messagebus.ErrorCode; -import com.yahoo.messagebus.metrics.MetricSet; import com.yahoo.messagebus.routing.Hop; import com.yahoo.messagebus.routing.Route; import com.yahoo.messagebus.routing.RoutingContext; @@ -141,9 +140,4 @@ public class ExternPolicy implements DocumentProtocolRoutingPolicy { mirror.shutdown(); orb.transport().shutdown().join(); } - - @Override - public MetricSet getMetrics() { - return null; - } } diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/LoadBalancer.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/LoadBalancer.java index 6a27546ce58..167a480e1aa 100644 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/LoadBalancer.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/LoadBalancer.java @@ -2,12 +2,10 @@ package com.yahoo.documentapi.messagebus.protocol; import com.yahoo.jrt.slobrok.api.Mirror; -import com.yahoo.messagebus.metrics.CountMetric; -import com.yahoo.messagebus.metrics.MetricSet; -import com.yahoo.messagebus.metrics.ValueMetric; -import java.util.ArrayList; import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.atomic.AtomicLong; /** * Load balances over a set of nodes based on statistics gathered from those nodes. @@ -16,24 +14,10 @@ import java.util.List; */ public class LoadBalancer { - public static class NodeMetrics extends MetricSet { - public CountMetric sent = new CountMetric("sent", this); - public CountMetric busy = new CountMetric("busy", this); - public ValueMetric<Double> weight = new ValueMetric<Double>("weight", 1.0, this); - - public NodeMetrics(String name, MetricSet owner) { - super(name); - owner.addMetric(this); - } - } - - public static class Metrics extends MetricSet { - MetricSet targets = new MetricSet("nodes"); - - public Metrics(String name) { - super(name); - addMetric(targets); - } + public static class NodeMetrics { + public AtomicLong sent = new AtomicLong(); + public AtomicLong busy = new AtomicLong(); + public double weight = 1.0; } public static class Node { @@ -44,14 +28,12 @@ public class LoadBalancer { } /** Statistics on each node we are load balancing over. Populated lazily. */ - private List<NodeMetrics> nodeWeights = new ArrayList<NodeMetrics>(); + private List<NodeMetrics> nodeWeights = new CopyOnWriteArrayList<>(); - private Metrics metrics; private String cluster; private double position = 0.0; - public LoadBalancer(String cluster, String session, Metrics metrics) { - this.metrics = metrics; + public LoadBalancer(String cluster) { this.cluster = cluster; } @@ -88,7 +70,7 @@ public class LoadBalancer { for (Mirror.Entry entry : choices) { NodeMetrics nodeMetrics = getNodeMetrics(entry); - weightSum += nodeMetrics.weight.get(); + weightSum += nodeMetrics.weight; if (weightSum > position) { selectedNode = new Node(entry, nodeMetrics); @@ -100,7 +82,7 @@ public class LoadBalancer { selectedNode = new Node(choices[0], getNodeMetrics(choices[0])); } position += 1.0; - selectedNode.metrics.sent.inc(1); + selectedNode.metrics.sent.incrementAndGet(); return selectedNode; } @@ -116,7 +98,7 @@ public class LoadBalancer { NodeMetrics nodeMetrics = nodeWeights.get(index); if (nodeMetrics == null) { // initialize statistics for this node - nodeMetrics = new NodeMetrics("node_" + index, metrics.targets); + nodeMetrics = new NodeMetrics(); nodeWeights.set(index, nodeMetrics); } return nodeMetrics; @@ -126,25 +108,25 @@ public class LoadBalancer { private void increaseWeights() { for (NodeMetrics n : nodeWeights) { if (n == null) continue; - double want = n.weight.get() * 1.01010101010101010101; + double want = n.weight * 1.01010101010101010101; if (want >= 1.0) { - n.weight.set(want); + n.weight = want; } else { - n.weight.set(1.0); + n.weight = 1.0; } } } public void received(Node node, boolean busy) { if (busy) { - double wantWeight = node.metrics.weight.get() - 0.01; + double wantWeight = node.metrics.weight - 0.01; if (wantWeight < 1.0) { increaseWeights(); - node.metrics.weight.set(1.0); + node.metrics.weight = 1.0; } else { - node.metrics.weight.set(wantWeight); + node.metrics.weight = wantWeight; } - node.metrics.busy.inc(1); + node.metrics.busy.incrementAndGet(); } } diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/LoadBalancerPolicy.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/LoadBalancerPolicy.java index bf51265627f..7c5345351a8 100644 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/LoadBalancerPolicy.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/LoadBalancerPolicy.java @@ -4,7 +4,6 @@ package com.yahoo.documentapi.messagebus.protocol; import com.yahoo.jrt.slobrok.api.Mirror; import com.yahoo.messagebus.ErrorCode; import com.yahoo.messagebus.Reply; -import com.yahoo.messagebus.metrics.MetricSet; import com.yahoo.messagebus.routing.Hop; import com.yahoo.messagebus.routing.Route; import com.yahoo.messagebus.routing.RoutingContext; @@ -27,14 +26,13 @@ public class LoadBalancerPolicy extends ExternalSlobrokPolicy { private final String session; private final String pattern; - LoadBalancer.Metrics metrics; private LoadBalancer loadBalancer; LoadBalancerPolicy(String param) { - this(param, parse(param)); + this(parse(param)); } - private LoadBalancerPolicy(String param, Map<String, String> params) { + private LoadBalancerPolicy(Map<String, String> params) { super(params); String cluster = params.get("cluster"); @@ -52,10 +50,8 @@ public class LoadBalancerPolicy extends ExternalSlobrokPolicy { return; } - metrics = new LoadBalancer.Metrics(param); - metrics.setXmlTagName("loadbalancer"); pattern = cluster + "/*/" + session; - loadBalancer = new LoadBalancer(cluster, session, metrics); + loadBalancer = new LoadBalancer(cluster); } @Override @@ -98,8 +94,4 @@ public class LoadBalancerPolicy extends ExternalSlobrokPolicy { context.setReply(reply); } - - public MetricSet getMetrics() { - return metrics; - } } diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/LocalServicePolicy.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/LocalServicePolicy.java index e27479a4995..eb56a85e378 100755 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/LocalServicePolicy.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/LocalServicePolicy.java @@ -2,8 +2,10 @@ package com.yahoo.documentapi.messagebus.protocol; import com.yahoo.jrt.slobrok.api.Mirror; -import com.yahoo.messagebus.metrics.MetricSet; -import com.yahoo.messagebus.routing.*; +import com.yahoo.messagebus.routing.Hop; +import com.yahoo.messagebus.routing.Route; +import com.yahoo.messagebus.routing.RoutingContext; +import com.yahoo.messagebus.routing.VerbatimDirective; import java.util.ArrayList; import java.util.HashMap; @@ -18,7 +20,7 @@ import java.util.Map; public class LocalServicePolicy implements DocumentProtocolRoutingPolicy { private final String localAddress; - private Map<String, CacheEntry> cache = new HashMap<String, CacheEntry>(); + private Map<String, CacheEntry> cache = new HashMap<>(); /** * Constructs a policy that will choose local services that match the slobrok pattern in which this policy occured. @@ -26,7 +28,7 @@ public class LocalServicePolicy implements DocumentProtocolRoutingPolicy { * * @param param The address to use for this, if empty this will resolve to hostname. */ - public LocalServicePolicy(String param) { + LocalServicePolicy(String param) { localAddress = (param != null && param.length() > 0) ? param : null; } @@ -107,7 +109,7 @@ public class LocalServicePolicy implements DocumentProtocolRoutingPolicy { * Defines the necessary cache data. */ private class CacheEntry { - private final List<Hop> recipients = new ArrayList<Hop>(); + private final List<Hop> recipients = new ArrayList<>(); private int generation = 0; private int offset = 0; } @@ -131,8 +133,4 @@ public class LocalServicePolicy implements DocumentProtocolRoutingPolicy { public void destroy() { } - - public MetricSet getMetrics() { - return null; - } } diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/MessageTypePolicy.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/MessageTypePolicy.java index a5b3accac68..4226c1e6cac 100644 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/MessageTypePolicy.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/MessageTypePolicy.java @@ -2,7 +2,6 @@ package com.yahoo.documentapi.messagebus.protocol; import com.yahoo.config.subscription.ConfigSubscriber; -import com.yahoo.messagebus.metrics.MetricSet; import com.yahoo.messagebus.routing.Route; import com.yahoo.messagebus.routing.RoutingContext; import com.yahoo.vespa.config.content.MessagetyperouteselectorpolicyConfig; @@ -15,11 +14,11 @@ import java.util.concurrent.atomic.AtomicReference; */ public class MessageTypePolicy implements DocumentProtocolRoutingPolicy, ConfigSubscriber.SingleSubscriber<MessagetyperouteselectorpolicyConfig> { - private final AtomicReference<Map<Integer, Route>> configRef = new AtomicReference<Map<Integer, Route>>(); + private final AtomicReference<Map<Integer, Route>> configRef = new AtomicReference<>(); private ConfigSubscriber subscriber; private volatile Route defaultRoute; - public MessageTypePolicy(String configId) { + MessageTypePolicy(String configId) { subscriber = new ConfigSubscriber(); subscriber.subscribe(this, MessagetyperouteselectorpolicyConfig.class, configId); } @@ -45,11 +44,6 @@ public class MessageTypePolicy implements DocumentProtocolRoutingPolicy, ConfigS } @Override - public MetricSet getMetrics() { - return null; - } - - @Override public void configure(MessagetyperouteselectorpolicyConfig cfg) { Map<Integer, Route> h = new HashMap<>(); for (MessagetyperouteselectorpolicyConfig.Route selector : cfg.route()) { diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoundRobinPolicy.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoundRobinPolicy.java index 32becdb43fe..244d101b36f 100755 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoundRobinPolicy.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoundRobinPolicy.java @@ -6,7 +6,6 @@ import com.yahoo.messagebus.EmptyReply; import com.yahoo.messagebus.Error; import com.yahoo.messagebus.ErrorCode; import com.yahoo.messagebus.Reply; -import com.yahoo.messagebus.metrics.MetricSet; import com.yahoo.messagebus.routing.Hop; import com.yahoo.messagebus.routing.Route; import com.yahoo.messagebus.routing.RoutingContext; @@ -118,8 +117,4 @@ public class RoundRobinPolicy implements DocumentProtocolRoutingPolicy { public void destroy() { } - - public MetricSet getMetrics() { - return null; - } } diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutingPolicyRepository.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutingPolicyRepository.java index 05bbb919805..098e0efc41c 100755 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutingPolicyRepository.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutingPolicyRepository.java @@ -1,7 +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.documentapi.messagebus.protocol; -import com.yahoo.documentapi.metrics.DocumentProtocolMetricSet; import com.yahoo.messagebus.routing.RoutingPolicy; import com.yahoo.log.LogLevel; @@ -16,10 +15,8 @@ class RoutingPolicyRepository { private static final Logger log = Logger.getLogger(RoutingPolicyRepository.class.getName()); private final Map<String, RoutingPolicyFactory> factories = new ConcurrentHashMap<String, RoutingPolicyFactory>(); - private final DocumentProtocolMetricSet metrics; - RoutingPolicyRepository(DocumentProtocolMetricSet metrics) { - this.metrics = metrics; + RoutingPolicyRepository() { } /** @@ -38,7 +35,7 @@ class RoutingPolicyRepository { * @param name The name of the factory to return. * @return The routing policy factory matching the criteria, or null. */ - RoutingPolicyFactory getFactory(String name) { + private RoutingPolicyFactory getFactory(String name) { return factories.get(name); } @@ -55,7 +52,7 @@ class RoutingPolicyRepository { log.log(LogLevel.ERROR, "No routing policy factory found for name '" + name + "'."); return null; } - final DocumentProtocolRoutingPolicy ret = factory.createPolicy(param); + DocumentProtocolRoutingPolicy ret = factory.createPolicy(param); if (ret == null) { log.log(LogLevel.ERROR, "Routing policy factory " + factory.getClass().getName() + " failed to create a " + @@ -63,10 +60,6 @@ class RoutingPolicyRepository { return null; } - if (ret.getMetrics() != null) { - metrics.routingPolicyMetrics.addMetric(ret.getMetrics()); - } - return ret; } } diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/StoragePolicy.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/StoragePolicy.java index 69bd6dcca00..341589643d2 100644 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/StoragePolicy.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/StoragePolicy.java @@ -13,7 +13,6 @@ import com.yahoo.messagebus.Error; import com.yahoo.messagebus.ErrorCode; import com.yahoo.messagebus.Message; import com.yahoo.messagebus.Reply; -import com.yahoo.messagebus.metrics.MetricSet; import com.yahoo.messagebus.routing.Hop; import com.yahoo.messagebus.routing.Route; import com.yahoo.messagebus.routing.RoutingContext; @@ -46,7 +45,7 @@ import java.util.logging.Logger; public class StoragePolicy extends ExternalSlobrokPolicy { private static final Logger log = Logger.getLogger(StoragePolicy.class.getName()); - private static final String owningBucketStates = "uim"; + public static final String owningBucketStates = "uim"; private static final String upStates = "ui"; /** This class merely generates slobrok a host pattern for a given distributor. */ @@ -568,9 +567,4 @@ public class StoragePolicy extends ExternalSlobrokPolicy { public void destroy() { distributorSelectionLogic.destroy(); } - - @Override - public MetricSet getMetrics() { - return null; - } } diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/SubsetServicePolicy.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/SubsetServicePolicy.java index d6499c196f4..31802f2872f 100755 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/SubsetServicePolicy.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/SubsetServicePolicy.java @@ -3,8 +3,10 @@ package com.yahoo.documentapi.messagebus.protocol; import com.yahoo.jrt.slobrok.api.Mirror; import com.yahoo.log.LogLevel; -import com.yahoo.messagebus.metrics.MetricSet; -import com.yahoo.messagebus.routing.*; +import com.yahoo.messagebus.routing.Hop; +import com.yahoo.messagebus.routing.Route; +import com.yahoo.messagebus.routing.RoutingContext; +import com.yahoo.messagebus.routing.VerbatimDirective; import java.util.ArrayList; import java.util.HashMap; @@ -21,7 +23,7 @@ public class SubsetServicePolicy implements DocumentProtocolRoutingPolicy { private static Logger log = Logger.getLogger(SubsetServicePolicy.class.getName()); private final int subsetSize; - private final Map<String, CacheEntry> cache = new HashMap<String, CacheEntry>(); + private final Map<String, CacheEntry> cache = new HashMap<>(); /** * Creates an instance of a subset service policy. The parameter string is parsed as an integer number that is the @@ -29,7 +31,7 @@ public class SubsetServicePolicy implements DocumentProtocolRoutingPolicy { * * @param param The number of services to include in the set. */ - public SubsetServicePolicy(String param) { + SubsetServicePolicy(String param) { int subsetSize = 5; if (param != null && param.length() > 0) { try { @@ -131,15 +133,11 @@ public class SubsetServicePolicy implements DocumentProtocolRoutingPolicy { * Defines the necessary cache data. */ private class CacheEntry { - private final List<Hop> recipients = new ArrayList<Hop>(); + private final List<Hop> recipients = new ArrayList<>(); private int generation = 0; private int offset = 0; } public void destroy() { } - - public MetricSet getMetrics() { - return null; - } } diff --git a/documentapi/src/main/java/com/yahoo/documentapi/metrics/DocumentProtocolMetricSet.java b/documentapi/src/main/java/com/yahoo/documentapi/metrics/DocumentProtocolMetricSet.java deleted file mode 100644 index 2a4e7997b38..00000000000 --- a/documentapi/src/main/java/com/yahoo/documentapi/metrics/DocumentProtocolMetricSet.java +++ /dev/null @@ -1,17 +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.documentapi.metrics; - -import com.yahoo.messagebus.metrics.MetricSet; - -/** - * @author thomasg - */ -public class DocumentProtocolMetricSet extends MetricSet { - public MetricSet routingPolicyMetrics = new MetricSet("routingpolicies"); - - public DocumentProtocolMetricSet() { - super("document"); - addMetric(routingPolicyMetrics); - } - -} diff --git a/documentapi/src/test/java/com/yahoo/documentapi/messagebus/protocol/RoutingPolicyRepositoryTest.java b/documentapi/src/test/java/com/yahoo/documentapi/messagebus/protocol/RoutingPolicyRepositoryTest.java index 060f8010948..c86a591de60 100644 --- a/documentapi/src/test/java/com/yahoo/documentapi/messagebus/protocol/RoutingPolicyRepositoryTest.java +++ b/documentapi/src/test/java/com/yahoo/documentapi/messagebus/protocol/RoutingPolicyRepositoryTest.java @@ -1,7 +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.documentapi.messagebus.protocol; -import com.yahoo.documentapi.metrics.DocumentProtocolMetricSet; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; @@ -17,8 +16,7 @@ public class RoutingPolicyRepositoryTest { @Test public void policy_creation_does_not_swallow_exception() { - final DocumentProtocolMetricSet metrics = new DocumentProtocolMetricSet(); - final RoutingPolicyRepository repo = new RoutingPolicyRepository(metrics); + final RoutingPolicyRepository repo = new RoutingPolicyRepository(); final RoutingPolicyFactory factory = mock(RoutingPolicyFactory.class); when(factory.createPolicy(anyString())).thenThrow(new IllegalArgumentException("oh no!")); diff --git a/documentapi/src/test/java/com/yahoo/documentapi/messagebus/protocol/test/LoadBalancerTestCase.java b/documentapi/src/test/java/com/yahoo/documentapi/messagebus/protocol/test/LoadBalancerTestCase.java index 284e338394f..698b778c312 100644 --- a/documentapi/src/test/java/com/yahoo/documentapi/messagebus/protocol/test/LoadBalancerTestCase.java +++ b/documentapi/src/test/java/com/yahoo/documentapi/messagebus/protocol/test/LoadBalancerTestCase.java @@ -3,12 +3,9 @@ package com.yahoo.documentapi.messagebus.protocol.test; import com.yahoo.documentapi.messagebus.protocol.LoadBalancer; import com.yahoo.jrt.slobrok.api.Mirror; -import com.yahoo.text.XMLWriter; import org.junit.Test; -import java.io.PrintWriter; import java.util.List; -import java.util.concurrent.atomic.AtomicLong; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; @@ -33,8 +30,7 @@ public class LoadBalancerTestCase { } private static void assertIllegalArgument(String clusterName, String recipient, String expectedMessage) { - LoadBalancer.Metrics metric = new LoadBalancer.Metrics(""); - LoadBalancer policy = new LoadBalancer(clusterName, "", metric); + LoadBalancer policy = new LoadBalancer(clusterName); try { fail("Expected exception, got index " + policy.getIndex(recipient) + "."); } catch (IllegalArgumentException e) { @@ -44,8 +40,7 @@ public class LoadBalancerTestCase { @Test public void testLoadBalancer() { - LoadBalancer.Metrics m = new LoadBalancer.Metrics(""); - LoadBalancer lb = new LoadBalancer("foo", "", m); + LoadBalancer lb = new LoadBalancer("foo"); Mirror.Entry[] entries = new Mirror.Entry[]{ new Mirror.Entry("foo/0/default", "tcp/bar:1"), new Mirror.Entry("foo/1/default", "tcp/bar:2"), @@ -58,13 +53,13 @@ public class LoadBalancerTestCase { assertEquals("foo/" + (i % 3) + "/default" , node.entry.getName()); } - assertEquals(33, weights.get(0).sent.get().intValue()); - assertEquals(33, weights.get(1).sent.get().intValue()); - assertEquals(33, weights.get(2).sent.get().intValue()); + assertEquals(33, weights.get(0).sent.intValue()); + assertEquals(33, weights.get(1).sent.intValue()); + assertEquals(33, weights.get(2).sent.intValue()); - weights.get(0).sent.set(new AtomicLong(0)); - weights.get(1).sent.set(new AtomicLong(0)); - weights.get(2).sent.set(new AtomicLong(0)); + weights.get(0).sent.set(0); + weights.get(1).sent.set(0); + weights.get(2).sent.set(0); } { @@ -83,13 +78,9 @@ public class LoadBalancerTestCase { lb.received(new LoadBalancer.Node(new Mirror.Entry("foo/1/default", "tcp/bar:2"), weights.get(1)), false); } - PrintWriter writer = new PrintWriter(System.out); - m.toXML(new XMLWriter(writer)); - writer.flush(); - - assertEquals(421, (int)(100 * weights.get(0).weight.get() / weights.get(1).weight.get())); - assertEquals(100, (int)(100 * weights.get(1).weight.get())); - assertEquals(421, (int)(100 * weights.get(2).weight.get() / weights.get(1).weight.get())); + assertEquals(421, (int)(100 * weights.get(0).weight / weights.get(1).weight)); + assertEquals(100, (int)(100 * weights.get(1).weight)); + assertEquals(421, (int)(100 * weights.get(2).weight / weights.get(1).weight)); } @@ -107,8 +98,7 @@ public class LoadBalancerTestCase { @Test public void testLoadBalancerOneItemOnly() { - LoadBalancer.Metrics m = new LoadBalancer.Metrics(""); - LoadBalancer lb = new LoadBalancer("foo", "", m); + LoadBalancer lb = new LoadBalancer("foo"); Mirror.Entry[] entries = new Mirror.Entry[]{ new Mirror.Entry("foo/0/default", "tcp/bar:1") }; List<LoadBalancer.NodeMetrics> weights = lb.getNodeWeights(); @@ -120,5 +110,4 @@ public class LoadBalancerTestCase { assertEquals("foo/0/default" , lb.getRecipient(entries).entry.getName()); } - } diff --git a/documentapi/src/test/java/com/yahoo/documentapi/messagebus/protocol/test/PolicyFactoryTestCase.java b/documentapi/src/test/java/com/yahoo/documentapi/messagebus/protocol/test/PolicyFactoryTestCase.java index 8f2fee880e6..1f8a783d417 100755 --- a/documentapi/src/test/java/com/yahoo/documentapi/messagebus/protocol/test/PolicyFactoryTestCase.java +++ b/documentapi/src/test/java/com/yahoo/documentapi/messagebus/protocol/test/PolicyFactoryTestCase.java @@ -9,8 +9,13 @@ import com.yahoo.documentapi.messagebus.protocol.RemoveDocumentMessage; import com.yahoo.documentapi.messagebus.protocol.RoutingPolicyFactory; import com.yahoo.jrt.ListenFailedException; import com.yahoo.jrt.slobrok.server.Slobrok; -import com.yahoo.messagebus.*; -import com.yahoo.messagebus.metrics.MetricSet; +import com.yahoo.messagebus.ErrorCode; +import com.yahoo.messagebus.Message; +import com.yahoo.messagebus.MessageBusParams; +import com.yahoo.messagebus.Protocol; +import com.yahoo.messagebus.Reply; +import com.yahoo.messagebus.SourceSession; +import com.yahoo.messagebus.SourceSessionParams; import com.yahoo.messagebus.network.rpc.RPCNetworkParams; import com.yahoo.messagebus.network.rpc.test.TestServer; import com.yahoo.messagebus.routing.Route; @@ -104,10 +109,6 @@ public class PolicyFactoryTestCase { public void destroy() { } - - public MetricSet getMetrics() { - return null; - } } } diff --git a/documentapi/src/test/java/com/yahoo/documentapi/messagebus/protocol/test/storagepolicy/Simulator.java b/documentapi/src/test/java/com/yahoo/documentapi/messagebus/protocol/test/storagepolicy/Simulator.java index 10183471ffd..f0e31295d3f 100644 --- a/documentapi/src/test/java/com/yahoo/documentapi/messagebus/protocol/test/storagepolicy/Simulator.java +++ b/documentapi/src/test/java/com/yahoo/documentapi/messagebus/protocol/test/storagepolicy/Simulator.java @@ -8,7 +8,11 @@ import com.yahoo.documentapi.messagebus.protocol.DocumentProtocol; import com.yahoo.documentapi.messagebus.protocol.StoragePolicy; import com.yahoo.messagebus.routing.RoutingNode; import com.yahoo.vdslib.distribution.RandomGen; -import com.yahoo.vdslib.state.*; +import com.yahoo.vdslib.state.ClusterState; +import com.yahoo.vdslib.state.Node; +import com.yahoo.vdslib.state.NodeState; +import com.yahoo.vdslib.state.NodeType; +import com.yahoo.vdslib.state.State; import java.util.Map; import java.util.TreeMap; |