diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-10-13 18:04:30 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-13 18:04:30 +0200 |
commit | d5ad07f2f0aa8bcef10083e81356037bc259ac30 (patch) | |
tree | d297561e83b468cb4cc1163451c5750eb1beaaaf | |
parent | 06b962b60746efa49adb01fe6cf662ddf086fd89 (diff) | |
parent | 2f00e0d1deec739298483175e3c1de55209e58e8 (diff) |
Merge pull request #19532 from vespa-engine/hmusum/log-only-when-there-is-a-change-in-app-deployedv7.483.19
Log redeployed apps only when there are changes in deployed apps
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerBootstrap.java | 38 |
1 files 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<ApplicationId> failedDeployments = new LinkedHashSet<>(); Set<ApplicationId> 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<ApplicationId> failedDeployments, Set<ApplicationId> 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; + } + + } + } |