summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainer.java32
1 files changed, 18 insertions, 14 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainer.java
index 059986072f3..26edd210075 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainer.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainer.java
@@ -201,10 +201,11 @@ public class ResourceMeterMaintainer extends ControllerMaintainer {
// Grouping by ApplicationId -> Architecture -> ResourceSnapshot
.collect(Collectors.groupingBy(node ->
node.owner().get(),
- groupSnapshotsByArchitecture(zoneId)))
+ groupSnapshotsByArchitectureAndMajorVersion(zoneId)))
.values()
.stream()
- .flatMap(list -> list.values().stream())
+ .flatMap(byArch -> byArch.values().stream())
+ .flatMap(byMajor -> byMajor.values().stream())
.toList();
}
@@ -284,19 +285,22 @@ public class ResourceMeterMaintainer extends ControllerMaintainer {
));
}
- private Collector<Node, ?, Map<NodeResources.Architecture, ResourceSnapshot>> groupSnapshotsByArchitecture(ZoneId zoneId) {
- return Collectors.collectingAndThen(
- Collectors.groupingBy(node -> node.resources().architecture()),
- convertNodeListToResourceSnapshot(zoneId)
- );
+ private Collector<Node, ?, Map<NodeResources.Architecture, Map<Integer, ResourceSnapshot>>> groupSnapshotsByArchitectureAndMajorVersion(ZoneId zoneId) {
+ return Collectors.groupingBy(
+ (Node node) -> node.resources().architecture(),
+ Collectors.collectingAndThen(
+ Collectors.groupingBy(
+ (Node node) -> node.currentVersion().getMajor(),
+ Collectors.toList()),
+ convertNodeListToResourceSnapshot(zoneId)));
}
- private Function<Map<NodeResources.Architecture, List<Node>>, Map<NodeResources.Architecture, ResourceSnapshot>> convertNodeListToResourceSnapshot(ZoneId zoneId) {
- return nodeMap -> nodeMap.entrySet()
- .stream()
- .collect(Collectors.toMap(
- Map.Entry::getKey,
- entry -> ResourceSnapshot.from(entry.getValue(), clock.instant(), zoneId))
- );
+ private Function<Map<Integer, List<Node>>, Map<Integer, ResourceSnapshot>> convertNodeListToResourceSnapshot(ZoneId zoneId) {
+ return nodesByMajor -> {
+ return nodesByMajor.entrySet().stream()
+ .collect(Collectors.toMap(
+ entry -> entry.getKey(),
+ entry -> ResourceSnapshot.from(entry.getValue(), clock.instant(), zoneId)));
+ };
}
}