diff options
author | gjoranv <gjoranv@gmail.com> | 2017-09-06 15:17:54 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-06 15:17:54 +0200 |
commit | 57fde4202f402ebeb177b1b4120b755800190df5 (patch) | |
tree | 31aae3e7224013d90e8d810030666bcff827d2a4 /config-model/src | |
parent | d4c79c2e7c675c7e9b4c974418f58da58cfa2a47 (diff) | |
parent | 834482a1b0e414295cce8cb9e223033d8c194f44 (diff) |
Merge pull request #3348 from vespa-engine/arnej/add-metrics-display-name
Arnej/add metrics display name
Diffstat (limited to 'config-model/src')
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" /> |