aboutsummaryrefslogtreecommitdiffstats
path: root/metrics-proxy/src/test
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2019-12-14 03:43:20 +0100
committergjoranv <gv@verizonmedia.com>2019-12-19 12:05:04 +0100
commit1a1762f3c5e34f81e0f33152de1f9633624e39ff (patch)
tree7afb523449998130704901239259c2cb9111cf3e /metrics-proxy/src/test
parent2a8ba2d5710bf139343356367f934f5d0d02b095 (diff)
Allow conversion from GenericJsonModel to MetricsPackets
Diffstat (limited to 'metrics-proxy/src/test')
-rw-r--r--metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/model/json/GenericJsonModelTest.java44
-rw-r--r--metrics-proxy/src/test/resources/generic-sample.json10
2 files changed, 48 insertions, 6 deletions
diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/model/json/GenericJsonModelTest.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/model/json/GenericJsonModelTest.java
index 5d248db8b18..ad11a82e547 100644
--- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/model/json/GenericJsonModelTest.java
+++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/metric/model/json/GenericJsonModelTest.java
@@ -18,9 +18,9 @@ import static ai.vespa.metricsproxy.metric.model.DimensionId.toDimensionId;
import static ai.vespa.metricsproxy.metric.model.MetricId.toMetricId;
import static ai.vespa.metricsproxy.metric.model.ServiceId.toServiceId;
import static ai.vespa.metricsproxy.metric.model.json.JacksonUtil.createObjectMapper;
+import static java.util.stream.Collectors.toList;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
/**
* @author gjoranv
@@ -37,12 +37,26 @@ public class GenericJsonModelTest {
assertEquals(2, jsonModel.node.metrics.size());
assertEquals(16.222, jsonModel.node.metrics.get(0).values.get("cpu.util"), 0.01d);
- String expected = getFileContents(TEST_FILE).trim().replaceAll("\\s+", "");;
+ assertThatSerializedModelEqualsTestFile(jsonModel);
+ }
- String serialized = jsonModel.serialize();
- String trimmed = serialized.trim().replaceAll("\\s+", "");
+ @Test
+ public void deserialize_serialize_roundtrip_with_metrics_packets() throws IOException {
+ GenericJsonModel modelFromFile = genericJsonModelFromTestFile();
+ List<MetricsPacket> metricsPackets = GenericJsonUtil.toMetricsPackets(modelFromFile).stream()
+ .map(MetricsPacket.Builder::build)
+ .collect(toList());
- assertEquals(expected, trimmed);
+ assertEquals(4, metricsPackets.size());
+
+ GenericJsonModel modelFromPackets = GenericJsonUtil.toGenericJsonModel(metricsPackets);
+
+ // Do some sanity checking
+ assertEquals(2, modelFromFile.services.size());
+ assertEquals(2, modelFromFile.node.metrics.size());
+ assertEquals(16.222, modelFromFile.node.metrics.get(0).values.get("cpu.util"), 0.01d);
+
+ assertThatSerializedModelEqualsTestFile(modelFromPackets);
}
@Test
@@ -84,6 +98,26 @@ public class GenericJsonModelTest {
System.out.println(createObjectMapper().writerWithDefaultPrettyPrinter().writeValueAsString(jsonModel));
}
+ @Test
+ public void generic_json_string_can_be_converted_to_metrics_packets() {
+ String genericJson = getFileContents(TEST_FILE);
+ List<MetricsPacket> metricsPackets = GenericJsonUtil.toMetricsPackets(genericJson).stream()
+ .map(MetricsPacket.Builder::build)
+ .collect(toList());
+
+ assertEquals(4, metricsPackets.size());
+ GenericJsonModel modelFromPackets = GenericJsonUtil.toGenericJsonModel(metricsPackets);
+
+ assertThatSerializedModelEqualsTestFile(modelFromPackets);
+ }
+
+ private void assertThatSerializedModelEqualsTestFile(GenericJsonModel modelFromPackets) {
+ String serialized = modelFromPackets.serialize();
+ String trimmed = serialized.trim().replaceAll("\\s+", "");
+
+ String expected = getFileContents(TEST_FILE).trim().replaceAll("\\s+", "");
+ assertEquals(expected, trimmed);
+ }
private GenericJsonModel genericJsonModelFromTestFile() throws IOException {
ObjectMapper mapper = createObjectMapper();
diff --git a/metrics-proxy/src/test/resources/generic-sample.json b/metrics-proxy/src/test/resources/generic-sample.json
index 684b297e768..de617895f86 100644
--- a/metrics-proxy/src/test/resources/generic-sample.json
+++ b/metrics-proxy/src/test/resources/generic-sample.json
@@ -44,7 +44,15 @@
"status": {
"code": "unknown",
"description": "Unable to fetch metrics from service 'slobrok'"
- }
+ },
+ "metrics": [
+ {
+ "values": {},
+ "dimensions": {
+ "instance": "slobrok0"
+ }
+ }
+ ]
}
]
} \ No newline at end of file