diff options
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.java | 112 |
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; } |