aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorn.christian@seime.no>2024-01-25 15:39:54 +0100
committerGitHub <noreply@github.com>2024-01-25 15:39:54 +0100
commit7b578506b5c4c59f4273e74af1f0db4a74f82175 (patch)
tree8ad686a6740d611c45167d6ddeed0c593dd41a5f
parente7cc1e94e8a9c0227ac9ca17b95787d5e4ab331d (diff)
parent2b325ee6cc7e5f4e181baeaa775dbdd24e4a7f04 (diff)
Merge pull request #30066 from vespa-engine/olaa/amended-vespa9-set
Amendable vespa9 metric set
-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();
+ }
+
}