aboutsummaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorgjoranv <gjoranv@gmail.com>2016-11-10 10:00:04 +0100
committerGitHub <noreply@github.com>2016-11-10 10:00:04 +0100
commit6b9522fdf674342f707a8723ffb554b0dc01ac62 (patch)
tree3b4151c447a6277efc579a3fab7ed8f0061461f3 /config-model
parent91a767b43e414faeb1826e9e4932628a8f5fad11 (diff)
parent11da638b4961c93ae83aa35654b50b886fa9c5a1 (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')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/DefaultMetricConsumers.java37
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/DefaultMetricsConsumer.java21
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/builder/xml/MetricsBuilder.java7
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomMetricBuilderHelper.java16
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java3
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");