diff options
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.java | 27 |
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 |