summaryrefslogtreecommitdiffstats
path: root/config-model/src
diff options
context:
space:
mode:
authorgjoranv <gjoranv@gmail.com>2017-09-06 15:17:54 +0200
committerGitHub <noreply@github.com>2017-09-06 15:17:54 +0200
commit57fde4202f402ebeb177b1b4120b755800190df5 (patch)
tree31aae3e7224013d90e8d810030666bcff827d2a4 /config-model/src
parentd4c79c2e7c675c7e9b4c974418f58da58cfa2a47 (diff)
parent834482a1b0e414295cce8cb9e223033d8c194f44 (diff)
Merge pull request #3348 from vespa-engine/arnej/add-metrics-display-name
Arnej/add metrics display name
Diffstat (limited to 'config-model/src')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/builder/xml/MetricsBuilder.java12
-rw-r--r--config-model/src/main/resources/schema/admin.rnc5
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/admin/DedicatedAdminV4Test.java15
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/application/validation/ConstantTensorJsonValidatorTest.java2
-rw-r--r--config-model/src/test/schema-test-files/services.xml3
5 files changed, 31 insertions, 6 deletions
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 98578fdd475..fab1e90cc03 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
@@ -25,6 +25,7 @@ import static com.yahoo.vespa.model.admin.monitoring.SystemMetrics.systemMetricS
public class MetricsBuilder {
private static final String ID_ATTRIBUTE = "id";
+ private static final String DISPLAY_NAME_ATTRIBUTE = "display-name";
private final ApplicationType applicationType;
private final Map<String, MetricSet> availableMetricSets;
@@ -46,9 +47,18 @@ public class MetricsBuilder {
return metrics;
}
+ private static Metric metricFromElement(Element elem) {
+ String m_id = elem.getAttribute(ID_ATTRIBUTE);
+ String m_dn = elem.getAttribute(DISPLAY_NAME_ATTRIBUTE);
+ if (m_dn == null || "".equals(m_dn)) {
+ return new Metric(m_id);
+ }
+ return new Metric(m_id, m_dn);
+ }
+
private MetricSet buildMetricSet(String consumerId, Element consumerElement) {
List<Metric> metrics = XML.getChildren(consumerElement, "metric").stream()
- .map(metricElement -> new Metric(metricElement.getAttribute(ID_ATTRIBUTE)))
+ .map(metricElement -> metricFromElement(metricElement))
.collect(Collectors.toCollection(LinkedList::new));
List<MetricSet> metricSets = XML.getChildren(consumerElement, "metric-set").stream()
diff --git a/config-model/src/main/resources/schema/admin.rnc b/config-model/src/main/resources/schema/admin.rnc
index 3db16f74e77..26705784a34 100644
--- a/config-model/src/main/resources/schema/admin.rnc
+++ b/config-model/src/main/resources/schema/admin.rnc
@@ -88,7 +88,10 @@ Metrics = element metrics {
element consumer {
attribute id { xsd:Name } &
element metric-set { attribute id { xsd:Name } }* &
- element metric { attribute id { xsd:Name } }*
+ element metric {
+ attribute id { xsd:Name } &
+ attribute display-name { xsd:Name }?
+ }*
}+
}
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 f6e7d50f643..5b5094a9c43 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
@@ -49,6 +49,11 @@ public class DedicatedAdminV4Test {
" <slobroks><nodes count='2' dedicated='true'/></slobroks>" +
" <logservers><nodes count='1' dedicated='true'/></logservers>" +
" <yamas systemname='vespa.routing' interval='60' />" +
+ " <metrics>" +
+ " <consumer id='slingstone'>" +
+ " <metric id='foobar.count' display-name='foobar'/>" +
+ " </consumer>" +
+ " </metrics>" +
" <metric-consumers>" +
" <consumer name='yamas'>" +
" <metric name='upstreams_generated' />" +
@@ -73,10 +78,16 @@ public class DedicatedAdminV4Test {
assertEquals("vespa.routing", monitoring.getClustername());
assertEquals(60L, (long) monitoring.getIntervalSeconds());
- MetricsConsumer consumer = model.getAdmin().getLegacyUserMetricsConsumers().get(VESPA_CONSUMER_ID);
+ MetricsConsumer consumer = model.getAdmin().getUserMetrics().getConsumers().get("slingstone");
+ assertNotNull(consumer);
+ Metric metric = consumer.getMetrics().get("foobar.count");
+ assertNotNull(metric);
+ assertEquals("foobar", metric.outputName);
+
+ consumer = model.getAdmin().getLegacyUserMetricsConsumers().get(VESPA_CONSUMER_ID);
assertNotNull(consumer);
assertEquals(3, consumer.getMetrics().size());
- Metric metric = consumer.getMetrics().get("nginx.upstreams.down.last");
+ metric = consumer.getMetrics().get("nginx.upstreams.down.last");
assertNotNull(metric);
assertEquals("nginx.upstreams.down", metric.outputName);
}
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ConstantTensorJsonValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ConstantTensorJsonValidatorTest.java
index 9d196287d57..1f8dcc2da64 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ConstantTensorJsonValidatorTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/ConstantTensorJsonValidatorTest.java
@@ -271,7 +271,7 @@ public class ConstantTensorJsonValidatorTest {
inputJsonToReader(
"{",
" 'stats': {",
- " 'パープルゴム製のアヒルは私を殺すために望んでいます': true,",
+ " '\u30d1\u30fc\u30d7\u30eb\u30b4\u30e0\u88fd\u306e\u30a2\u30d2\u30eb\u306f\u79c1\u3092\u6bba\u3059\u305f\u3081\u306b\u671b\u3093\u3067\u3044\u307e\u3059': true,",
" 'points': 47",
" }",
"}"));
diff --git a/config-model/src/test/schema-test-files/services.xml b/config-model/src/test/schema-test-files/services.xml
index 9143709d855..322f4ed8356 100644
--- a/config-model/src/test/schema-test-files/services.xml
+++ b/config-model/src/test/schema-test-files/services.xml
@@ -19,7 +19,8 @@
<consumer id="my-consumer">
<metric-set id="my-set" />
<metric id="my-metric"/>
- <metric id="my-metric2"/>
+ <metric id="my-metric2" display-name="my-metric3"/>
+ <metric display-name="my-metric4" id="my-metric4.avg"/>
</consumer>
<consumer id="my-consumer2">
<metric-set id="my-set2" />