aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-10-13 18:04:30 +0200
committerGitHub <noreply@github.com>2021-10-13 18:04:30 +0200
commitd5ad07f2f0aa8bcef10083e81356037bc259ac30 (patch)
treed297561e83b468cb4cc1163451c5750eb1beaaaf
parent06b962b60746efa49adb01fe6cf662ddf086fd89 (diff)
parent2f00e0d1deec739298483175e3c1de55209e58e8 (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.java38
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;
+ }
+
+ }
+
}