aboutsummaryrefslogtreecommitdiffstats
path: root/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/sync/SyncFileInfo.java
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@yahooinc.com>2021-11-24 09:40:32 +0100
committerValerij Fredriksen <valerijf@yahooinc.com>2021-11-24 09:40:32 +0100
commit01932261846216408c5addd0e90f3ddeae35ae41 (patch)
tree5146f9690b4d2d80cb948da4216a0969fa212b77 /node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/sync/SyncFileInfo.java
parent8e84a1b58a1da75c33f740ea7601518a64f367e8 (diff)
Sync vespa.log at least once an hour
Diffstat (limited to 'node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/sync/SyncFileInfo.java')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/sync/SyncFileInfo.java16
1 files changed, 12 insertions, 4 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/sync/SyncFileInfo.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/sync/SyncFileInfo.java
index 1854ed67389..a9f2cd219b9 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/sync/SyncFileInfo.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/sync/SyncFileInfo.java
@@ -5,6 +5,7 @@ import com.yahoo.config.provision.ApplicationId;
import java.net.URI;
import java.nio.file.Path;
+import java.time.Duration;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
@@ -18,13 +19,15 @@ public class SyncFileInfo {
private final URI destination;
private final Compression uploadCompression;
private final Map<String, String> tags;
+ private final Optional<Duration> minDurationBetweenSync;
private SyncFileInfo(Path source, URI destination, Compression uploadCompression,
- Map<String, String> tags) {
+ Map<String, String> tags, Duration minDurationBetweenSyncOrNull) {
this.source = source;
this.destination = destination;
this.uploadCompression = uploadCompression;
this.tags = Map.copyOf(tags);
+ this.minDurationBetweenSync = Optional.ofNullable(minDurationBetweenSyncOrNull);
}
/** Source path of the file to sync */
@@ -44,14 +47,18 @@ public class SyncFileInfo {
public Map<String, String> tags() { return tags; }
+ public Optional<Duration> minDurationBetweenSync() { return minDurationBetweenSync; }
+
public static Optional<SyncFileInfo> forLogFile(URI uri, Path logFile, boolean rotatedOnly, ApplicationId owner) {
String filename = logFile.getFileName().toString();
Compression compression;
String dir = null;
+ Duration minDurationBetweenSync = null;
- if ((!rotatedOnly && filename.equals("vespa.log")) || filename.startsWith("vespa.log-")) {
+ if (filename.startsWith("vespa.log")) {
dir = "logs/vespa/";
compression = Compression.ZSTD;
+ minDurationBetweenSync = filename.length() == 9 ? rotatedOnly ? Duration.ofHours(1) : Duration.ZERO : null;
} else {
compression = filename.endsWith(".zst") ? Compression.NONE : Compression.ZSTD;
if (rotatedOnly && compression != Compression.NONE)
@@ -64,7 +71,8 @@ public class SyncFileInfo {
if (dir == null) return Optional.empty();
return Optional.of(new SyncFileInfo(
- logFile, uri.resolve(dir + logFile.getFileName() + compression.extension), compression, defaultTags(owner)));
+ logFile, uri.resolve(dir + logFile.getFileName() + compression.extension), compression, defaultTags(owner),
+ minDurationBetweenSync));
}
public static SyncFileInfo forServiceDump(URI destinationDir, Path file, Compression compression,
@@ -75,7 +83,7 @@ public class SyncFileInfo {
if (assetClassification != null) {
tags.put("vespa:AssetClassification", assetClassification);
}
- return new SyncFileInfo(file, location, compression, tags);
+ return new SyncFileInfo(file, location, compression, tags, null);
}
private static Map<String, String> defaultTags(ApplicationId owner) {