aboutsummaryrefslogtreecommitdiffstats
path: root/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/QuestMetricsDbTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/QuestMetricsDbTest.java')
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/QuestMetricsDbTest.java112
1 files changed, 24 insertions, 88 deletions
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/QuestMetricsDbTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/QuestMetricsDbTest.java
index 18b92fa6b0f..70f9d581816 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/QuestMetricsDbTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/QuestMetricsDbTest.java
@@ -2,8 +2,6 @@
package com.yahoo.vespa.hosted.provision.autoscale;
import com.yahoo.collections.Pair;
-import com.yahoo.config.provision.ApplicationId;
-import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.io.IOUtils;
import com.yahoo.test.ManualClock;
import org.junit.Ignore;
@@ -14,9 +12,7 @@ import java.time.Duration;
import java.time.Instant;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.HashMap;
import java.util.List;
-import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
@@ -33,7 +29,7 @@ public class QuestMetricsDbTest {
private static final double delta = 0.0000001;
@Test
- public void testNodeMetricsReadWrite() {
+ public void testReadWrite() {
String dataDir = "data/QuestMetricsDbReadWrite";
IOUtils.recursiveDeleteDir(new File(dataDir));
IOUtils.createDirectory(dataDir + "/metrics");
@@ -42,7 +38,7 @@ public class QuestMetricsDbTest {
Instant startTime = clock.instant();
clock.advance(Duration.ofSeconds(1));
- db.addNodeMetrics(nodeTimeseries(1000, Duration.ofSeconds(1), clock, "host1", "host2", "host3"));
+ db.add(timeseries(1000, Duration.ofSeconds(1), clock, "host1", "host2", "host3"));
clock.advance(Duration.ofSeconds(1));
@@ -52,7 +48,7 @@ public class QuestMetricsDbTest {
assertEquals(1, nodeTimeSeries1.size());
assertEquals("host1", nodeTimeSeries1.get(0).hostname());
assertEquals(1000, nodeTimeSeries1.get(0).size());
- NodeMetricSnapshot snapshot = nodeTimeSeries1.get(0).asList().get(0);
+ MetricSnapshot snapshot = nodeTimeSeries1.get(0).asList().get(0);
assertEquals(startTime.plus(Duration.ofSeconds(1)), snapshot.at());
assertEquals(0.1, snapshot.cpu(), delta);
assertEquals(0.2, snapshot.memory(), delta);
@@ -79,56 +75,6 @@ public class QuestMetricsDbTest {
}
@Test
- public void testClusterMetricsReadWrite() {
- String dataDir = "data/QuestMetricsDbReadWrite";
- IOUtils.recursiveDeleteDir(new File(dataDir));
- IOUtils.createDirectory(dataDir + "/clusterMetrics");
- ManualClock clock = new ManualClock("2020-10-01T00:00:00");
- QuestMetricsDb db = new QuestMetricsDb(dataDir, clock);
- Instant startTime = clock.instant();
-
- var application1 = ApplicationId.from("t1", "a1", "i1");
- var application2 = ApplicationId.from("t1", "a2", "i1");
- var cluster1 = new ClusterSpec.Id("cluster1");
- var cluster2 = new ClusterSpec.Id("cluster2");
- db.addClusterMetrics(application1, Map.of(cluster1, new ClusterMetricSnapshot(clock.instant(), 30.0)));
- db.addClusterMetrics(application1, Map.of(cluster2, new ClusterMetricSnapshot(clock.instant(), 60.0)));
- clock.advance(Duration.ofMinutes(1));
- db.addClusterMetrics(application1, Map.of(cluster1, new ClusterMetricSnapshot(clock.instant(), 45.0)));
- clock.advance(Duration.ofMinutes(1));
- db.addClusterMetrics(application2, Map.of(cluster1, new ClusterMetricSnapshot(clock.instant(), 90.0)));
-
- ClusterTimeseries clusterTimeseries11 = db.getClusterTimeseries(application1, cluster1);
- assertEquals(cluster1, clusterTimeseries11.cluster());
- assertEquals(2, clusterTimeseries11.asList().size());
-
- ClusterMetricSnapshot snapshot111 = clusterTimeseries11.get(0);
- assertEquals(startTime, snapshot111.at());
- assertEquals(30, snapshot111.queryRate(), delta);
- ClusterMetricSnapshot snapshot112 = clusterTimeseries11.get(1);
- assertEquals(startTime.plus(Duration.ofMinutes(1)), snapshot112.at());
- assertEquals(45, snapshot112.queryRate(), delta);
-
-
- ClusterTimeseries clusterTimeseries12 = db.getClusterTimeseries(application1, cluster2);
- assertEquals(cluster2, clusterTimeseries12.cluster());
- assertEquals(1, clusterTimeseries12.asList().size());
-
- ClusterMetricSnapshot snapshot121 = clusterTimeseries12.get(0);
- assertEquals(startTime, snapshot121.at());
- assertEquals(60, snapshot121.queryRate(), delta);
-
-
- ClusterTimeseries clusterTimeseries21 = db.getClusterTimeseries(application2, cluster1);
- assertEquals(cluster1, clusterTimeseries21.cluster());
- assertEquals(1, clusterTimeseries21.asList().size());
-
- ClusterMetricSnapshot snapshot211 = clusterTimeseries21.get(0);
- assertEquals(startTime.plus(Duration.ofMinutes(2)), snapshot211.at());
- assertEquals(90, snapshot211.queryRate(), delta);
- }
-
- @Test
public void testWriteOldData() {
String dataDir = "data/QuestMetricsDbWriteOldData";
IOUtils.recursiveDeleteDir(new File(dataDir));
@@ -137,19 +83,19 @@ public class QuestMetricsDbTest {
QuestMetricsDb db = new QuestMetricsDb(dataDir, clock);
Instant startTime = clock.instant();
clock.advance(Duration.ofSeconds(300));
- db.addNodeMetrics(timeseriesAt(10, clock.instant(), "host1", "host2", "host3"));
+ db.add(timeseriesAt(10, clock.instant(), "host1", "host2", "host3"));
clock.advance(Duration.ofSeconds(1));
List<NodeTimeseries> nodeTimeSeries1 = db.getNodeTimeseries(Duration.between(startTime, clock.instant()),
Set.of("host1"));
assertEquals(10, nodeTimeSeries1.get(0).size());
- db.addNodeMetrics(timeseriesAt(10, clock.instant().minus(Duration.ofSeconds(20)), "host1", "host2", "host3"));
+ db.add(timeseriesAt(10, clock.instant().minus(Duration.ofSeconds(20)), "host1", "host2", "host3"));
List<NodeTimeseries> nodeTimeSeries2 = db.getNodeTimeseries(Duration.between(startTime, clock.instant()),
Set.of("host1"));
assertEquals("Recent data is accepted", 20, nodeTimeSeries2.get(0).size());
- db.addNodeMetrics(timeseriesAt(10, clock.instant().minus(Duration.ofSeconds(200)), "host1", "host2", "host3"));
+ db.add(timeseriesAt(10, clock.instant().minus(Duration.ofSeconds(200)), "host1", "host2", "host3"));
List<NodeTimeseries> nodeTimeSeries3 = db.getNodeTimeseries(Duration.between(startTime, clock.instant()),
Set.of("host1"));
assertEquals("Too old data is rejected", 20, nodeTimeSeries3.get(0).size());
@@ -165,15 +111,15 @@ public class QuestMetricsDbTest {
Instant startTime = clock.instant();
int dayOffset = 3;
clock.advance(Duration.ofHours(dayOffset));
- db.addNodeMetrics(nodeTimeseries(24 * 10, Duration.ofHours(1), clock, "host1", "host2", "host3"));
+ db.add(timeseries(24 * 10, Duration.ofHours(1), clock, "host1", "host2", "host3"));
assertEquals(24 * 10, db.getNodeTimeseries(Duration.between(startTime, clock.instant()),
Set.of("host1")).get(0).size());
db.gc();
- assertEquals(75, db.getNodeTimeseries(Duration.between(startTime, clock.instant()),
+ assertEquals(48 * 1 + dayOffset, db.getNodeTimeseries(Duration.between(startTime, clock.instant()),
Set.of("host1")).get(0).size());
db.gc(); // no-op
- assertEquals(75, db.getNodeTimeseries(Duration.between(startTime, clock.instant()),
+ assertEquals(48 * 1 + dayOffset, db.getNodeTimeseries(Duration.between(startTime, clock.instant()),
Set.of("host1")).get(0).size());
}
@@ -200,7 +146,7 @@ public class QuestMetricsDbTest {
System.out.println(" " + snapshot);
clock.advance(Duration.ofSeconds(1));
- db.addNodeMetrics(nodeTimeseries(2, Duration.ofSeconds(1), clock, "host1"));
+ db.add(timeseries(2, Duration.ofSeconds(1), clock, "host1"));
System.out.println("New data written and read:");
timeseries = db.getNodeTimeseries(Duration.ofSeconds(2), Set.of("host1"));
for (var snapshot : timeseries.get(0).asList())
@@ -217,7 +163,7 @@ public class QuestMetricsDbTest {
ManualClock clock = new ManualClock("2020-10-01T00:00:00");
QuestMetricsDb db = new QuestMetricsDb(dataDir, clock);
Instant startTime = clock.instant();
- db.addNodeMetrics(nodeTimeseries(10, Duration.ofSeconds(1), clock, "host1"));
+ db.add(timeseries(10, Duration.ofSeconds(1), clock, "host1"));
int added = db.getNodeTimeseries(Duration.between(startTime, clock.instant()),
Set.of("host1")).get(0).asList().size();
@@ -225,46 +171,36 @@ public class QuestMetricsDbTest {
db.close();
}
- private Collection<Pair<String, NodeMetricSnapshot>> nodeTimeseries(int countPerHost, Duration sampleRate, ManualClock clock,
- String ... hosts) {
- Collection<Pair<String, NodeMetricSnapshot>> timeseries = new ArrayList<>();
+ private Collection<Pair<String, MetricSnapshot>> timeseries(int countPerHost, Duration sampleRate, ManualClock clock,
+ String ... hosts) {
+ Collection<Pair<String, MetricSnapshot>> timeseries = new ArrayList<>();
for (int i = 1; i <= countPerHost; i++) {
for (String host : hosts)
- timeseries.add(new Pair<>(host, new NodeMetricSnapshot(clock.instant(),
+ timeseries.add(new Pair<>(host, new MetricSnapshot(clock.instant(),
i * 0.1,
i * 0.2,
i * 0.4,
i % 100,
- true,
- true,
- 30.0)));
- clock.advance(sampleRate);
- }
- return timeseries;
- }
-
- private List<ClusterMetricSnapshot> clusterTimeseries(int count, Duration sampleRate, ManualClock clock,
- ClusterSpec.Id cluster) {
- List<ClusterMetricSnapshot> timeseries = new ArrayList<>();
- for (int i = 1; i <= count; i++) {
- timeseries.add(new ClusterMetricSnapshot(clock.instant(), 30.0));
+ true,
+ true,
+ 30.0)));
clock.advance(sampleRate);
}
return timeseries;
}
- private Collection<Pair<String, NodeMetricSnapshot>> timeseriesAt(int countPerHost, Instant at, String ... hosts) {
- Collection<Pair<String, NodeMetricSnapshot>> timeseries = new ArrayList<>();
+ private Collection<Pair<String, MetricSnapshot>> timeseriesAt(int countPerHost, Instant at, String ... hosts) {
+ Collection<Pair<String, MetricSnapshot>> timeseries = new ArrayList<>();
for (int i = 1; i <= countPerHost; i++) {
for (String host : hosts)
- timeseries.add(new Pair<>(host, new NodeMetricSnapshot(at,
+ timeseries.add(new Pair<>(host, new MetricSnapshot(at,
i * 0.1,
i * 0.2,
i * 0.4,
i % 100,
- true,
- false,
- 0.0)));
+ true,
+ false,
+ 0.0)));
}
return timeseries;
}