diff options
author | Ola Aunrønning <olaa@verizonmedia.com> | 2020-01-07 10:28:32 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-07 10:28:32 +0100 |
commit | 07ede356ca51b412fa893387fc607e37832d3d27 (patch) | |
tree | 59466b6e60d39794e01e6504a4507e71720b8bac | |
parent | 98c6b4e8f88f4007b376d76c9d941526c53859e7 (diff) | |
parent | 14d05448e2aef78dbd1d097c1872341c163c7c1f (diff) |
Merge pull request #11660 from vespa-engine/gjoranv/cluster-membership-as-host-id
Gjoranv/cluster membership as host
7 files changed, 24 insertions, 16 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsNodesConfigGenerator.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsNodesConfigGenerator.java index d599431d5d8..0db48cb5e27 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsNodesConfigGenerator.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsNodesConfigGenerator.java @@ -4,6 +4,7 @@ package com.yahoo.vespa.model.admin.metricsproxy; import ai.vespa.metricsproxy.http.MetricsHandler; import ai.vespa.metricsproxy.http.application.MetricsNodesConfig; +import com.yahoo.config.provision.ClusterMembership; import java.util.List; import java.util.stream.Collectors; @@ -20,11 +21,18 @@ public class MetricsNodesConfigGenerator { } private static MetricsNodesConfig.Node.Builder toNodeBuilder(MetricsProxyContainer container) { - return new MetricsNodesConfig.Node.Builder() - .configId(container.getHost().getConfigId()) + var builder = new MetricsNodesConfig.Node.Builder() + .nodeId(container.getHost().getConfigId()) .hostname(container.getHostName()) .metricsPort(MetricsProxyContainer.BASEPORT) .metricsPath(MetricsHandler.VALUES_PATH); + + if (container.isHostedVespa) + container.getHostResource().spec().membership() + .map(ClusterMembership::stringValue) + .ifPresent(builder::nodeId); + + return builder; } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainer.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainer.java index 65df51ee3ab..08f782a0c54 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainer.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainer.java @@ -38,7 +38,7 @@ public class MetricsProxyContainer extends Container implements static final String CLUSTER_ID = "clusterid"; } - private final boolean isHostedVespa; + final boolean isHostedVespa; public MetricsProxyContainer(AbstractConfigProducer parent, String hostname, int index, boolean isHostedVespa) { super(parent, hostname, index); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerClusterTest.java index 47f315490e1..6164b311da0 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerClusterTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerClusterTest.java @@ -307,8 +307,8 @@ public class MetricsProxyContainerClusterTest { } private void assertNodeConfig(MetricsNodesConfig.Node node) { - assertFalse(node.configId().isEmpty()); - assertFalse(node.hostname().isEmpty()); + assertTrue(node.nodeId().startsWith("container/foo/0/")); + assertTrue(node.hostname().startsWith("node-1-3-9-")); assertEquals(MetricsProxyContainer.BASEPORT, node.metricsPort()); assertEquals(MetricsHandler.VALUES_PATH, node.metricsPath()); } diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/application/Node.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/application/Node.java index 37cb3dc27a2..07070027f96 100644 --- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/application/Node.java +++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/application/Node.java @@ -13,7 +13,7 @@ import java.util.Objects; */ public class Node { - final String configId; + final String nodeId; final String host; final int port; final String path; @@ -21,15 +21,15 @@ public class Node { private final String metricsUriBase; public Node(MetricsNodesConfig.Node nodeConfig) { - this(nodeConfig.configId(), nodeConfig.hostname(), nodeConfig.metricsPort() , nodeConfig.metricsPath()); + this(nodeConfig.nodeId(), nodeConfig.hostname(), nodeConfig.metricsPort() , nodeConfig.metricsPath()); } - public Node(String configId, String host, int port, String path) { - Objects.requireNonNull(configId, "Null configId is not allowed"); + public Node(String nodeId, String host, int port, String path) { + Objects.requireNonNull(nodeId, "Null configId is not allowed"); Objects.requireNonNull(host, "Null host is not allowed"); Objects.requireNonNull(path, "Null path is not allowed"); - this.configId = configId; + this.nodeId = nodeId; this.host = host; this.port = port; this.path = path; @@ -37,7 +37,7 @@ public class Node { } public String getName() { - return configId; + return nodeId; } URI metricsUri(ConsumerId consumer) { @@ -50,12 +50,12 @@ public class Node { if (o == null || getClass() != o.getClass()) return false; Node node = (Node) o; return port == node.port && - configId.equals(node.configId) && + nodeId.equals(node.nodeId) && host.equals(node.host); } @Override public int hashCode() { - return Objects.hash(configId, host, port); + return Objects.hash(nodeId, host, port); } } diff --git a/metrics-proxy/src/main/resources/configdefinitions/metrics-nodes.def b/metrics-proxy/src/main/resources/configdefinitions/metrics-nodes.def index 3f4165c08ec..0de2f21d972 100644 --- a/metrics-proxy/src/main/resources/configdefinitions/metrics-nodes.def +++ b/metrics-proxy/src/main/resources/configdefinitions/metrics-nodes.def @@ -1,7 +1,7 @@ # Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package=ai.vespa.metricsproxy.http.application -node[].configId string +node[].nodeId string node[].hostname string node[].metricsPort int node[].metricsPath string diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/application/ApplicationMetricsHandlerTest.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/application/ApplicationMetricsHandlerTest.java index fbc0329b42f..2d12930bd0a 100644 --- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/application/ApplicationMetricsHandlerTest.java +++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/application/ApplicationMetricsHandlerTest.java @@ -171,7 +171,7 @@ public class ApplicationMetricsHandlerTest { private MetricsNodesConfig.Node.Builder nodeConfig(String path) { return new MetricsNodesConfig.Node.Builder() - .configId(path) + .nodeId(path) .hostname("localhost") .metricsPath(path) .metricsPort(port); diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/application/ApplicationMetricsRetrieverTest.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/application/ApplicationMetricsRetrieverTest.java index 7042ee68edc..5ff6b580988 100644 --- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/application/ApplicationMetricsRetrieverTest.java +++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/application/ApplicationMetricsRetrieverTest.java @@ -157,7 +157,7 @@ public class ApplicationMetricsRetrieverTest { private MetricsNodesConfig.Node.Builder nodeConfig(String path) { return new MetricsNodesConfig.Node.Builder() - .configId(path) + .nodeId(path) .hostname(HOST) .metricsPath(path) .metricsPort(port); |