diff options
author | gjoranv <gv@verizonmedia.com> | 2019-03-22 17:55:22 +0100 |
---|---|---|
committer | gjoranv <gv@verizonmedia.com> | 2019-03-22 17:59:32 +0100 |
commit | 176d1a9c8b1b3f96e38931082b668136b8e7a51f (patch) | |
tree | f192fb2d44384b832befbc73304522aa395645d8 | |
parent | ce3b4029ab80d2c845491ce44154dde29cc5798e (diff) |
Add feature flag for ENABLE_METRICS_PROXY_CONTAINER
6 files changed, 29 insertions, 3 deletions
diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java index edb7d878a38..47160bdd4a2 100644 --- a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java +++ b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java @@ -56,6 +56,7 @@ public interface ModelContext { boolean useFdispatchByDefault(); boolean useAdaptiveDispatch(); boolean useSeparateServiceTypeForLogserverContainer(); + boolean enableMetricsProxyContainer(); } } diff --git a/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java b/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java index c33eb9c6704..89433cdf7c0 100644 --- a/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java +++ b/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java @@ -37,6 +37,8 @@ public class TestProperties implements ModelContext.Properties { private boolean useFdispatchByDefault = true; private boolean useAdaptiveDispatch = false; private boolean useSeparateServiceTypeForLogserverContainer = false; + private boolean enableMetricsProxyContainer = false; + @Override public boolean multitenant() { return multitenant; } @Override public ApplicationId applicationId() { return applicationId; } @@ -53,6 +55,7 @@ public class TestProperties implements ModelContext.Properties { @Override public boolean useDedicatedNodeForLogserver() { return useDedicatedNodeForLogserver; } @Override public boolean useFdispatchByDefault() { return useFdispatchByDefault; } @Override public boolean useSeparateServiceTypeForLogserverContainer() { return useSeparateServiceTypeForLogserverContainer; } + @Override public boolean enableMetricsProxyContainer() { return enableMetricsProxyContainer; } public TestProperties setApplicationId(ApplicationId applicationId) { this.applicationId = applicationId; @@ -89,6 +92,11 @@ public class TestProperties implements ModelContext.Properties { return this; } + public TestProperties setEnableMetricsProxyContainer(boolean enableMetricsProxyContainer) { + this.enableMetricsProxyContainer = enableMetricsProxyContainer; + return this; + } + public static class Spec implements ConfigServerSpec { private final String hostName; diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java index a36d0943b92..8a98730c9c6 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java @@ -196,8 +196,7 @@ public class Admin extends AbstractConfigProducer implements Serializable { if (slobroks.isEmpty()) // TODO: Move to caller slobroks.addAll(createDefaultSlobrokSetup(deployState.getDeployLogger())); - // TODO: enable for all zones - if (deployState.zone().system() == SystemName.cd) + if (deployState.getProperties().enableMetricsProxyContainer()) addMetricsProxyCluster(hosts, deployState); for (HostResource host : hosts) { diff --git a/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java b/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java index 0922ede86b6..00bc82bbe02 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTester.java @@ -48,6 +48,7 @@ public class VespaModelTester { private ApplicationId applicationId = ApplicationId.defaultId(); private boolean useDedicatedNodeForLogserver = false; private boolean useSeparateServiceTypeForLogserverContainer = false; + private boolean enableMetricsProxyContainer = false; public VespaModelTester() { this(new NullConfigModelRegistry()); @@ -102,6 +103,10 @@ public class VespaModelTester { this.useSeparateServiceTypeForLogserverContainer = useSeparateServiceTypeForLogserverContainer; } + public void enableMetricsProxyContainer(boolean enableMetricsProxyContainer) { + this.enableMetricsProxyContainer = enableMetricsProxyContainer; + } + /** Creates a model which uses 0 as start index and fails on out of capacity */ public VespaModel createModel(String services, String ... retiredHostNames) { return createModel(Zone.defaultZone(), services, true, retiredHostNames); @@ -143,7 +148,8 @@ public class VespaModelTester { .setHostedVespa(hosted) .setApplicationId(applicationId) .setUseDedicatedNodeForLogserver(useDedicatedNodeForLogserver) - .setUseSeparateServiceTypeForLogserverContainer(useSeparateServiceTypeForLogserverContainer); + .setUseSeparateServiceTypeForLogserverContainer(useSeparateServiceTypeForLogserverContainer) + .setEnableMetricsProxyContainer(enableMetricsProxyContainer); DeployState deployState = new DeployState.Builder() .applicationPackage(appPkg) diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java index c04a00b2470..780135c893e 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java @@ -132,6 +132,7 @@ public class ModelContextImpl implements ModelContext { private final boolean useFdispatchByDefault; private final boolean useAdaptiveDispatch; private final boolean useSeparateServiceTypeForLogserverContainer; + private final boolean enableMetricsProxyContainer; public Properties(ApplicationId applicationId, boolean multitenantFromConfig, @@ -164,6 +165,8 @@ public class ModelContextImpl implements ModelContext { .with(FetchVector.Dimension.APPLICATION_ID, applicationId.serializedForm()).value(); this.useSeparateServiceTypeForLogserverContainer = Flags.USE_SEPARATE_SERVICE_TYPE_FOR_LOGSERVER_CONTAINER.bindTo(flagSource) .with(FetchVector.Dimension.APPLICATION_ID, applicationId.serializedForm()).value(); + this.enableMetricsProxyContainer = Flags.ENABLE_METRICS_PROXY_CONTAINER.bindTo(flagSource) + .with(FetchVector.Dimension.APPLICATION_ID, applicationId.serializedForm()).value(); } @Override @@ -214,6 +217,9 @@ public class ModelContextImpl implements ModelContext { @Override public boolean useSeparateServiceTypeForLogserverContainer() { return useSeparateServiceTypeForLogserverContainer; } + + @Override + public boolean enableMetricsProxyContainer() { return enableMetricsProxyContainer; } } } 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 06ffe1b68c5..bb6b346abd4 100644 --- a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java +++ b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java @@ -118,6 +118,12 @@ public class Flags { "Takes effect at redeployment", APPLICATION_ID); + public static final UnboundBooleanFlag ENABLE_METRICS_PROXY_CONTAINER = defineFeatureFlag( + "enable-metrics-proxy-container", false, + "Start a container for metrics-proxy on every vespa node", + "Takes effect at redeployment", + 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) { |