diff options
author | bjormel <bjormel@yahooinc.com> | 2023-11-23 10:25:07 +0000 |
---|---|---|
committer | bjormel <bjormel@yahooinc.com> | 2023-11-23 10:25:07 +0000 |
commit | a2ee4e69cc539461b09071bb49e70c68fc910595 (patch) | |
tree | 199444627d1441877cd5577ca907a2bc0d21bee2 /node-repository | |
parent | afde670ae04cd7e4645a180816a61c697d29698c (diff) |
exclusive nodes not counted as empty with child in any state
Diffstat (limited to 'node-repository')
2 files changed, 7 insertions, 1 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporter.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporter.java index 99d627e58b1..e5941bedfb8 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporter.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporter.java @@ -403,7 +403,7 @@ public class MetricsReporter extends NodeRepositoryMaintainer { node.exclusiveToApplicationId().isPresent()) .matching(host -> host.history().hasEventBefore(History.Event.Type.activated, now.minus(minActivePeriod))) - .matching(host -> nodes.childrenOf(host).state(State.active).isEmpty()) + .matching(host -> nodes.childrenOf(host).isEmpty()) .size(); metric.set(ConfigServerMetrics.NODES_EMPTY_EXCLUSIVE.baseName(), emptyHosts, null); } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporterTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporterTest.java index 691e67d945c..d4771594569 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporterTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporterTest.java @@ -368,6 +368,12 @@ public class MetricsReporterTest { // Hosts are now in use metricsReporter.maintain(); assertEquals(0, metric.values.get("nodes.emptyExclusive").intValue()); + + // Fail one node, parent should not be considered empty as the FailedExpirer will remove the node + tester.fail(tester.getNodes(app, Node.State.active).stream().findFirst().get().hostname()); + metricsReporter.maintain(); + assertEquals(0, metric.values.get("nodes.emptyExclusive").intValue()); + } private Number getMetric(String name, TestMetric metric, Map<String, String> dimensions) { |