aboutsummaryrefslogtreecommitdiffstats
path: root/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/metric
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2019-09-09 13:05:10 +0200
committerMartin Polden <mpolden@mpolden.no>2019-09-09 14:46:09 +0200
commit46708d8c64baea341aa332f18d026dd7936bc745 (patch)
tree490489429d4e92cf6be6ccc8eaf769c50873ffa2 /controller-server/src/test/java/com/yahoo/vespa/hosted/controller/metric
parentdd25c2a3c4c16ba96eda61e996f5347f1f8eaa9c (diff)
Move config server metrics fetching to controller-server
`MetricsService` interface and component setup is no longer needed.
Diffstat (limited to 'controller-server/src/test/java/com/yahoo/vespa/hosted/controller/metric')
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/metric/ConfigServerMetricsTest.java78
1 files changed, 78 insertions, 0 deletions
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/metric/ConfigServerMetricsTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/metric/ConfigServerMetricsTest.java
new file mode 100644
index 00000000000..23a6c6286c0
--- /dev/null
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/metric/ConfigServerMetricsTest.java
@@ -0,0 +1,78 @@
+package com.yahoo.vespa.hosted.controller.metric;
+
+import com.yahoo.config.provision.ApplicationId;
+import com.yahoo.config.provision.zone.ZoneId;
+import com.yahoo.vespa.hosted.controller.api.application.v4.model.ClusterMetrics;
+import com.yahoo.vespa.hosted.controller.api.identifiers.DeploymentId;
+import com.yahoo.vespa.hosted.controller.integration.ConfigServerMock;
+import com.yahoo.vespa.hosted.controller.integration.ZoneRegistryMock;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * @author olaa
+ */
+public class ConfigServerMetricsTest {
+
+ private final ApplicationId applicationId = new ApplicationId.Builder()
+ .tenant("foo")
+ .applicationName("bar")
+ .instanceName("default")
+ .build();
+
+ private final ZoneId zoneId = ZoneId.from("prod", "us-west-1");
+
+ private ConfigServerMock configServer;
+ private ConfigServerMetrics service;
+
+ @Before
+ public void before() {
+ configServer = new ConfigServerMock(new ZoneRegistryMock());
+ service = new ConfigServerMetrics(configServer);
+ }
+
+ @Test
+ public void test_returning_metrics() {
+ //
+ // Wire up the test
+ //
+ var deploymentId = new DeploymentId(applicationId, zoneId);
+
+ var clusterMetrics1 = new ClusterMetrics("niceCluster", ClusterMetrics.ClusterType.container) {{
+ addMetric("queriesPerSecond", 23.0);
+ addMetric("queryLatency", 1337.0);
+ }};
+
+ var clusterMetrics2 = new ClusterMetrics("alsoNiceCluster", ClusterMetrics.ClusterType.container) {{
+ addMetric("queriesPerSecond", 11.0);
+ addMetric("queryLatency", 12.0);
+ }};
+
+ var response = List.of(clusterMetrics1, clusterMetrics2);
+
+ configServer.setMetrics(deploymentId, response);
+
+ //
+ // Now we can actually test stuff :(
+ //
+ var deploymentMetrics = service.getDeploymentMetrics(applicationId, zoneId);
+
+ assertEquals(23.0 + 11.0, deploymentMetrics.queriesPerSecond(), 0.001);
+ assertEquals(908.323, deploymentMetrics.queryLatencyMillis(), 0.001);
+ assertEquals(0, deploymentMetrics.documentCount());
+ assertEquals(0.0, deploymentMetrics.writeLatencyMillis(), 0.001);
+ assertEquals(0.0, deploymentMetrics.writesPerSecond(), 0.001);
+ }
+
+ @Test
+ public void test_not_implemented_application_metrics() {
+ var applicationMetrics = service.getApplicationMetrics(applicationId);
+ assertEquals(0.0, applicationMetrics.queryServiceQuality(), 0.001);
+ assertEquals(0.0, applicationMetrics.writeServiceQuality(), 0.001);
+ }
+
+}