diff options
author | gjoranv <gv@verizonmedia.com> | 2019-12-14 03:43:20 +0100 |
---|---|---|
committer | gjoranv <gv@verizonmedia.com> | 2019-12-19 12:05:04 +0100 |
commit | 1a1762f3c5e34f81e0f33152de1f9633624e39ff (patch) | |
tree | 7afb523449998130704901239259c2cb9111cf3e /metrics-proxy/src/test | |
parent | 2a8ba2d5710bf139343356367f934f5d0d02b095 (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.java | 44 | ||||
-rw-r--r-- | metrics-proxy/src/test/resources/generic-sample.json | 10 |
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 |