diff options
author | Jon Bratseth <bratseth@verizonmedia.com> | 2020-03-16 17:48:23 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@verizonmedia.com> | 2020-03-16 17:48:23 +0100 |
commit | 2ee38ab4e8be0ea9a7c8405111d93212679501a4 (patch) | |
tree | ec3811966a194ef7d0254578d2c07f44c2c524bf /node-repository | |
parent | b65685b73b5b26df3b915474efeee497ca40a24c (diff) |
More elaborate toString
Diffstat (limited to 'node-repository')
-rw-r--r-- | node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/AutoscalingMaintainer.java | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/AutoscalingMaintainer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/AutoscalingMaintainer.java index d0e163cdd8a..7bc46017848 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/AutoscalingMaintainer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/AutoscalingMaintainer.java @@ -4,6 +4,7 @@ package com.yahoo.vespa.hosted.provision.maintenance; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.ClusterSpec; import com.yahoo.config.provision.Deployer; +import com.yahoo.config.provision.NodeResources; import com.yahoo.vespa.hosted.provision.Node; import com.yahoo.vespa.hosted.provision.NodeRepository; import com.yahoo.vespa.hosted.provision.autoscale.AllocatableClusterResources; @@ -51,16 +52,24 @@ public class AutoscalingMaintainer extends Maintainer { try (MaintenanceDeployment deployment = new MaintenanceDeployment(application, deployer, nodeRepository())) { if ( ! deployment.isValid()) return; // Another config server will consider this application nodesByCluster(applicationNodes).forEach((clusterId, clusterNodes) -> { - var currentResources = new AllocatableClusterResources(clusterNodes, hostResourcesCalculator); Optional<AllocatableClusterResources> target = autoscaler.autoscale(clusterNodes); + + int currentGroups = (int)clusterNodes.stream().map(node -> node.allocation().get().membership().cluster().group()).distinct().count(); ClusterSpec.Type clusterType = clusterNodes.get(0).allocation().get().membership().cluster().type(); target.ifPresent(t -> log.info("Autoscale: " + application + clusterType + " " + clusterId + - " from " + clusterNodes.size() + " * " + clusterNodes.get(0).flavor().resources() + - " to " + t.nodes() + " * " + t.advertisedResources())); + " from " + toString(clusterNodes.size(), currentGroups, clusterNodes.get(0).flavor().resources()) + + " to " + toString(t.nodes(), t.groups(), t.advertisedResources()))); }); } } + private String toString(int nodes, int groups, NodeResources resources) { + return nodes + + (groups > 1 ? " in " + groups + " groups " : " ") + + " * " + resources + + " (total: " + "[vcpu: " + nodes * resources.vcpu() + ", memory: " + nodes * resources.memoryGb() + " Gb, disk " + nodes * resources.diskGb() + " Gb])"; + } + private Map<ClusterSpec.Id, List<Node>> nodesByCluster(List<Node> applicationNodes) { return applicationNodes.stream().collect(Collectors.groupingBy(n -> n.allocation().get().membership().cluster().id())); } |