diff options
author | mgimle <michael@gimle.io> | 2019-07-09 11:02:16 +0200 |
---|---|---|
committer | mgimle <michael@gimle.io> | 2019-07-09 11:50:29 +0200 |
commit | 6004c609ed00bc7c0c93dbefa36e45085179c943 (patch) | |
tree | d3e044fa61d3ad96327769f971ba28dd13587c13 /node-repository | |
parent | b423d1d8b0630e8a6f9c3ca1c52ae7078da8438d (diff) |
Renamed from NodeAlerter to CapacityReportMaintainer.
Diffstat (limited to 'node-repository')
-rw-r--r-- | node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityReportMaintainer.java (renamed from node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeAlerter.java) | 13 | ||||
-rw-r--r-- | node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRepositoryMaintenance.java | 6 | ||||
-rw-r--r-- | node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityReportMaintainerTest.java (renamed from node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeAlerterTest.java) | 34 | ||||
-rw-r--r-- | node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityReportMaintainerTester.java (renamed from node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeAlerterTester.java) | 8 | ||||
-rw-r--r-- | node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/maintenance.json | 6 |
5 files changed, 33 insertions, 34 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeAlerter.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityReportMaintainer.java index 0a2eb6eb99e..44d43081ef2 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeAlerter.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityReportMaintainer.java @@ -20,8 +20,7 @@ import java.util.*; import java.util.function.Function; /** - * Performs analysis on the node repository to produce metrics that can be used for alerts if the repository is in an - * undesirable state. + * Performs analysis on the node repository to produce metrics that pertain to the capacity of the node repository. * These metrics include: * Spare host capacity, or how many hosts the repository can stand to lose without ending up in a situation where it's * unable to find a new home for orphaned tenants. @@ -29,15 +28,15 @@ import java.util.function.Function; * * @author mgimle */ -public class NodeAlerter extends Maintainer { +public class CapacityReportMaintainer extends Maintainer { private final Metric metric; private final NodeRepository nodeRepository; - private static final Logger log = Logger.getLogger(NodeAlerter.class.getName()); + private static final Logger log = Logger.getLogger(CapacityReportMaintainer.class.getName()); - NodeAlerter(NodeRepository nodeRepository, - Metric metric, - Duration interval) { + CapacityReportMaintainer(NodeRepository nodeRepository, + Metric metric, + Duration interval) { super(nodeRepository, interval); this.nodeRepository = nodeRepository; this.metric = Objects.requireNonNull(metric); diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRepositoryMaintenance.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRepositoryMaintenance.java index c66bd73dd3f..f661977d933 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRepositoryMaintenance.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRepositoryMaintenance.java @@ -46,7 +46,7 @@ public class NodeRepositoryMaintenance extends AbstractComponent { private final Optional<LoadBalancerExpirer> loadBalancerExpirer; private final Optional<HostProvisionMaintainer> hostProvisionMaintainer; private final Optional<HostDeprovisionMaintainer> hostDeprovisionMaintainer; - private final NodeAlerter nodeAlerter; + private final CapacityReportMaintainer capacityReportMaintainer; @Inject public NodeRepositoryMaintenance(NodeRepository nodeRepository, Deployer deployer, InfraDeployer infraDeployer, @@ -82,7 +82,7 @@ public class NodeRepositoryMaintenance extends AbstractComponent { new HostProvisionMaintainer(nodeRepository, durationFromEnv("host_provisioner_interval").orElse(defaults.hostProvisionerInterval), hostProvisioner, flagSource)); hostDeprovisionMaintainer = provisionServiceProvider.getHostProvisioner().map(hostProvisioner -> new HostDeprovisionMaintainer(nodeRepository, durationFromEnv("host_deprovisioner_interval").orElse(defaults.hostDeprovisionerInterval), hostProvisioner, flagSource)); - nodeAlerter = new NodeAlerter(nodeRepository, metric, durationFromEnv("alert_interval").orElse(defaults.nodeAlerterInterval)); + capacityReportMaintainer = new CapacityReportMaintainer(nodeRepository, metric, durationFromEnv("alert_interval").orElse(defaults.nodeAlerterInterval)); // The DuperModel is filled with infrastructure applications by the infrastructure provisioner, so explicitly run that now infrastructureProvisioner.maintain(); @@ -99,7 +99,7 @@ public class NodeRepositoryMaintenance extends AbstractComponent { failedExpirer.deconstruct(); dirtyExpirer.deconstruct(); nodeRebooter.deconstruct(); - nodeAlerter.deconstruct(); + capacityReportMaintainer.deconstruct(); provisionedExpirer.deconstruct(); metricsReporter.deconstruct(); infrastructureProvisioner.deconstruct(); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeAlerterTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityReportMaintainerTest.java index 2ed9de1df37..a486f8619c5 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeAlerterTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityReportMaintainerTest.java @@ -14,14 +14,14 @@ import static org.junit.Assert.*; /** * @author mgimle */ -public class NodeAlerterTest { - private NodeAlerterTester tester; - private NodeAlerter alerter; +public class CapacityReportMaintainerTest { + private CapacityReportMaintainerTester tester; + private CapacityReportMaintainer capacityReporter; @Before public void setup() { - tester = new NodeAlerterTester(); - alerter = tester.makeNodeAlerter(); + tester = new CapacityReportMaintainerTester(); + capacityReporter = tester.makeCapacityReportMaintainer(); } @Test @@ -30,7 +30,7 @@ public class NodeAlerterTest { tester.cleanRepository(); tester.restoreNodeRepositoryFromJsonFile(Paths.get(path)); - var failurePath = alerter.worstCaseHostLossLeadingToFailure(); + var failurePath = capacityReporter.worstCaseHostLossLeadingToFailure(); if (failurePath.isPresent()) { assertTrue(tester.nodeRepository.getNodes(NodeType.host).containsAll(failurePath.get().hostsCausingFailure)); } else fail(); @@ -41,7 +41,7 @@ public class NodeAlerterTest { tester.createNodes(7, 4, 10, new NodeResources(-1, 10, 100), 10, 0, new NodeResources(1, 10, 100), 10); - int overcommittedHosts = alerter.countOvercommittedHosts(); + int overcommittedHosts = capacityReporter.countOvercommittedHosts(); assertEquals(tester.nodeRepository.getNodes(NodeType.host).size(), overcommittedHosts); } @@ -50,14 +50,14 @@ public class NodeAlerterTest { tester.createNodes(1, 1, 0, new NodeResources(1, 10, 100), 10, 0, new NodeResources(1, 10, 100), 10); - var failurePath = alerter.worstCaseHostLossLeadingToFailure(); + var failurePath = capacityReporter.worstCaseHostLossLeadingToFailure(); assertFalse("Computing worst case host loss with no hosts should return an empty optional.", failurePath.isPresent()); // Odd edge case that should never be able to occur in prod tester.createNodes(1, 10, 10, new NodeResources(10, 1000, 10000), 100, 1, new NodeResources(10, 1000, 10000), 100); - failurePath = alerter.worstCaseHostLossLeadingToFailure(); + failurePath = capacityReporter.worstCaseHostLossLeadingToFailure(); assertTrue(failurePath.isPresent()); assertTrue("Computing worst case host loss if all hosts have to be removed should result in an non-empty failureReason with empty nodes.", failurePath.get().failureReason.tenant.isEmpty() && failurePath.get().failureReason.host.isEmpty()); @@ -66,7 +66,7 @@ public class NodeAlerterTest { tester.createNodes(3, 30, 10, new NodeResources(0, 0, 10000), 1000, 0, new NodeResources(0, 0, 0), 0); - failurePath = alerter.worstCaseHostLossLeadingToFailure(); + failurePath = capacityReporter.worstCaseHostLossLeadingToFailure(); assertTrue(failurePath.isPresent()); if (failurePath.get().failureReason.tenant.isPresent()) { var failureReasons = failurePath.get().failureReason.failureReasons; @@ -81,7 +81,7 @@ public class NodeAlerterTest { tester.createNodes(1, 10, 10, new NodeResources(10, 1000, 10000), 1, 10, new NodeResources(10, 1000, 10000), 1); - var failurePath = alerter.worstCaseHostLossLeadingToFailure(); + var failurePath = capacityReporter.worstCaseHostLossLeadingToFailure(); assertTrue(failurePath.isPresent()); if (failurePath.get().failureReason.tenant.isPresent()) { var failureReasons = failurePath.get().failureReason.failureReasons; @@ -96,7 +96,7 @@ public class NodeAlerterTest { tester.createNodes(1, 10, 10, new NodeResources(1, 100, 1000), 100, 10, new NodeResources(0, 100, 1000), 100); - var failurePath = alerter.worstCaseHostLossLeadingToFailure(); + var failurePath = capacityReporter.worstCaseHostLossLeadingToFailure(); assertTrue(failurePath.isPresent()); if (failurePath.get().failureReason.tenant.isPresent()) { var failureReasons = failurePath.get().failureReason.failureReasons; @@ -107,7 +107,7 @@ public class NodeAlerterTest { tester.createNodes(1, 10, 10, new NodeResources(10, 1, 1000), 100, 10, new NodeResources(10, 0, 1000), 100); - failurePath = alerter.worstCaseHostLossLeadingToFailure(); + failurePath = capacityReporter.worstCaseHostLossLeadingToFailure(); assertTrue(failurePath.isPresent()); if (failurePath.get().failureReason.tenant.isPresent()) { var failureReasons = failurePath.get().failureReason.failureReasons; @@ -118,7 +118,7 @@ public class NodeAlerterTest { tester.createNodes(1, 10, 10, new NodeResources(10, 100, 10), 100, 10, new NodeResources(10, 100, 0), 100); - failurePath = alerter.worstCaseHostLossLeadingToFailure(); + failurePath = capacityReporter.worstCaseHostLossLeadingToFailure(); assertTrue(failurePath.isPresent()); if (failurePath.get().failureReason.tenant.isPresent()) { var failureReasons = failurePath.get().failureReason.failureReasons; @@ -130,7 +130,7 @@ public class NodeAlerterTest { tester.createNodes(1, 10, List.of(new NodeResources(1, 10, 100)), 10, new NodeResources(0, 0, 0), 100, 10, new NodeResources(10, 1000, 10000, NodeResources.DiskSpeed.slow), 100); - failurePath = alerter.worstCaseHostLossLeadingToFailure(); + failurePath = capacityReporter.worstCaseHostLossLeadingToFailure(); assertTrue(failurePath.isPresent()); if (failurePath.get().failureReason.tenant.isPresent()) { var failureReasons = failurePath.get().failureReason.failureReasons; @@ -146,7 +146,7 @@ public class NodeAlerterTest { tester.createNodes(1, 1, 10, new NodeResources(1, 100, 1000), 100, 10, new NodeResources(10, 1000, 10000), 100); - var failurePath = alerter.worstCaseHostLossLeadingToFailure(); + var failurePath = capacityReporter.worstCaseHostLossLeadingToFailure(); assertTrue(failurePath.isPresent()); if (failurePath.get().failureReason.tenant.isPresent()) { var failureReasons = failurePath.get().failureReason.failureReasons; @@ -157,7 +157,7 @@ public class NodeAlerterTest { tester.createNodes(1, 2, 10, new NodeResources(10, 100, 1000), 1, 0, new NodeResources(0, 0, 0), 0); - failurePath = alerter.worstCaseHostLossLeadingToFailure(); + failurePath = capacityReporter.worstCaseHostLossLeadingToFailure(); assertTrue(failurePath.isPresent()); if (failurePath.get().failureReason.tenant.isPresent()) { var failureReasons = failurePath.get().failureReason.failureReasons; diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeAlerterTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityReportMaintainerTester.java index fd8e0561fb8..ccea4691f10 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeAlerterTester.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityReportMaintainerTester.java @@ -29,22 +29,22 @@ import java.util.stream.IntStream; /** * @author mgimle */ -public class NodeAlerterTester { +public class CapacityReportMaintainerTester { public static final Zone zone = new Zone(Environment.prod, RegionName.from("us-east")); // Components with state public final ManualClock clock = new ManualClock(); public final NodeRepository nodeRepository; - NodeAlerterTester() { + CapacityReportMaintainerTester() { Curator curator = new MockCurator(); NodeFlavors f = new NodeFlavors(new FlavorConfigBuilder().build()); nodeRepository = new NodeRepository(f, curator, clock, zone, new MockNameResolver().mockAnyLookup(), DockerImage.fromString("docker-registry.domain.tld:8080/dist/vespa"), true); } - NodeAlerter makeNodeAlerter() { - return new NodeAlerter(nodeRepository, new MetricsReporterTest.TestMetric(), Duration.ofDays(1)); + CapacityReportMaintainer makeCapacityReportMaintainer() { + return new CapacityReportMaintainer(nodeRepository, new MetricsReporterTest.TestMetric(), Duration.ofDays(1)); } List<NodeModel> createDistinctChildren(int amount, List<NodeResources> childResources) { diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/maintenance.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/maintenance.json index ccb534ea3fa..28881717e7c 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/maintenance.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/v2/responses/maintenance.json @@ -1,6 +1,9 @@ { "jobs": [ { + "name": "CapacityReportMaintainer" + }, + { "name": "DirtyExpirer" }, { @@ -19,9 +22,6 @@ "name": "MetricsReporter" }, { - "name": "NodeAlerter" - }, - { "name": "NodeFailer" }, { |