diff options
author | Bjørn Christian Seime <bjorn.christian@seime.no> | 2024-01-25 15:39:54 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-25 15:39:54 +0100 |
commit | 7b578506b5c4c59f4273e74af1f0db4a74f82175 (patch) | |
tree | 8ad686a6740d611c45167d6ddeed0c593dd41a5f | |
parent | e7cc1e94e8a9c0227ac9ca17b95787d5e4ab331d (diff) | |
parent | 2b325ee6cc7e5f4e181baeaa775dbdd24e4a7f04 (diff) |
Merge pull request #30066 from vespa-engine/olaa/amended-vespa9-set
Amendable vespa9 metric set
2 files changed, 20 insertions, 3 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java index 348b84367d5..cbeac3cc849 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java @@ -160,7 +160,10 @@ public class MetricsProxyContainerCluster extends ContainerCluster<MetricsProxyC builder.consumer.add(toConsumerBuilder(MetricsConsumer.defaultConsumer)); builder.consumer.add(toConsumerBuilder(newDefaultConsumer())); - if (isHostedVespa()) builder.consumer.add(toConsumerBuilder(MetricsConsumer.vespa9)); + if (isHostedVespa()) { + var amendedVespa9Consumer = addMetrics(MetricsConsumer.vespa9, getAdditionalDefaultMetrics().getMetrics()); + builder.consumer.add(toConsumerBuilder(amendedVespa9Consumer)); + } getAdmin() .map(Admin::getAmendedMetricsConsumers) .map(consumers -> consumers.stream().map(ConsumersConfigGenerator::toConsumerBuilder).toList()) diff --git a/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsConsumersTest.java b/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsConsumersTest.java index becb7235c64..88e1ba7a1a6 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsConsumersTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsConsumersTest.java @@ -23,6 +23,7 @@ import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyModelTester.g import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyModelTester.servicesWithAdminOnly; import static java.util.Collections.singleton; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.fail; @@ -69,15 +70,21 @@ public class MetricsConsumersTest { @Test void vespa_consumer_can_be_amended_via_admin_object() { - VespaModel model = getModel(servicesWithAdminOnly(), self_hosted); + VespaModel model = getModel(servicesWithAdminOnly(), hosted); var additionalMetric = new Metric("additional-metric"); model.getAdmin().setAdditionalDefaultMetrics(new MetricSet("amender-metrics", singleton(additionalMetric))); ConsumersConfig config = consumersConfigFromModel(model); assertEquals(numMetricsForVespaConsumer + 1, config.consumer(0).metric().size()); - ConsumersConfig.Consumer vespaConsumer = config.consumer(0); + ConsumersConfig.Consumer vespaConsumer = requireConsumer(config, MetricsConsumer.vespa); assertTrue(checkMetric(vespaConsumer, additionalMetric), "Did not contain additional metric"); + + ConsumersConfig.Consumer defaultConsumer = requireConsumer(config, MetricsConsumer.defaultConsumer); + assertFalse(checkMetric(defaultConsumer, additionalMetric), "Contained additional metric"); + + ConsumersConfig.Consumer vespa9Consumer = requireConsumer(config, MetricsConsumer.vespa9); + assertTrue(checkMetric(vespa9Consumer, additionalMetric), "Did not contain additional metric"); } @Test @@ -249,4 +256,11 @@ public class MetricsConsumersTest { assertTrue(checkMetric(consumer, customMetric), "Did not contain metric: " + customMetric); } + private ConsumersConfig.Consumer requireConsumer(ConsumersConfig config, MetricsConsumer consumer) { + return config.consumer() + .stream() + .filter(c -> c.name().equals(consumer.id())) + .findFirst().orElseThrow(); + } + } |