diff options
author | Jon Bratseth <bratseth@verizonmedia.com> | 2020-03-03 18:34:45 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@verizonmedia.com> | 2020-03-03 18:37:31 +0100 |
commit | 2003b2e86d44c0ba2cdd49ae7aa82f9d7bb99424 (patch) | |
tree | d7b9399d199e97d65181c12d38ab385f1ebdc785 /node-repository | |
parent | 790e34c4f59226c748a831056f722145c2980248 (diff) |
Add some debug logging
Diffstat (limited to 'node-repository')
2 files changed, 15 insertions, 3 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/Autoscaler.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/Autoscaler.java index 71f7dc3701e..31f3ed5fc95 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/Autoscaler.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/Autoscaler.java @@ -14,6 +14,7 @@ import com.yahoo.vespa.hosted.provision.provisioning.NodeResourceLimits; import java.time.Duration; import java.util.List; import java.util.Optional; +import java.util.logging.Logger; import java.util.stream.Collectors; /** @@ -24,6 +25,8 @@ import java.util.stream.Collectors; */ public class Autoscaler { + private Logger log = Logger.getLogger(Autoscaler.class.getName()); + /* TODO: - Scale group size @@ -69,20 +72,28 @@ public class Autoscaler { Optional<Double> cpuLoad = averageLoad(Resource.cpu, cluster, clusterNodes); Optional<Double> memoryLoad = averageLoad(Resource.memory, cluster, clusterNodes); Optional<Double> diskLoad = averageLoad(Resource.disk, cluster, clusterNodes); - if (cpuLoad.isEmpty() || memoryLoad.isEmpty() || diskLoad.isEmpty()) return Optional.empty(); + if (cpuLoad.isEmpty() || memoryLoad.isEmpty() || diskLoad.isEmpty()) { + log.fine("Autoscaling " + applicationId + " " + cluster + ": Insufficient metrics to decide"); + return Optional.empty(); + } Optional<ClusterResourcesWithCost> bestAllocation = findBestAllocation(cpuLoad.get(), memoryLoad.get(), diskLoad.get(), currentAllocation, cluster); - if (bestAllocation.isEmpty()) return Optional.empty(); + if (bestAllocation.isEmpty()) { + log.fine("Autoscaling " + applicationId + " " + cluster + ": Could not find a better allocation"); + return Optional.empty(); + } if (closeToIdeal(Resource.cpu, cpuLoad.get()) && closeToIdeal(Resource.memory, memoryLoad.get()) && closeToIdeal(Resource.disk, diskLoad.get()) && - similarCost(bestAllocation.get().cost(), currentAllocation.nodes() * costOf(currentAllocation.nodeResources()))) + similarCost(bestAllocation.get().cost(), currentAllocation.nodes() * costOf(currentAllocation.nodeResources()))) { + log.fine("Autoscaling " + applicationId + " " + cluster + ": Resources are almost ideal and price difference is small"); return Optional.empty(); // Avoid small, unnecessary changes + } return bestAllocation.map(a -> a.clusterResources()); } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeMetricsDbMaintainer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeMetricsDbMaintainer.java index 178e8385008..6ae086146c4 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeMetricsDbMaintainer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeMetricsDbMaintainer.java @@ -39,6 +39,7 @@ public class NodeMetricsDbMaintainer extends Maintainer { nodeMetricsDb.add(nodeMetrics.fetchMetrics(application)); } catch (Exception e) { + // TODO: Don't warn if this only happens occasionally if (warnings++ < maxWarningsPerInvocation) log.log(Level.WARNING, "Could not update metrics for " + application, e); } |