summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorgjoranv <gv@yahoo-inc.com>2016-11-08 15:46:04 +0100
committergjoranv <gv@yahoo-inc.com>2016-11-09 14:09:56 +0100
commit63a2bc9bef0979c1896553be345e5fb12c2488c9 (patch)
tree02ceb4a173e1ff4355c37f56fc168fce8daedee1 /config-model
parentf5e012d593846978b8e7412b99078ceb3b6406d6 (diff)
Make 'vespa' the default metrics consumer, instead of 'yamas'.
- Prohibit custom consumers with id 'vespa' - Convert id 'yamas' -> 'vespa' for the legacy xml syntax to preserve current behaviour.
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/DefaultMetricConsumers.java13
-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.java4
4 files changed, 29 insertions, 11 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
index bfb7730982e..5bfd4ee4de7 100644
--- 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
@@ -5,16 +5,15 @@ 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.
+ * This class sets up the default 'vespa' metrics consumer.
*
* @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 {
+ public static final String VESPA_CONSUMER_ID = "vespa";
+
private static final MetricSet vespaMetricSet = new VespaMetricSet();
/**
@@ -26,12 +25,8 @@ public class DefaultMetricConsumers {
@SuppressWarnings("UnusedDeclaration")
public static Map<String, MetricsConsumer> getDefaultMetricsConsumers() {
Map<String, MetricsConsumer> metricsConsumers = new LinkedHashMap<>();
- metricsConsumers.put("yamas", getYamasConsumer());
+ metricsConsumers.put(VESPA_CONSUMER_ID, new MetricsConsumer(VESPA_CONSUMER_ID, vespaMetricSet));
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/builder/xml/MetricsBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/builder/xml/MetricsBuilder.java
index a577ae6dcab..6005aace89d 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
@@ -2,6 +2,7 @@
package com.yahoo.vespa.model.admin.monitoring.builder.xml;
import com.yahoo.text.XML;
+import com.yahoo.vespa.model.admin.monitoring.DefaultMetricConsumers;
import com.yahoo.vespa.model.admin.monitoring.Metric;
import com.yahoo.vespa.model.admin.monitoring.MetricSet;
import com.yahoo.vespa.model.admin.monitoring.MetricsConsumer;
@@ -14,12 +15,15 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
+import static com.yahoo.vespa.model.admin.monitoring.DefaultMetricConsumers.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 +34,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..18c7f901bfa 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.DefaultMetricConsumers.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..16d3da195cc 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
@@ -9,6 +9,7 @@ import com.yahoo.config.model.provision.Hosts;
import com.yahoo.config.model.provision.InMemoryProvisioner;
import com.yahoo.config.model.test.MockApplicationPackage;
import com.yahoo.vespa.model.VespaModel;
+import com.yahoo.vespa.model.admin.monitoring.DefaultMetricConsumers;
import com.yahoo.vespa.model.admin.monitoring.Metric;
import com.yahoo.vespa.model.admin.monitoring.MetricsConsumer;
import com.yahoo.vespa.model.admin.monitoring.Yamas;
@@ -19,6 +20,7 @@ import java.io.IOException;
import java.util.Set;
import java.util.stream.Collectors;
+import static com.yahoo.vespa.model.admin.monitoring.DefaultMetricConsumers.VESPA_CONSUMER_ID;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.assertNotNull;
@@ -84,7 +86,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");