diff options
author | Valerij Fredriksen <valerijf@yahooinc.com> | 2021-11-24 09:40:32 +0100 |
---|---|---|
committer | Valerij Fredriksen <valerijf@yahooinc.com> | 2021-11-24 09:40:32 +0100 |
commit | 01932261846216408c5addd0e90f3ddeae35ae41 (patch) | |
tree | 5146f9690b4d2d80cb948da4216a0969fa212b77 /node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/maintenance/sync/SyncFileInfo.java | |
parent | 8e84a1b58a1da75c33f740ea7601518a64f367e8 (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.java | 16 |
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) { |