summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2022-07-17 19:29:40 +0200
committerJon Bratseth <bratseth@gmail.com>2022-07-17 19:29:40 +0200
commit7896ac687243a3ce9953f9ea952dbd5ede300eba (patch)
tree11303b49f607e69338d990a7b1834222448e0b20
parent7308d9f8edb394c51703bc164f4e62bb5c638f82 (diff)
Use fixture
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTest.java40
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/Fixture.java11
2 files changed, 20 insertions, 31 deletions
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTest.java
index e2e18a2da43..b8fcb3a3660 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTest.java
@@ -266,45 +266,27 @@ public class AutoscalingTest {
var fixture = AutoscalingTester.fixture().capacity(Capacity.from(min, min)).build();
fixture.tester().clock().advance(Duration.ofDays(2));
fixture.applyCpuLoad(1.0, 120);
- fixture.tester().assertResources("Scaling up ",
+ fixture.tester().assertResources("Suggesting above capacity limit",
8, 1, 9.3, 5.7, 57.1,
fixture.tester().suggest(fixture.application, fixture.cluster.id(), min, min));
}
@Test
public void not_using_out_of_service_measurements() {
- NodeResources resources = new NodeResources(3, 100, 100, 1);
- ClusterResources min = new ClusterResources(2, 1, new NodeResources(1, 1, 1, 1));
- ClusterResources max = new ClusterResources(5, 1, new NodeResources(100, 1000, 1000, 1));
- var capacity = Capacity.from(min, max);
- AutoscalingTester tester = new AutoscalingTester(resources.withVcpu(resources.vcpu() * 2));
-
- ApplicationId application1 = AutoscalingTester.applicationId("application1");
- ClusterSpec cluster1 = AutoscalingTester.clusterSpec(ClusterSpec.Type.container, "cluster1");
-
- // deploy
- tester.deploy(application1, cluster1, 2, 1, resources);
- tester.addMeasurements(0.5f, 0.6f, 0.7f, 1, false, true, 120, application1);
- assertTrue("Not scaling up since nodes were measured while cluster was unstable",
- tester.autoscale(application1, cluster1, capacity).isEmpty());
+ var fixture = AutoscalingTester.fixture().build();
+ fixture.tester().clock().advance(Duration.ofDays(2));
+ fixture.applyLoad(0.9, 0.6, 0.7, 1, false, true, 120);
+ assertTrue("Not scaling up since nodes were measured while cluster was out of service",
+ fixture.autoscale().isEmpty());
}
@Test
public void not_using_unstable_measurements() {
- NodeResources resources = new NodeResources(3, 100, 100, 1);
- ClusterResources min = new ClusterResources(2, 1, new NodeResources(1, 1, 1, 1));
- ClusterResources max = new ClusterResources(5, 1, new NodeResources(100, 1000, 1000, 1));
- var capacity = Capacity.from(min, max);
- AutoscalingTester tester = new AutoscalingTester(resources.withVcpu(resources.vcpu() * 2));
-
- ApplicationId application1 = AutoscalingTester.applicationId("application1");
- ClusterSpec cluster1 = AutoscalingTester.clusterSpec(ClusterSpec.Type.container, "cluster1");
-
- // deploy
- tester.deploy(application1, cluster1, 2, 1, resources);
- tester.addMeasurements(0.5f, 0.6f, 0.7f, 1, true, false, 120, application1);
- assertTrue("Not scaling up since nodes were measured while cluster was unstable",
- tester.autoscale(application1, cluster1, capacity).isEmpty());
+ var fixture = AutoscalingTester.fixture().build();
+ fixture.tester().clock().advance(Duration.ofDays(2));
+ fixture.applyLoad(0.9, 0.6, 0.7, 1, true, false, 120);
+ assertTrue("Not scaling up since nodes were measured while cluster was out of service",
+ fixture.autoscale().isEmpty());
}
@Test
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/Fixture.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/Fixture.java
index 371cbe25e1b..429e0ce7030 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/Fixture.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/Fixture.java
@@ -63,6 +63,13 @@ public class Fixture {
tester.deactivateRetired(application, cluster, capacity);
}
+ public void applyCpuLoad(double cpuLoad, int measurements) {
+ Duration samplingInterval = Duration.ofSeconds(150L); // in addCpuMeasurements
+ tester().addCpuMeasurements((float)cpuLoad, 1.0f, measurements, application);
+ tester().clock().advance(samplingInterval.negated().multipliedBy(measurements));
+ tester().addQueryRateMeasurements(application, cluster.id(), measurements, samplingInterval, t -> t == 0 ? 20.0 : 10.0); // Query traffic only
+ }
+
public void applyLoad(double cpuLoad, double memoryLoad, double diskLoad, int measurements) {
Duration samplingInterval = Duration.ofSeconds(150L); // in addCpuMeasurements
tester().addMeasurements((float)cpuLoad, (float)memoryLoad, (float)diskLoad, measurements, application);
@@ -70,9 +77,9 @@ public class Fixture {
tester().addQueryRateMeasurements(application, cluster.id(), measurements, samplingInterval, t -> t == 0 ? 20.0 : 10.0); // Query traffic only
}
- public void applyCpuLoad(double cpuLoad, int measurements) {
+ public void applyLoad(double cpuLoad, double memoryLoad, double diskLoad, int generation, boolean inService, boolean stable, int measurements) {
Duration samplingInterval = Duration.ofSeconds(150L); // in addCpuMeasurements
- tester().addCpuMeasurements((float)cpuLoad, 1.0f, measurements, application);
+ tester().addMeasurements((float)cpuLoad, (float)memoryLoad, (float)diskLoad, generation, inService, stable, measurements, application);
tester().clock().advance(samplingInterval.negated().multipliedBy(measurements));
tester().addQueryRateMeasurements(application, cluster.id(), measurements, samplingInterval, t -> t == 0 ? 20.0 : 10.0); // Query traffic only
}