diff options
Diffstat (limited to 'config-model/src/main/java/com')
4 files changed, 41 insertions, 8 deletions
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 3d06fdf6758..be15abc5ac8 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 @@ -10,6 +10,7 @@ import com.yahoo.config.model.api.ModelContext; import com.yahoo.config.model.api.Quota; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.AthenzDomain; +import com.yahoo.config.provision.ClusterSpec; import com.yahoo.config.provision.HostName; import com.yahoo.config.provision.Zone; @@ -56,6 +57,7 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea private boolean enableFeedBlockInDistributor = false; private double maxDeadBytesRatio = 0.2; private int clusterControllerMaxHeapSizeInMb = 512; + private int metricsProxyMaxHeapSizeInMb = 512; private int maxActivationInhibitedOutOfSyncGroups = 0; @Override public ModelContext.FeatureFlags featureFlags() { return this; } @@ -95,6 +97,7 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea @Override public boolean enableFeedBlockInDistributor() { return enableFeedBlockInDistributor; } @Override public double maxDeadBytesRatio() { return maxDeadBytesRatio; } @Override public int clusterControllerMaxHeapSizeInMb() { return clusterControllerMaxHeapSizeInMb; } + @Override public int metricsProxyMaxHeapSizeInMb(ClusterSpec.Type type) { return metricsProxyMaxHeapSizeInMb; } @Override public int maxActivationInhibitedOutOfSyncGroups() { return maxActivationInhibitedOutOfSyncGroups; } public TestProperties setFeedConcurrency(double feedConcurrency) { @@ -227,6 +230,11 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea return this; } + public TestProperties metricsProxyMaxHeapSizeInMb(int heapSize) { + metricsProxyMaxHeapSizeInMb = heapSize; + return this; + } + public TestProperties maxActivationInhibitedOutOfSyncGroups(int nGroups) { maxActivationInhibitedOutOfSyncGroups = nGroups; return this; 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 08f7ff82f4e..0f006c31959 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 @@ -75,7 +75,7 @@ public class Admin extends AbstractConfigProducer<Admin> implements Serializable private Optional<LogserverContainerCluster> logServerContainerCluster = Optional.empty(); private ZooKeepersConfigProvider zooKeepersConfigProvider; - private FileDistributionConfigProducer fileDistribution; + private final FileDistributionConfigProducer fileDistribution; private final boolean multitenant; public Admin(AbstractConfigProducer parent, @@ -220,7 +220,7 @@ public class Admin extends AbstractConfigProducer<Admin> implements Serializable for (var host : hosts) { // Send hostname to be used in configId (instead of index), as the sorting of hosts seems to be unstable // between config changes, even when the set of hosts is unchanged. - var container = new MetricsProxyContainer(metricsProxyCluster, host.getHostname(), index, deployState.isHosted()); + var container = new MetricsProxyContainer(metricsProxyCluster, host, index, deployState); addAndInitializeService(deployState.getDeployLogger(), host, container); metricsProxyCluster.addContainer(container); } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainer.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainer.java index aef7c846a19..690900865ad 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainer.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainer.java @@ -11,14 +11,19 @@ import ai.vespa.metricsproxy.rpc.RpcConnector; import ai.vespa.metricsproxy.rpc.RpcConnectorConfig; import ai.vespa.metricsproxy.service.VespaServices; import ai.vespa.metricsproxy.service.VespaServicesConfig; +import com.yahoo.config.model.api.ModelContext; import com.yahoo.config.model.api.container.ContainerServiceType; -import com.yahoo.config.model.producer.AbstractConfigProducer; +import com.yahoo.config.model.deploy.DeployState; import com.yahoo.config.provision.ClusterMembership; +import com.yahoo.config.provision.ClusterSpec; +import com.yahoo.search.config.QrStartConfig; +import com.yahoo.vespa.model.HostResource; import com.yahoo.vespa.model.PortAllocBridge; import com.yahoo.vespa.model.container.Container; import java.util.LinkedHashMap; import java.util.Map; +import java.util.Optional; import static com.yahoo.config.model.api.container.ContainerServiceType.METRICS_PROXY_CONTAINER; import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyContainerCluster.METRICS_PROXY_BUNDLE_NAME; @@ -33,15 +38,23 @@ public class MetricsProxyContainer extends Container implements NodeDimensionsConfig.Producer, NodeInfoConfig.Producer, RpcConnectorConfig.Producer, - VespaServicesConfig.Producer + VespaServicesConfig.Producer, + QrStartConfig.Producer { public static final int BASEPORT = 19092; final boolean isHostedVespa; + private final Optional<ClusterMembership> clusterMembership; + private final ModelContext.FeatureFlags featureFlags; + private final MetricsProxyContainerCluster cluster; - public MetricsProxyContainer(AbstractConfigProducer<?> parent, String hostname, int index, boolean isHostedVespa) { - super(parent, hostname, index, isHostedVespa); - this.isHostedVespa = isHostedVespa; + + public MetricsProxyContainer(MetricsProxyContainerCluster cluster, HostResource host, int index, DeployState deployState) { + super(cluster, host.getHostname(), index, deployState.isHosted()); + this.isHostedVespa = deployState.isHosted(); + this.clusterMembership = host.spec().membership(); + this.featureFlags = deployState.featureFlags(); + this.cluster = cluster; setProp("clustertype", "admin"); setProp("index", String.valueOf(index)); addNodeSpecificComponents(); @@ -131,6 +144,19 @@ public class MetricsProxyContainer extends Container implements .hostname(getHostName()); } + @Override + public void getConfig(QrStartConfig.Builder builder) { + cluster.getConfig(builder); + + if (clusterMembership.isPresent()) { + int maxHeapSize = featureFlags.metricsProxyMaxHeapSizeInMb(clusterMembership.get().cluster().type()); + boolean verboseGc = (maxHeapSize < 512); + builder.jvm + .verbosegc(verboseGc) + .heapsize(maxHeapSize); + } + } + private String getNodeRole() { String hostConfigId = getHost().getHost().getConfigId(); if (! isHostedVespa) return hostConfigId; diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java index a0b99516ce3..194967f9868 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java @@ -86,7 +86,6 @@ public class MetricsProxyContainerCluster extends ContainerCluster<MetricsProxyC private final AbstractConfigProducer<?> parent; private final ApplicationId applicationId; - public MetricsProxyContainerCluster(AbstractConfigProducer<?> parent, String name, DeployState deployState) { super(parent, name, name, deployState, true); this.parent = parent; |