summaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@verizonmedia.com>2020-03-03 18:34:45 +0100
committerJon Bratseth <bratseth@verizonmedia.com>2020-03-03 18:37:31 +0100
commit2003b2e86d44c0ba2cdd49ae7aa82f9d7bb99424 (patch)
treed7b9399d199e97d65181c12d38ab385f1ebdc785 /node-repository
parent790e34c4f59226c748a831056f722145c2980248 (diff)
Add some debug logging
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/Autoscaler.java17
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeMetricsDbMaintainer.java1
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);
}