diff options
author | Martin Polden <mpolden@mpolden.no> | 2019-09-09 13:05:10 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2019-09-09 14:46:09 +0200 |
commit | 46708d8c64baea341aa332f18d026dd7936bc745 (patch) | |
tree | 490489429d4e92cf6be6ccc8eaf769c50873ffa2 /controller-server/src/test/java/com/yahoo/vespa/hosted/controller/metric | |
parent | dd25c2a3c4c16ba96eda61e996f5347f1f8eaa9c (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.java | 78 |
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); + } + +} |