From 2f00e0d1deec739298483175e3c1de55209e58e8 Mon Sep 17 00:00:00 2001 From: Harald Musum Date: Wed, 13 Oct 2021 12:41:55 +0200 Subject: Log redeployed apps only when there are changes in deployed apps --- .../vespa/config/server/ConfigServerBootstrap.java | 38 +++++++++++++++++----- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerBootstrap.java b/configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerBootstrap.java index 65ffb916294..53c53a22609 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerBootstrap.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerBootstrap.java @@ -256,7 +256,7 @@ public class ConfigServerBootstrap extends AbstractComponent implements Runnable int applicationCount = deployments.size(); Set failedDeployments = new LinkedHashSet<>(); Set finishedDeployments = new LinkedHashSet<>(); - Instant lastLogged = Instant.EPOCH; + LogState logState = new LogState(applicationCount); do { deployments.forEach((applicationId, future) -> { @@ -276,19 +276,19 @@ public class ConfigServerBootstrap extends AbstractComponent implements Runnable throw new IllegalArgumentException("Unknown deployment status " + status); } }); - if ( ! Duration.between(lastLogged, Instant.now()).minus(Duration.ofSeconds(10)).isNegative()) { - logProgress(applicationCount, failedDeployments, finishedDeployments); - lastLogged = Instant.now(); - } + logProgress(logState, failedDeployments.size(), finishedDeployments.size()); } while (failedDeployments.size() + finishedDeployments.size() < applicationCount); - logProgress(applicationCount, failedDeployments, finishedDeployments); return new ArrayList<>(failedDeployments); } - private void logProgress(int applicationCount, Set failedDeployments, Set finishedDeployments) { - log.log(Level.INFO, () -> finishedDeployments.size() + " of " + applicationCount + " apps redeployed " + - "(" + failedDeployments.size() + " failed)"); + private void logProgress(LogState logState, int failedDeployments, int finishedDeployments) { + if ( ! Duration.between(logState.lastLogged, Instant.now()).minus(Duration.ofSeconds(10)).isNegative() + && (logState.failedDeployments != failedDeployments || logState.finishedDeployments != finishedDeployments)) { + log.log(Level.INFO, () -> finishedDeployments + " of " + logState.applicationCount + " apps redeployed " + + "(" + failedDeployments + " failed)"); + logState.update(Instant.now(), failedDeployments, finishedDeployments); + } } private DeploymentStatus getDeploymentStatus(ApplicationId applicationId, Future future) { @@ -308,5 +308,25 @@ public class ConfigServerBootstrap extends AbstractComponent implements Runnable } } + private static class LogState { + + private final int applicationCount; + + private Instant lastLogged = Instant.EPOCH; + private int failedDeployments = 0; + private int finishedDeployments = 0; + + public LogState(int applicationCount) { + this.applicationCount = applicationCount; + } + + public void update(Instant lastLogged, int failedDeployments, int finishedDeployments) { + this.lastLogged = lastLogged; + this.failedDeployments = failedDeployments; + this.finishedDeployments = finishedDeployments; + } + + } + } -- cgit v1.2.3