diff options
author | Ola Aunronning <olaa@yahooinc.com> | 2023-02-28 13:51:50 +0100 |
---|---|---|
committer | Ola Aunronning <olaa@yahooinc.com> | 2023-02-28 13:52:10 +0100 |
commit | da683245d8535073490653d0058db5e473253e97 (patch) | |
tree | 6bbab3c9260ab76dfc970322899b646ad46e18d2 /node-repository | |
parent | 6cc0cd9e76866fa521306385afab9ceffd56af25 (diff) |
Count both nodes and hosts by state
Diffstat (limited to 'node-repository')
2 files changed, 24 insertions, 7 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 67c1c7359f7..5af74214648 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 @@ -267,13 +267,20 @@ public class MetricsReporter extends NodeRepositoryMaintainer { } private void updateNodeCountMetrics(NodeList nodes) { - Map<State, List<Node>> nodesByState = nodes.nodeType(NodeType.tenant).asList().stream() - .collect(Collectors.groupingBy(Node::state)); + var nodesByState = nodes.nodeType(NodeType.tenant) + .asList().stream() + .collect(Collectors.groupingBy(Node::state)); + + var hostsByState = nodes.nodeType(NodeType.host) + .asList().stream() + .collect(Collectors.groupingBy(Node::state)); // Count per state for (State state : State.values()) { - List<Node> nodesInState = nodesByState.getOrDefault(state, List.of()); - metric.set("hostedVespa." + state.name() + "Hosts", nodesInState.size(), null); + var nodesInState = nodesByState.getOrDefault(state, List.of()); + var hostsInState = hostsByState.getOrDefault(state, List.of()); + metric.set("hostedVespa." + state.name() + "Nodes", nodesInState.size(), null); + metric.set("hostedVespa." + state.name() + "Hosts", hostsInState.size(), 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 44050fa747c..d7ffda542ff 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 @@ -87,7 +87,7 @@ public class MetricsReporterTest { Map<String, Number> expectedMetrics = new TreeMap<>(); expectedMetrics.put("zone.working", 1); - expectedMetrics.put("hostedVespa.provisionedHosts", 1); + expectedMetrics.put("hostedVespa.provisionedHosts", 0); expectedMetrics.put("hostedVespa.parkedHosts", 0); expectedMetrics.put("hostedVespa.readyHosts", 0); expectedMetrics.put("hostedVespa.reservedHosts", 0); @@ -97,6 +97,16 @@ public class MetricsReporterTest { expectedMetrics.put("hostedVespa.failedHosts", 0); expectedMetrics.put("hostedVespa.deprovisionedHosts", 0); expectedMetrics.put("hostedVespa.breakfixedHosts", 0); + expectedMetrics.put("hostedVespa.provisionedNodes", 1); + expectedMetrics.put("hostedVespa.parkedNodes", 0); + expectedMetrics.put("hostedVespa.readyNodes", 0); + expectedMetrics.put("hostedVespa.reservedNodes", 0); + expectedMetrics.put("hostedVespa.activeNodes", 0); + expectedMetrics.put("hostedVespa.inactiveNodes", 0); + expectedMetrics.put("hostedVespa.dirtyNodes", 0); + expectedMetrics.put("hostedVespa.failedNodes", 0); + expectedMetrics.put("hostedVespa.deprovisionedNodes", 0); + expectedMetrics.put("hostedVespa.breakfixedNodes", 0); expectedMetrics.put("hostedVespa.pendingRedeployments", 42); expectedMetrics.put("hostedVespa.docker.totalCapacityDisk", 0.0); expectedMetrics.put("hostedVespa.docker.totalCapacityMem", 0.0); @@ -207,8 +217,8 @@ public class MetricsReporterTest { MetricsReporter metricsReporter = metricsReporter(metric, tester); metricsReporter.maintain(); - assertEquals(0, metric.values.get("hostedVespa.readyHosts")); // Only tenants counts - assertEquals(2, metric.values.get("hostedVespa.reservedHosts")); + assertEquals(0, metric.values.get("hostedVespa.readyNodes")); // Only tenants counts + assertEquals(2, metric.values.get("hostedVespa.reservedNodes")); assertEquals(120.0, metric.values.get("hostedVespa.docker.totalCapacityDisk")); assertEquals(100.0, metric.values.get("hostedVespa.docker.totalCapacityMem")); |