diff options
3 files changed, 11 insertions, 0 deletions
diff --git a/configdefinitions/src/vespa/lb-services.def b/configdefinitions/src/vespa/lb-services.def index 5184abfde72..b1bd5fbac33 100644 --- a/configdefinitions/src/vespa/lb-services.def +++ b/configdefinitions/src/vespa/lb-services.def @@ -9,6 +9,7 @@ namespace=cloud.config tenants{}.applications{}.activeRotation bool default=true # Send health check requests on port 4081 instead of 4080 tenants{}.applications{}.healthCheckOn4081 bool default=false +tenants{}.applications{}.nginxUpstreamKeepaliveMultiplier int default=2 tenants{}.applications{}.hosts{}.hostname string default="(unknownhostname)" tenants{}.applications{}.hosts{}.services{}.type string default="(noservicetype)" diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/model/LbServicesProducer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/model/LbServicesProducer.java index f16be77715f..4cfc34797c9 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/model/LbServicesProducer.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/model/LbServicesProducer.java @@ -13,6 +13,7 @@ import com.yahoo.vespa.flags.BooleanFlag; import com.yahoo.vespa.flags.FetchVector; import com.yahoo.vespa.flags.FlagSource; import com.yahoo.vespa.flags.Flags; +import com.yahoo.vespa.flags.IntFlag; import java.util.Collections; import java.util.Comparator; @@ -36,11 +37,13 @@ public class LbServicesProducer implements LbServicesConfig.Producer { private final Map<TenantName, Set<ApplicationInfo>> models; private final Zone zone; private final BooleanFlag healthCheckOn4081; + private final IntFlag nginxUpstreamKeepaliveMultiplier; public LbServicesProducer(Map<TenantName, Set<ApplicationInfo>> models, Zone zone, FlagSource flagSource) { this.models = models; this.zone = zone; this.healthCheckOn4081 = Flags.HEALTH_CHECK_ON_4081.bindTo(flagSource); + this.nginxUpstreamKeepaliveMultiplier = Flags.NGINX_UPSTREAM_KEEPALIVE_MULTIPLIER.bindTo(flagSource); } @Override @@ -68,6 +71,7 @@ public class LbServicesProducer implements LbServicesConfig.Producer { LbServicesConfig.Tenants.Applications.Builder ab = new LbServicesConfig.Tenants.Applications.Builder(); ab.activeRotation(getActiveRotation(app)); ab.healthCheckOn4081(healthCheckOn4081.with(FetchVector.Dimension.APPLICATION_ID, app.getApplicationId().serializedForm()).value()); + ab.nginxUpstreamKeepaliveMultiplier(nginxUpstreamKeepaliveMultiplier.with(FetchVector.Dimension.APPLICATION_ID, app.getApplicationId().serializedForm()).value()); app.getModel().getHosts().stream() .sorted((a, b) -> a.getHostname().compareTo(b.getHostname())) .forEach(hostInfo -> ab.hosts(hostInfo.getHostname(), getHostsConfig(hostInfo))); diff --git a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java index 04514f7ba81..ae782bf32ff 100644 --- a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java +++ b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java @@ -171,6 +171,12 @@ public class Flags { "Takes effect on routing container redeployment", APPLICATION_ID); + public static final UnboundIntFlag NGINX_UPSTREAM_KEEPALIVE_MULTIPLIER = defineIntFlag( + "nginx-upstream-keepalive-multiplier", 2, + "Multiplied with the number of servers to calculate the keepalive value for a upstream definition.", + "Takes effect within a minute", + APPLICATION_ID); + /** WARNING: public for testing: All flags should be defined in {@link Flags}. */ public static UnboundBooleanFlag defineFeatureFlag(String flagId, boolean defaultValue, String description, String modificationEffect, FetchVector.Dimension... dimensions) { |