diff options
author | gjoranv <gv@verizonmedia.com> | 2020-01-17 15:31:37 +0100 |
---|---|---|
committer | gjoranv <gv@verizonmedia.com> | 2020-01-17 15:31:37 +0100 |
commit | d6f1aad857954ab8d4b65b630b12f03ac53f963b (patch) | |
tree | d745c16dfe889c4080fd0b34069a55aab9fb6307 /metrics-proxy | |
parent | 051d7d700d83f8b77ffa0efc8efd8319758d9b10 (diff) |
Add node's role to json output.
Diffstat (limited to 'metrics-proxy')
5 files changed, 15 insertions, 2 deletions
diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/GenericJsonModel.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/GenericJsonModel.java index 83a69a38a87..b7abb2c0349 100644 --- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/GenericJsonModel.java +++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/GenericJsonModel.java @@ -19,12 +19,15 @@ import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_ABSENT; */ @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(NON_ABSENT) -@JsonPropertyOrder({ "hostname", "node", "services" }) +@JsonPropertyOrder({ "hostname", "role", "node", "services" }) public class GenericJsonModel { @JsonProperty("hostname") public String hostname; + @JsonProperty("role") + public String role; + @JsonProperty("node") public GenericNode node; diff --git a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/GenericJsonUtil.java b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/GenericJsonUtil.java index 8ff86d8a821..e249338c318 100644 --- a/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/GenericJsonUtil.java +++ b/metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/GenericJsonUtil.java @@ -56,6 +56,11 @@ public class GenericJsonUtil { .collect(Collectors.groupingBy(packet -> packet.service, LinkedHashMap::new, toList())); var jsonModel = new GenericJsonModel(); + if (node != null) { + jsonModel.hostname = node.hostname; + jsonModel.role = node.role; + } + var genericServices = new ArrayList<GenericService>(); packetsByService.forEach((serviceId, packets) -> { var genericMetricsList = packets.stream() @@ -71,7 +76,6 @@ public class GenericJsonUtil { .get(); if (VESPA_NODE_SERVICE_ID.equals(serviceId)) { jsonModel.node = new GenericNode(genericService.timestamp, genericService.metrics); - jsonModel.hostname = node == null ? null : node.hostname; } else { genericServices.add(genericService); diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/application/ApplicationMetricsHandlerTest.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/application/ApplicationMetricsHandlerTest.java index 959b73d5682..074b7877430 100644 --- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/application/ApplicationMetricsHandlerTest.java +++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/application/ApplicationMetricsHandlerTest.java @@ -119,6 +119,7 @@ public class ApplicationMetricsHandlerTest { assertEquals(1, jsonModel.nodes.size()); GenericJsonModel nodeModel = jsonModel.nodes.get(0); assertEquals(HOST, nodeModel.hostname); + assertEquals(MOCK_METRICS_PATH, nodeModel.role); assertEquals(2, nodeModel.node.metrics.size()); assertEquals(16.222, nodeModel.node.metrics.get(0).values.get(CPU_METRIC), 0.0001d); } diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/model/json/GenericApplicationModelTest.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/model/json/GenericApplicationModelTest.java index 73b6c014b92..5a2d374af2e 100644 --- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/model/json/GenericApplicationModelTest.java +++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/model/json/GenericApplicationModelTest.java @@ -34,6 +34,7 @@ public class GenericApplicationModelTest { assertEquals(2, model.nodes.size()); GenericJsonModel node0Model = model.nodes.get(0); assertEquals("node0", node0Model.hostname); + assertEquals("role0", node0Model.role); assertEquals(1, node0Model.services.size()); GenericService service = node0Model.services.get(0); assertEquals(1, service.metrics.size()); @@ -42,6 +43,7 @@ public class GenericApplicationModelTest { GenericJsonModel node1Model = model.nodes.get(1); GenericNode node1 = node1Model.node; assertEquals("node1", node1Model.hostname); + assertEquals("role1", node1Model.role); assertEquals(32.444, node1.metrics.get(0).values.get("cpu.util"), 0.001d); assertThatSerializedModelEqualsTestFile(model); @@ -71,6 +73,7 @@ public class GenericApplicationModelTest { GenericJsonModel nodeModel = model.nodes.get(0); assertNotNull(nodeModel.node); assertEquals("hostname", nodeModel.hostname); + assertEquals("my-role", nodeModel.role); assertEquals(1, nodeModel.node.metrics.size()); GenericMetrics nodeMetrics = nodeModel.node.metrics.get(0); assertEquals(1.234, nodeMetrics.values.get("node-metric"), 0.001d); diff --git a/metrics-proxy/src/test/resources/generic-application.json b/metrics-proxy/src/test/resources/generic-application.json index 377293a1d3b..ff529a240db 100644 --- a/metrics-proxy/src/test/resources/generic-application.json +++ b/metrics-proxy/src/test/resources/generic-application.json @@ -2,6 +2,7 @@ "nodes": [ { "hostname": "node0", + "role": "role0", "node": { "timestamp": 1234, "metrics": [ @@ -37,6 +38,7 @@ }, { "hostname": "node1", + "role": "role1", "node": { "timestamp": 1234, "metrics": [ |