From c8761688fdb26538484b5a9bcd5ce53608a6ce8a Mon Sep 17 00:00:00 2001 From: Ola Aunronning Date: Thu, 20 Oct 2022 14:36:02 +0200 Subject: Add deploymentCluster dimension --- .../vespa/model/admin/metricsproxy/MetricsProxyContainer.java | 11 +++++++++++ .../model/admin/metricsproxy/MetricsProxyContainerTest.java | 1 + 2 files changed, 12 insertions(+) (limited to 'config-model') 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 03bdf4eb12a..12bce7a72a4 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 @@ -14,8 +14,10 @@ import ai.vespa.metricsproxy.service.VespaServicesConfig; import com.yahoo.config.model.api.ModelContext; import com.yahoo.config.model.api.container.ContainerServiceType; import com.yahoo.config.model.deploy.DeployState; +import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.ClusterMembership; import com.yahoo.config.provision.ClusterSpec; +import com.yahoo.config.provision.Zone; import com.yahoo.search.config.QrStartConfig; import com.yahoo.vespa.model.HostResource; import com.yahoo.vespa.model.PortAllocBridge; @@ -47,6 +49,8 @@ public class MetricsProxyContainer extends Container implements final boolean isHostedVespa; private final Optional clusterMembership; private final MetricsProxyContainerCluster cluster; + private final ApplicationId applicationId; + private final Zone zone; private final String jvmGCOptions; public MetricsProxyContainer(MetricsProxyContainerCluster cluster, HostResource host, int index, DeployState deployState) { @@ -54,6 +58,8 @@ public class MetricsProxyContainer extends Container implements this.isHostedVespa = deployState.isHosted(); this.clusterMembership = host.spec().membership(); this.cluster = cluster; + this.applicationId = deployState.getApplicationPackage().getApplicationId(); + this.zone = deployState.zone(); this.jvmGCOptions = deployState.getProperties().jvmGCOptions(clusterMembership.map(membership -> membership.cluster().type())); setProp("clustertype", "admin"); setProp("index", String.valueOf(index)); @@ -139,6 +145,7 @@ public class MetricsProxyContainer extends Container implements Map dimensions = new LinkedHashMap<>(); if (isHostedVespa) { getHostResource().spec().membership().map(ClusterMembership::cluster).ifPresent(cluster -> { + dimensions.put(PublicDimensions.DEPLOYMENT_CLUSTER, getDeploymentCluster(cluster)); dimensions.put(PublicDimensions.INTERNAL_CLUSTER_TYPE, cluster.type().name()); dimensions.put(PublicDimensions.INTERNAL_CLUSTER_ID, cluster.id().value()); cluster.group().ifPresent(group -> dimensions.put(PublicDimensions.GROUP_ID, group.toString())); @@ -180,6 +187,10 @@ public class MetricsProxyContainer extends Container implements addSimpleComponent(componentClass.getName(), null, METRICS_PROXY_BUNDLE_NAME); } + private String getDeploymentCluster(ClusterSpec cluster) { + return String.join(".", applicationId.toFullString(), zone.environment().value(), zone.region().value(), cluster.id().value()); + } + @Override protected String defaultPreload() { return ""; diff --git a/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerTest.java b/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerTest.java index 5394b807861..32771832f86 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerTest.java @@ -119,6 +119,7 @@ public class MetricsProxyContainerTest { assertEquals("content", config.dimensions(PublicDimensions.INTERNAL_CLUSTER_TYPE)); assertEquals("my-content", config.dimensions(PublicDimensions.INTERNAL_CLUSTER_ID)); + assertEquals("default.mock-application.default.prod.default.my-content", config.dimensions(PublicDimensions.DEPLOYMENT_CLUSTER)); } @Test -- cgit v1.2.3