summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configdefinitions/src/vespa/lb-services.def1
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/model/LbServicesProducer.java4
-rw-r--r--flags/src/main/java/com/yahoo/vespa/flags/Flags.java6
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) {