summaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'config-model/src/main/java')
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java7
-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.java17
4 files changed, 41 insertions, 23 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..5cd27e35e8a 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
@@ -56,6 +56,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 +96,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() { return metricsProxyMaxHeapSizeInMb; }
@Override public int maxActivationInhibitedOutOfSyncGroups() { return maxActivationInhibitedOutOfSyncGroups; }
public TestProperties setFeedConcurrency(double feedConcurrency) {
@@ -227,6 +229,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..5e7857e38cd 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() && clusterMembership.get().cluster().type() == ClusterSpec.Type.admin) {
+ int maxHeapSize = featureFlags.metricsProxyMaxHeapSizeInMb();
+ 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 fd83b572097..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
@@ -23,7 +23,6 @@ import ai.vespa.metricsproxy.service.SystemPollerProvider;
import ai.vespa.metricsproxy.telegraf.Telegraf;
import ai.vespa.metricsproxy.telegraf.TelegrafConfig;
import ai.vespa.metricsproxy.telegraf.TelegrafRegistry;
-import com.yahoo.config.model.api.ModelContext;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.model.producer.AbstractConfigProducer;
import com.yahoo.config.model.producer.AbstractConfigProducerRoot;
@@ -31,7 +30,6 @@ import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.Zone;
import com.yahoo.container.jdisc.ThreadedHttpRequestHandler;
import com.yahoo.osgi.provider.model.ComponentModel;
-import com.yahoo.search.config.QrStartConfig;
import com.yahoo.vespa.model.VespaModel;
import com.yahoo.vespa.model.admin.Admin;
import com.yahoo.vespa.model.admin.monitoring.MetricSet;
@@ -69,8 +67,7 @@ public class MetricsProxyContainerCluster extends ContainerCluster<MetricsProxyC
ConsumersConfig.Producer,
MonitoringConfig.Producer,
TelegrafConfig.Producer,
- MetricsNodesConfig.Producer,
- QrStartConfig.Producer
+ MetricsNodesConfig.Producer
{
public static final Logger log = Logger.getLogger(MetricsProxyContainerCluster.class.getName());
@@ -88,12 +85,10 @@ public class MetricsProxyContainerCluster extends ContainerCluster<MetricsProxyC
private final AbstractConfigProducer<?> parent;
private final ApplicationId applicationId;
- private final ModelContext.FeatureFlags featureFlags;
public MetricsProxyContainerCluster(AbstractConfigProducer<?> parent, String name, DeployState deployState) {
super(parent, name, name, deployState, true);
this.parent = parent;
- this.featureFlags = deployState.featureFlags();
applicationId = deployState.getProperties().applicationId();
setRpcServerEnabled(true);
@@ -202,16 +197,6 @@ public class MetricsProxyContainerCluster extends ContainerCluster<MetricsProxyC
}
}
- @Override
- public void getConfig(QrStartConfig.Builder builder) {
- super.getConfig(builder);
- int maxHeapSize = featureFlags.metricsProxyMaxHeapSizeInMb();
- boolean verboseGc = (maxHeapSize < 512);
- builder.jvm
- .verbosegc(verboseGc)
- .heapsize(maxHeapSize);
- }
-
protected boolean messageBusEnabled() { return false; }
private MetricSet getAdditionalDefaultMetrics() {