aboutsummaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorOla Aunronning <olaa@yahooinc.com>2024-01-25 14:58:31 +0100
committerOla Aunronning <olaa@yahooinc.com>2024-01-25 14:58:31 +0100
commit2b325ee6cc7e5f4e181baeaa775dbdd24e4a7f04 (patch)
treee020600907f8aa3f122085b1c7cfba0f5935d96d /config-model
parente6e092cf36807cf1fba23167ff2d26aad0eb2435 (diff)
Amendable vespa9 metric set
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java5
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsConsumersTest.java18
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();
+ }
+
}