summaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'config-model/src/main/java/com')
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java8
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java4
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainer.java36
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java1
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;