summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2021-01-19 19:04:28 +0100
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2021-01-20 15:27:58 +0100
commit122fc2af750c84f57311304b3b559833ff250543 (patch)
treeb8f268daaed97223c5fb32a17c2f82cb92eb376a /config-model
parent6dbab1eed12373db1453fa51c43e9f8211158c81 (diff)
Add feature flag for enabling zstd compression of access logs
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainer.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainer.java3
-rwxr-xr-xconfig-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java4
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/component/AccessLogComponent.java14
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/AccessLogBuilder.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java2
6 files changed, 19 insertions, 9 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainer.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainer.java
index ad491b3ca0c..a4b01259a72 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainer.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainer.java
@@ -15,7 +15,7 @@ public class LogserverContainer extends Container {
public LogserverContainer(AbstractConfigProducer parent, FeatureFlags featureFlags, boolean isHostedVespa) {
super(parent, featureFlags, "" + 0, 0, isHostedVespa);
- addComponent(new AccessLogComponent(AccessLogComponent.AccessLogType.jsonAccessLog, ((LogserverContainerCluster) parent).getName(), true));
+ addComponent(new AccessLogComponent(AccessLogComponent.AccessLogType.jsonAccessLog, ((LogserverContainerCluster) parent).getName(), true, false));
}
@Override
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainer.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainer.java
index 6379ddcec95..e2df04ebbf3 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainer.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainer.java
@@ -57,7 +57,8 @@ public class ClusterControllerContainer extends Container implements
CLUSTERCONTROLLER_BUNDLE);
addComponent(new AccessLogComponent(AccessLogComponent.AccessLogType.jsonAccessLog,
"controller",
- deployState.isHosted()));
+ deployState.isHosted(),
+ deployState.featureFlags().enableZstdCompressionAccessLog()));
// TODO: Why are bundles added here instead of in the cluster?
addFileBundle("clustercontroller-apps");
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java
index f4805e7ac15..23a860e2b67 100755
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java
@@ -530,8 +530,8 @@ public abstract class ContainerCluster<CONTAINER extends Container>
if (containerSearch != null) containerSearch.connectSearchClusters(clusterMap);
}
- public void addDefaultSearchAccessLog() {
- addComponent(new AccessLogComponent(AccessLogComponent.AccessLogType.jsonAccessLog, getName(), isHostedVespa));
+ public void addDefaultSearchAccessLog(DeployState deployState) {
+ addComponent(new AccessLogComponent(AccessLogComponent.AccessLogType.jsonAccessLog, getName(), isHostedVespa, deployState.featureFlags().enableZstdCompressionAccessLog()));
}
@Override
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/component/AccessLogComponent.java b/config-model/src/main/java/com/yahoo/vespa/model/container/component/AccessLogComponent.java
index e75812a9ad6..6e197915a64 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/component/AccessLogComponent.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/component/AccessLogComponent.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.model.container.component;
import com.yahoo.container.core.AccessLogConfig;
+import com.yahoo.container.core.AccessLogConfig.FileHandler.CompressionFormat;
import com.yahoo.container.logging.VespaAccessLog;
import com.yahoo.container.logging.JSONAccessLog;
import com.yahoo.osgi.provider.model.ComponentModel;
@@ -19,13 +20,15 @@ public final class AccessLogComponent extends SimpleComponent implements AccessL
private final Boolean compression;
private final boolean isHostedVespa;
private final String symlinkName;
+ private final boolean enableZstdCompression;
- public AccessLogComponent(AccessLogType logType, String clusterName, boolean isHostedVespa)
+ public AccessLogComponent(AccessLogType logType, String clusterName, boolean isHostedVespa, boolean enableZstdCompression)
{
this(logType,
String.format("logs/vespa/qrs/%s.%s.%s", capitalize(logType.name()), clusterName, "%Y%m%d%H%M%S"),
null, null, isHostedVespa,
- capitalize(logType.name()) + "." + clusterName);
+ capitalize(logType.name()) + "." + clusterName,
+ enableZstdCompression);
}
private static String capitalize(String name) {
@@ -37,7 +40,8 @@ public final class AccessLogComponent extends SimpleComponent implements AccessL
String rotationInterval,
Boolean compressOnRotation,
boolean isHostedVespa,
- String symlinkName)
+ String symlinkName,
+ boolean enableZstdCompression)
{
super(new ComponentModel(accessLogClass(logType), null, "container-core", null));
this.fileNamePattern = fileNamePattern;
@@ -45,6 +49,7 @@ public final class AccessLogComponent extends SimpleComponent implements AccessL
this.compression = compressOnRotation;
this.isHostedVespa = isHostedVespa;
this.symlinkName = symlinkName;
+ this.enableZstdCompression = enableZstdCompression;
if (fileNamePattern == null)
throw new RuntimeException("File name pattern required when configuring access log.");
@@ -79,6 +84,9 @@ public final class AccessLogComponent extends SimpleComponent implements AccessL
} else if (isHostedVespa) {
builder.compressOnRotation(true);
}
+ if (enableZstdCompression) {
+ builder.compressionFormat(CompressionFormat.Enum.ZSTD);
+ }
return builder;
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/AccessLogBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/AccessLogBuilder.java
index a29c54f951b..5b87dc57306 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/AccessLogBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/AccessLogBuilder.java
@@ -59,7 +59,8 @@ public class AccessLogBuilder {
rotationInterval(spec),
compressOnRotation(spec),
isHostedVespa,
- symlinkName(spec));
+ symlinkName(spec),
+ deployState.featureFlags().enableZstdCompressionAccessLog());
}
private String symlinkName(Element spec) {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
index 15a37813150..d650b10a910 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
@@ -346,7 +346,7 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
}
if (accessLogElements.isEmpty() && deployState.getAccessLoggingEnabledByDefault())
- cluster.addDefaultSearchAccessLog();
+ cluster.addDefaultSearchAccessLog(deployState);
// Add connection log if access log is configured
if (cluster.getAllComponents().stream().anyMatch(component -> component instanceof AccessLogComponent)) {