summaryrefslogtreecommitdiffstats
path: root/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/AutoscalingMaintainerTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/AutoscalingMaintainerTest.java')
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/AutoscalingMaintainerTest.java27
1 files changed, 20 insertions, 7 deletions
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/AutoscalingMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/AutoscalingMaintainerTest.java
index 2635258956a..5c2bbf1742f 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/AutoscalingMaintainerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/AutoscalingMaintainerTest.java
@@ -6,13 +6,18 @@ import com.yahoo.config.provision.Capacity;
import com.yahoo.config.provision.ClusterResources;
import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.config.provision.NodeResources;
+import com.yahoo.vespa.hosted.provision.applications.ScalingEvent;
import com.yahoo.vespa.hosted.provision.autoscale.Metric;
import com.yahoo.vespa.hosted.provision.testutils.MockDeployer;
import org.junit.Test;
import java.time.Duration;
import java.time.Instant;
+import java.util.List;
+
+import static com.yahoo.config.provision.NodeResources.DiskSpeed.fast;
+import static com.yahoo.config.provision.NodeResources.StorageType.remote;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -78,24 +83,32 @@ public class AutoscalingMaintainerTest {
var tester = new AutoscalingMaintainerTester(new MockDeployer.ApplicationContext(app1, cluster1, app1Capacity));
// Initial deployment at time 0
+ System.out.println("Initial deploy");
tester.deploy(app1, cluster1, app1Capacity);
// Measure overload
tester.clock().advance(Duration.ofSeconds(1));
+ System.out.println("Advance by 1 second to " + tester.clock().instant());
+ System.out.println("Emit metrics");
+ tester.addMeasurements(Metric.generation, 0, 1, app1);
tester.addMeasurements(Metric.cpu, 0.9f, 500, app1);
tester.addMeasurements(Metric.memory, 0.9f, 500, app1);
tester.addMeasurements(Metric.disk, 0.9f, 500, app1);
// Causes autoscaling
tester.clock().advance(Duration.ofSeconds(1));
+ System.out.println("Advance by 1 second to " + tester.clock().instant());
Instant firstMaintenanceTime = tester.clock().instant();
+ System.out.println("Run maintenance");
tester.maintainer().maintain();
assertTrue(tester.deployer().lastDeployTime(app1).isPresent());
assertEquals(firstMaintenanceTime.toEpochMilli(), tester.deployer().lastDeployTime(app1).get().toEpochMilli());
- assertEquals(1, tester.nodeMetricsDb().getEvents(app1).size());
- assertEquals(app1, tester.nodeMetricsDb().getEvents(app1).get(0).application());
- assertEquals(0, tester.nodeMetricsDb().getEvents(app1).get(0).generation());
- assertEquals(firstMaintenanceTime.toEpochMilli(), tester.nodeMetricsDb().getEvents(app1).get(0).time().toEpochMilli());
+ List<ScalingEvent> events = tester.nodeRepository().applications().get(app1).get().cluster(cluster1.id()).get().scalingEvents();
+ assertEquals(1, events.size());
+ assertEquals(2, events.get(0).from().nodes());
+ assertEquals(4, events.get(0).to().nodes());
+ assertEquals(1, events.get(0).generation());
+ assertEquals(firstMaintenanceTime.toEpochMilli(), events.get(0).at().toEpochMilli());
// Measure overload still, since change is not applied, but metrics are discarded
tester.clock().advance(Duration.ofSeconds(1));
@@ -117,7 +130,7 @@ public class AutoscalingMaintainerTest {
// Add measurement of the expected generation, leading to rescaling
tester.clock().advance(Duration.ofSeconds(1));
- tester.addMeasurements(Metric.generation, 0, 1, app1);
+ tester.addMeasurements(Metric.generation, 1, 1, app1);
tester.addMeasurements(Metric.cpu, 0.1f, 500, app1);
tester.addMeasurements(Metric.memory, 0.1f, 500, app1);
tester.addMeasurements(Metric.disk, 0.1f, 500, app1);
@@ -125,8 +138,8 @@ public class AutoscalingMaintainerTest {
Instant lastMaintenanceTime = tester.clock().instant();
tester.maintainer().maintain();
assertEquals(lastMaintenanceTime.toEpochMilli(), tester.deployer().lastDeployTime(app1).get().toEpochMilli());
- assertEquals(2, tester.nodeMetricsDb().getEvents(app1).size());
- assertEquals(1, tester.nodeMetricsDb().getEvents(app1).get(1).generation());
+ events = tester.nodeRepository().applications().get(app1).get().cluster(cluster1.id()).get().scalingEvents();
+ assertEquals(2, events.get(0).generation());
}
@Test