summaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@yahooinc.com>2021-09-13 16:41:21 +0200
committerHåkon Hallingstad <hakon@yahooinc.com>2021-09-13 16:41:21 +0200
commita3fcef7201b804437becb7773821bb1457a1c8ce (patch)
tree42db280ea8d99bcb80378e907db8aa3ba6262cc6 /node-repository
parentdc4fd3d892d799cee3016f04f134bd1baa5c9ce6 (diff)
Add ServiceStatus.UNKNOWN
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporter.java2
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeHealthTracker.java3
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java28
3 files changed, 23 insertions, 10 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 d8bbf305b57..c0b635cf764 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
@@ -248,6 +248,8 @@ public class MetricsReporter extends NodeRepositoryMaintainer {
metric.set("someServicesDown", (numberOfServicesDown > 0 ? 1 : 0), context);
+ metric.set("numberOfServicesUnknown", servicesCount.getOrDefault(ServiceStatus.UNKNOWN, 0L), context);
+
boolean down = NodeHealthTracker.allDown(services);
metric.set("nodeFailerBadNode", (down ? 1 : 0), context);
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeHealthTracker.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeHealthTracker.java
index 37969a30b81..693d8b6be9c 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeHealthTracker.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeHealthTracker.java
@@ -116,7 +116,8 @@ public class NodeHealthTracker extends NodeRepositoryMaintainer {
.collect(Collectors.groupingBy(ServiceInstance::serviceStatus, counting()));
return countsByStatus.getOrDefault(ServiceStatus.UP, 0L) <= 0L &&
- countsByStatus.getOrDefault(ServiceStatus.DOWN, 0L) > 0L;
+ countsByStatus.getOrDefault(ServiceStatus.DOWN, 0L) > 0L &&
+ countsByStatus.getOrDefault(ServiceStatus.UNKNOWN, 0L) == 0L;
}
/** Get node by given hostname and application. The applicationLock must be held when calling this */
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java
index 2bd0c91f4a1..ad887212a05 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailerTest.java
@@ -672,14 +672,23 @@ public class NodeFailerTest {
@Test
public void testUpness() {
- assertFalse(badNode(0, 0, 0));
- assertFalse(badNode(0, 0, 2));
- assertFalse(badNode(0, 3, 0));
- assertFalse(badNode(0, 3, 2));
- assertTrue(badNode(1, 0, 0));
- assertTrue(badNode(1, 0, 2));
- assertFalse(badNode(1, 3, 0));
- assertFalse(badNode(1, 3, 2));
+ assertFalse(badNode(0, 0, 0, 0));
+ assertFalse(badNode(0, 0, 0, 2));
+ assertFalse(badNode(0, 3, 0, 0));
+ assertFalse(badNode(0, 3, 0, 2));
+ assertTrue(badNode(1, 0, 0, 0));
+ assertTrue(badNode(1, 0, 0, 2));
+ assertFalse(badNode(1, 3, 0, 0));
+ assertFalse(badNode(1, 3, 0, 2));
+
+ assertFalse(badNode(0, 0, 1, 0));
+ assertFalse(badNode(0, 0, 1, 2));
+ assertFalse(badNode(0, 3, 1, 0));
+ assertFalse(badNode(0, 3, 1, 2));
+ assertFalse(badNode(1, 0, 1, 0));
+ assertFalse(badNode(1, 0, 1, 2));
+ assertFalse(badNode(1, 3, 1, 0));
+ assertFalse(badNode(1, 3, 1, 2));
}
private void addServiceInstances(List<ServiceInstance> list, ServiceStatus status, int num) {
@@ -690,10 +699,11 @@ public class NodeFailerTest {
}
}
- private boolean badNode(int numDown, int numUp, int numNotChecked) {
+ private boolean badNode(int numDown, int numUp, int numUnknown, int numNotChecked) {
List<ServiceInstance> services = new ArrayList<>();
addServiceInstances(services, ServiceStatus.DOWN, numDown);
addServiceInstances(services, ServiceStatus.UP, numUp);
+ addServiceInstances(services, ServiceStatus.UNKNOWN, numUnknown);
addServiceInstances(services, ServiceStatus.NOT_CHECKED, numNotChecked);
Collections.shuffle(services);