aboutsummaryrefslogtreecommitdiffstats
path: root/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/MetricsFetcherTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/MetricsFetcherTest.java')
-rw-r--r--metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/MetricsFetcherTest.java90
1 files changed, 90 insertions, 0 deletions
diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/MetricsFetcherTest.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/MetricsFetcherTest.java
new file mode 100644
index 00000000000..27e1bb97943
--- /dev/null
+++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/MetricsFetcherTest.java
@@ -0,0 +1,90 @@
+/*
+ * Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+ */
+
+package ai.vespa.metricsproxy.service;
+
+import ai.vespa.metricsproxy.TestUtil;
+import ai.vespa.metricsproxy.metric.Metrics;
+import org.junit.Test;
+
+import java.io.File;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+/**
+ * @author Unknowm
+ */
+public class MetricsFetcherTest {
+ private static int port = 9; //port number is not used in this test
+
+ @Test
+ public void testStateFormatMetricsParse() {
+ String jsonData = TestUtil.getContents("metrics-state.json");
+ RemoteMetricsFetcher fetcher = new RemoteMetricsFetcher(new DummyService(0, "dummy/id/0"), port);
+ Metrics metrics = fetcher.createMetrics(jsonData, 0);
+ assertThat("Wrong number of metrics", metrics.size(), is(10));
+ assertThat("Wrong value for metric", metrics.get("query_hits.count").intValue(), is(28));
+ assertThat("Wrong value for metric ", metrics.get("queries.rate").doubleValue(), is(0.4667));
+ assertThat("Wrong timestamp", metrics.getTimeStamp(), is(1334134700L));
+ }
+
+ @Test
+ public void testEmptyJson() {
+ String jsonData = "{}";
+ RemoteMetricsFetcher fetcher = new RemoteMetricsFetcher(new DummyService(0, "dummy/id/0"), port);
+ Metrics metrics = fetcher.createMetrics(jsonData, 0);
+ assertThat("Wrong number of metrics", metrics.size(), is(0));
+ }
+
+ @Test
+ public void testErrors() {
+ String jsonData;
+ Metrics metrics;
+
+ RemoteMetricsFetcher fetcher = new RemoteMetricsFetcher(new DummyService(0, "dummy/id/0"), port);
+
+ jsonData = "";
+ metrics = fetcher.createMetrics(jsonData, 0);
+ assertThat("Wrong number of metrics", metrics.size(), is(0));
+
+ jsonData = "{\n" +
+ "\"status\" : {\n" +
+ " \"code\" : \"up\",\n" +
+ " \"message\" : \"Everything ok here\"\n" +
+ "}\n" +
+ "}";
+ metrics = fetcher.createMetrics(jsonData, 0);
+ assertThat("Wrong number of metrics", metrics.size(), is(0));
+
+ jsonData = "{\n" +
+ "\"status\" : {\n" +
+ " \"code\" : \"up\",\n" +
+ " \"message\" : \"Everything ok here\"\n" +
+ "},\n" +
+ "\"metrics\" : {\n" +
+ " \"snapshot\" : {\n" +
+ " \"from\" : 1334134640.089,\n" +
+ " \"to\" : 1334134700.088\n" +
+ " },\n" +
+ " \"values\" : [\n" +
+ " {\n" +
+ " \"name\" : \"queries\",\n" +
+ " \"description\" : \"Number of queries executed during snapshot interval\",\n" +
+ " \"values\" : {\n" +
+ " \"count\" : null,\n" +
+ " \"rate\" : 0.4667\n" +
+ " },\n" +
+ " \"dimensions\" : {\n" +
+ " \"searcherid\" : \"x\"\n" +
+ " }\n" +
+ " }\n" + "" +
+ " ]\n" +
+ "}\n" +
+ "}";
+
+ metrics = fetcher.createMetrics(jsonData, 0);
+ assertThat("Wrong number of metrics", metrics.size(), is(0));
+ }
+}