diff options
author | gjoranv <gv@verizonmedia.com> | 2019-05-29 14:31:13 +0200 |
---|---|---|
committer | gjoranv <gv@verizonmedia.com> | 2019-05-29 14:31:13 +0200 |
commit | 471600c86c302dbc1612ffaf560c8aed6427d414 (patch) | |
tree | 3b15435ac5db12c2de57f50859d1302eeafcd378 /config-model | |
parent | c61bcf9b6c51a6445398babacd3ccc2a07931edb (diff) |
Prepare metricsproxy container cluster to produce app metadata
Diffstat (limited to 'config-model')
4 files changed, 27 insertions, 5 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/admin/AdminModel.java b/config-model/src/main/java/com/yahoo/config/model/admin/AdminModel.java index b5cadedd454..dea2095d8e4 100644 --- a/config-model/src/main/java/com/yahoo/config/model/admin/AdminModel.java +++ b/config-model/src/main/java/com/yahoo/config/model/admin/AdminModel.java @@ -49,8 +49,8 @@ public class AdminModel extends ConfigModel { public void prepare(ConfigModelRepo configModelRepo, DeployState deployState) { verifyClusterControllersOnlyDefinedForContent(configModelRepo); if (admin == null) return; - if (admin.getClusterControllers() != null) - admin.getClusterControllers().prepare(deployState); + if (admin.getClusterControllers() != null) admin.getClusterControllers().prepare(deployState); + if (admin.getMetricsProxyCluster() != null) admin.getMetricsProxyCluster().prepare(deployState); admin.getLogServerContainerCluster().ifPresent((ContainerCluster cc) -> cc.prepare(deployState)); } diff --git a/config-model/src/main/java/com/yahoo/config/model/test/MockApplicationPackage.java b/config-model/src/main/java/com/yahoo/config/model/test/MockApplicationPackage.java index ca6bdee82cf..b381a5f28db 100644 --- a/config-model/src/main/java/com/yahoo/config/model/test/MockApplicationPackage.java +++ b/config-model/src/main/java/com/yahoo/config/model/test/MockApplicationPackage.java @@ -42,6 +42,9 @@ import java.util.stream.Collectors; */ public class MockApplicationPackage implements ApplicationPackage { + public static final String DEPLOYED_BY_USER = "user"; + public static final String APPLICATION_NAME = "application"; + public static final long APPLICATION_GENERATION = 1L; public static final String MUSIC_SEARCHDEFINITION = createSearchDefinition("music", "foo"); public static final String BOOK_SEARCHDEFINITION = createSearchDefinition("book", "bar"); @@ -70,7 +73,7 @@ public class MockApplicationPackage implements ApplicationPackage { this.failOnValidateXml = failOnValidateXml; queryProfileRegistry = new QueryProfileXMLReader().read(asNamedReaderList(queryProfileType), asNamedReaderList(queryProfile)); - applicationMetaData = new ApplicationMetaData("user", "dir", 0L, false, "application", "checksum", 1L, 0L); + applicationMetaData = new ApplicationMetaData(DEPLOYED_BY_USER, "dir", 0L, false, APPLICATION_NAME, "checksum", APPLICATION_GENERATION, 0L); } /** Returns the root of this application package relative to the current dir */ diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java index 6183701e36e..44627ade4ec 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java @@ -45,9 +45,11 @@ public class Admin extends AbstractConfigProducer implements Serializable { private final boolean isHostedVespa; private final Monitoring monitoring; + private final List<Configserver> configservers = new ArrayList<>(); + private final Metrics metrics; + private MetricsProxyContainerCluster metricsProxyCluster; private MetricSet additionalDefaultMetrics = emptyMetricSet(); - private final List<Configserver> configservers = new ArrayList<>(); private final List<Slobrok> slobroks = new ArrayList<>(); private Configserver defaultConfigserver; @@ -99,6 +101,10 @@ public class Admin extends AbstractConfigProducer implements Serializable { public Metrics getUserMetrics() { return metrics; } + public MetricsProxyContainerCluster getMetricsProxyCluster() { + return metricsProxyCluster; + } + public void setAdditionalDefaultMetrics(MetricSet additionalDefaultMetrics) { if (additionalDefaultMetrics == null) return; this.additionalDefaultMetrics = additionalDefaultMetrics; @@ -213,7 +219,7 @@ public class Admin extends AbstractConfigProducer implements Serializable { } private void addMetricsProxyCluster(List<HostResource> hosts, DeployState deployState) { - var metricsProxyCluster = new MetricsProxyContainerCluster(this, "metrics", deployState); + metricsProxyCluster = new MetricsProxyContainerCluster(this, "metrics", deployState); int index = 0; for (var host : hosts) { var container = new MetricsProxyContainer(metricsProxyCluster, index++, deployState.isHosted()); 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 0ba5b51bfe1..6aaae7f991a 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 @@ -6,8 +6,10 @@ package com.yahoo.vespa.model.admin.metricsproxy; import ai.vespa.metricsproxy.core.ConsumersConfig; import ai.vespa.metricsproxy.metric.dimensions.ApplicationDimensionsConfig; +import com.yahoo.config.model.test.MockApplicationPackage; import com.yahoo.config.provision.Zone; import com.yahoo.container.BundlesConfig; +import com.yahoo.container.core.ApplicationMetadataConfig; import com.yahoo.vespa.model.VespaModel; import com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyContainerCluster.AppDimensionNames; import com.yahoo.vespa.model.admin.monitoring.Metric; @@ -65,6 +67,17 @@ public class MetricsProxyContainerClusterTest { } @Test + public void cluster_is_prepared_so_that_application_metadata_config_is_produced() { + VespaModel model = getModel(servicesWithAdminOnly()); + var builder = new ApplicationMetadataConfig.Builder(); + model.getConfig(builder, CLUSTER_CONFIG_ID); + ApplicationMetadataConfig config = builder.build(); + assertEquals(MockApplicationPackage.APPLICATION_GENERATION, config.generation()); + assertEquals(MockApplicationPackage.APPLICATION_NAME, config.name()); + assertEquals(MockApplicationPackage.DEPLOYED_BY_USER, config.user()); + } + + @Test public void default_consumer_is_always_present_and_has_all_vespa_metrics_and_all_system_metrics() { ConsumersConfig config = consumersConfigFromXml(servicesWithAdminOnly()); assertEquals(config.consumer(0).name(), VESPA_CONSUMER_ID); |