aboutsummaryrefslogtreecommitdiffstats
path: root/metrics-proxy
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2020-01-17 15:31:37 +0100
committergjoranv <gv@verizonmedia.com>2020-01-17 15:31:37 +0100
commitd6f1aad857954ab8d4b65b630b12f03ac53f963b (patch)
treed745c16dfe889c4080fd0b34069a55aab9fb6307 /metrics-proxy
parent051d7d700d83f8b77ffa0efc8efd8319758d9b10 (diff)
Add node's role to json output.
Diffstat (limited to 'metrics-proxy')
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/GenericJsonModel.java5
-rw-r--r--metrics-proxy/src/main/java/ai/vespa/metricsproxy/metric/model/json/GenericJsonUtil.java6
-rw-r--r--metrics-proxy/src/test/java/ai/vespa/metricsproxy/http/application/ApplicationMetricsHandlerTest.java1
-rw-r--r--metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/model/json/GenericApplicationModelTest.java3
-rw-r--r--metrics-proxy/src/test/resources/generic-application.json2
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": [