diff options
author | gjoranv <gjoranv@gmail.com> | 2016-11-10 10:00:04 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-10 10:00:04 +0100 |
commit | 6b9522fdf674342f707a8723ffb554b0dc01ac62 (patch) | |
tree | 3b4151c447a6277efc579a3fab7ed8f0061461f3 /config-model | |
parent | 91a767b43e414faeb1826e9e4932628a8f5fad11 (diff) | |
parent | 11da638b4961c93ae83aa35654b50b886fa9c5a1 (diff) |
Merge pull request #1046 from yahoo/gjoranv/yamas-vespa-consumer-id
Make 'vespa' the default metrics consumer, instead of 'yamas'.
Diffstat (limited to 'config-model')
5 files changed, 44 insertions, 40 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/DefaultMetricConsumers.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/DefaultMetricConsumers.java deleted file mode 100644 index bfb7730982e..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/DefaultMetricConsumers.java +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.model.admin.monitoring; - -import java.util.LinkedHashMap; -import java.util.Map; - -/** - * This class sets up the default metrics and the default 'vespa' metrics consumer. - * - * TODO: remove for Vespa 7 or when the 'metric-consumers' element in 'admin' has been removed. - * - * @author <a href="mailto:trygve@yahoo-inc.com">Trygve Bolsø Berdal</a> - * @author gjoranv - */ -@SuppressWarnings("UnusedDeclaration") // All public apis are used by model amenders -public class DefaultMetricConsumers { - - private static final MetricSet vespaMetricSet = new VespaMetricSet(); - - /** - * Populates a map of with consumer as key and metrics for that consumer as value. The metrics - * are to be forwarded to consumers. - * - * @return A map of default metric consumers and default metrics for that consumer. - */ - @SuppressWarnings("UnusedDeclaration") - public static Map<String, MetricsConsumer> getDefaultMetricsConsumers() { - Map<String, MetricsConsumer> metricsConsumers = new LinkedHashMap<>(); - metricsConsumers.put("yamas", getYamasConsumer()); - return metricsConsumers; - } - - private static MetricsConsumer getYamasConsumer(){ - return new MetricsConsumer("yamas", vespaMetricSet); - } - -} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/DefaultMetricsConsumer.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/DefaultMetricsConsumer.java new file mode 100644 index 00000000000..f6b00c8e464 --- /dev/null +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/DefaultMetricsConsumer.java @@ -0,0 +1,21 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.model.admin.monitoring; + +/** + * This class sets up the default 'vespa' metrics consumer. + * + * @author <a href="mailto:trygve@yahoo-inc.com">Trygve Bolsø Berdal</a> + * @author gjoranv + */ +public class DefaultMetricsConsumer { + + public static final String VESPA_CONSUMER_ID = "vespa"; + + private static final MetricSet vespaMetricSet = new VespaMetricSet(); + + @SuppressWarnings("UnusedDeclaration") + public static MetricsConsumer getDefaultMetricsConsumer() { + return new MetricsConsumer(VESPA_CONSUMER_ID, vespaMetricSet); + } + +} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/builder/xml/MetricsBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/builder/xml/MetricsBuilder.java index a577ae6dcab..289316b03d6 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/builder/xml/MetricsBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/builder/xml/MetricsBuilder.java @@ -8,18 +8,20 @@ import com.yahoo.vespa.model.admin.monitoring.MetricsConsumer; import com.yahoo.vespa.model.admin.monitoring.builder.Metrics; import org.w3c.dom.Element; -import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; +import static com.yahoo.vespa.model.admin.monitoring.DefaultMetricsConsumer.VESPA_CONSUMER_ID; + /** * @author gjoranv */ public class MetricsBuilder { private static final String ID_ATTRIBUTE = "id"; + private final Map<String, MetricSet> availableMetricSets; public MetricsBuilder(Map<String, MetricSet> availableMetricSets) { @@ -30,6 +32,9 @@ public class MetricsBuilder { Metrics metrics = new Metrics(); for (Element consumerElement : XML.getChildren(metricsElement, "consumer")) { String consumerId = consumerElement.getAttribute(ID_ATTRIBUTE); + if (consumerId.equals(VESPA_CONSUMER_ID)) + throw new IllegalArgumentException("'vespa' is not allowed as metric consumer id."); + MetricSet metricSet = buildMetricSet(consumerId, consumerElement); metrics.addConsumer(new MetricsConsumer(consumerId, metricSet)); } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomMetricBuilderHelper.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomMetricBuilderHelper.java index e98c9e73486..5d7f0aef7d1 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomMetricBuilderHelper.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomMetricBuilderHelper.java @@ -13,14 +13,19 @@ import java.util.List; import java.util.Map; import java.util.Set; +import static com.yahoo.vespa.model.admin.monitoring.DefaultMetricsConsumer.VESPA_CONSUMER_ID; + /** * Helper class for parsing yamasmetric config. * + * TODO: Remove when 'metric-consumers' under 'admin' is disallowed + * * @author trygve * @since 5.1 */ public class DomMetricBuilderHelper { + private static final String LEGACY_DEFAULT_CONSUMER_ID = "yamas"; /** * Build metricConsumer config @@ -32,7 +37,7 @@ public class DomMetricBuilderHelper { Map<String, MetricsConsumer> metricsConsumers = new LinkedHashMap<>(); List<Element> consumersElem = XML.getChildren(spec, "consumer"); for (Element consumer : consumersElem) { - String consumerName = consumer.getAttribute("name"); + String consumerName = getConsumerName(consumer); Set<Metric> metrics = new LinkedHashSet<>(); List<Element> metricsEl = XML.getChildren(consumer, "metric"); if (metricsEl != null) { @@ -49,6 +54,15 @@ public class DomMetricBuilderHelper { return metricsConsumers; } + // Converts the old default consumer id to the new default id. + private static String getConsumerName(Element consumerElement) { + String givenName = consumerElement.getAttribute("name"); + if (givenName.equals(LEGACY_DEFAULT_CONSUMER_ID)) + return VESPA_CONSUMER_ID; + else + return givenName; + } + private static String metricSetId(String consumerName) { return "legacy-user-metrics-" + consumerName; } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java b/config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java index 9b4219a87cf..7e61451fd7c 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java @@ -19,6 +19,7 @@ import java.io.IOException; import java.util.Set; import java.util.stream.Collectors; +import static com.yahoo.vespa.model.admin.monitoring.DefaultMetricsConsumer.VESPA_CONSUMER_ID; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertNotNull; @@ -84,7 +85,7 @@ public class DedicatedAdminV4Test { assertEquals("vespa.routing", yamas.getClustername()); assertEquals(60L, (long)yamas.getIntervalSeconds()); - MetricsConsumer consumer = model.getAdmin().getLegacyUserMetricsConsumers().get("yamas"); + MetricsConsumer consumer = model.getAdmin().getLegacyUserMetricsConsumers().get(VESPA_CONSUMER_ID); assertNotNull(consumer); assertEquals(3, consumer.getMetrics().size()); Metric metric = consumer.getMetrics().get("nginx.upstreams.down.last"); |