summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOla Aunrønning <olaa@verizonmedia.com>2020-01-07 10:28:32 +0100
committerGitHub <noreply@github.com>2020-01-07 10:28:32 +0100
commit07ede356ca51b412fa893387fc607e37832d3d27 (patch)
tree59466b6e60d39794e01e6504a4507e71720b8bac
parent98c6b4e8f88f4007b376d76c9d941526c53859e7 (diff)
parent14d05448e2aef78dbd1d097c1872341c163c7c1f (diff)
Merge pull request #11660 from vespa-engine/gjoranv/cluster-membership-as-host-id
Gjoranv/cluster membership as host
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsNodesConfigGenerator.java12
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainer.java2
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerClusterTest.java4
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/http/application/Node.java16
-rw-r--r--metrics-proxy/src/main/resources/configdefinitions/metrics-nodes.def2
-rw-r--r--metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/application/ApplicationMetricsHandlerTest.java2
-rw-r--r--metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/application/ApplicationMetricsRetrieverTest.java2
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);