Skip to content

Commit 1ce5c7c

Browse files
Improve Snapshot Logging (#137470)
Clean up the reported logging start/end milliseconds into human-readable string dates inside the SnapshotShutdownProgressTracker Relates to: ES-12794
1 parent 938256e commit 1ce5c7c

File tree

3 files changed

+16
-6
lines changed

3 files changed

+16
-6
lines changed

server/src/main/java/org/elasticsearch/repositories/blobstore/BlobStoreRepository.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@
9494
import org.elasticsearch.core.RefCounted;
9595
import org.elasticsearch.core.Releasable;
9696
import org.elasticsearch.core.SuppressForbidden;
97+
import org.elasticsearch.core.TimeValue;
9798
import org.elasticsearch.core.Tuple;
9899
import org.elasticsearch.index.IndexVersion;
99100
import org.elasticsearch.index.shard.ShardId;
@@ -4223,11 +4224,12 @@ private void checkAborted() {
42234224
final long uploadTimeInMillis = threadPool.rawRelativeTimeInMillis() - startMillis;
42244225
blobStoreSnapshotMetrics.incrementCountersForPartUpload(partBytes, uploadTimeInMillis);
42254226
logger.trace(
4226-
"[{}] Writing [{}] of size [{}b] to [{}] took [{}ms]",
4227+
"[{}] Writing [{}] of size [{}b] to [{}] took [{}/{}ms]",
42274228
metadata.name(),
42284229
partName,
42294230
partBytes,
42304231
shardContainer.path(),
4232+
new TimeValue(uploadTimeInMillis),
42314233
uploadTimeInMillis
42324234
);
42334235
}

server/src/main/java/org/elasticsearch/snapshots/SnapshotShutdownProgressTracker.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import org.elasticsearch.common.Strings;
1616
import org.elasticsearch.common.settings.ClusterSettings;
1717
import org.elasticsearch.common.settings.Setting;
18+
import org.elasticsearch.common.time.DateFormatter;
1819
import org.elasticsearch.common.util.concurrent.ConcurrentCollections;
1920
import org.elasticsearch.core.TimeValue;
2021
import org.elasticsearch.index.shard.ShardId;
@@ -44,6 +45,7 @@ public class SnapshotShutdownProgressTracker {
4445
);
4546

4647
private static final Logger logger = LogManager.getLogger(SnapshotShutdownProgressTracker.class);
48+
private static final DateFormatter DATE_TIME_FORMATTER = DateFormatter.forPattern("strict_date_optional_time");
4749

4850
private final Supplier<String> getLocalNodeId;
4951
private final Consumer<Logger> logIndexShardSnapshotStatuses;
@@ -136,15 +138,17 @@ private void logProgressReport() {
136138
logger.info(
137139
"""
138140
Current active shard snapshot stats on data node [{}]. \
139-
Node shutdown cluster state update received at [{} millis]. \
140-
Finished signalling shard snapshots to pause at [{} millis]. \
141+
Node shutdown cluster state update received at [{} UTC]. \
142+
Finished signalling shard snapshots to pause at [{} UTC]. \
143+
Time between the node shutdown cluster state update and signalling shard snapshots to pause is [{} millis]. \
141144
Number shard snapshots running [{}]. \
142145
Number shard snapshots waiting for master node reply to status update request [{}] \
143146
Shard snapshot completion stats since shutdown began: Done [{}]; Failed [{}]; Aborted [{}]; Paused [{}]\
144147
""",
145148
getLocalNodeId.get(),
146-
shutdownStartMillis,
147-
shutdownFinishedSignallingPausingMillis,
149+
DATE_TIME_FORMATTER.formatMillis(shutdownStartMillis),
150+
DATE_TIME_FORMATTER.formatMillis(shutdownFinishedSignallingPausingMillis),
151+
shutdownFinishedSignallingPausingMillis - shutdownStartMillis,
148152
numberOfShardSnapshotsInProgressOnDataNode.get(),
149153
shardSnapshotRequests.size(),
150154
doneCount.get(),

server/src/test/java/org/elasticsearch/snapshots/SnapshotShutdownProgressTrackerTests.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.elasticsearch.common.settings.ClusterSettings;
1717
import org.elasticsearch.common.settings.Setting;
1818
import org.elasticsearch.common.settings.Settings;
19+
import org.elasticsearch.common.time.DateFormatter;
1920
import org.elasticsearch.common.unit.ByteSizeValue;
2021
import org.elasticsearch.common.util.concurrent.DeterministicTaskQueue;
2122
import org.elasticsearch.core.TimeValue;
@@ -271,12 +272,15 @@ public void testTrackerPauseTimestamp() {
271272
);
272273

273274
try (var mockLog = MockLog.capture(Coordinator.class, SnapshotShutdownProgressTracker.class)) {
275+
long timeInMillis = testThreadPool.relativeTimeInMillis();
274276
mockLog.addExpectation(
275277
new MockLog.SeenEventExpectation(
276278
"pausing timestamp should be set",
277279
SnapshotShutdownProgressTracker.class.getName(),
278280
Level.INFO,
279-
"*Finished signalling shard snapshots to pause at [" + testThreadPool.relativeTimeInMillis() + " millis]*"
281+
"*Finished signalling shard snapshots to pause at ["
282+
+ DateFormatter.forPattern("strict_date_optional_time").formatMillis(timeInMillis)
283+
+ " UTC]*"
280284
)
281285
);
282286

0 commit comments

Comments
 (0)