فهرست منبع

Improve rollover logging for error scenarios (#67294)

Dan Hermann 4 سال پیش
والد
کامیت
f8abfc868b

+ 11 - 0
server/src/main/java/org/elasticsearch/action/admin/indices/rollover/MetadataRolloverService.java

@@ -84,6 +84,17 @@ public class MetadataRolloverService {
             this.sourceIndexName = sourceIndexName;
             this.clusterState = clusterState;
         }
+
+        @Override
+        public String toString() {
+            return String.format(
+                Locale.ROOT,
+                "cluster state version [%d], rollover index name [%s], source index name [%s]",
+                clusterState.version(),
+                rolloverIndexName,
+                sourceIndexName
+            );
+        }
     }
 
     public RolloverResult rolloverClusterState(ClusterState currentState, String rolloverTarget, String newIndexName,

+ 8 - 2
server/src/main/java/org/elasticsearch/action/admin/indices/rollover/TransportRolloverAction.java

@@ -19,6 +19,8 @@
 
 package org.elasticsearch.action.admin.indices.rollover;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.elasticsearch.ElasticsearchException;
 import org.elasticsearch.action.ActionListener;
 import org.elasticsearch.action.admin.indices.stats.IndicesStatsAction;
@@ -57,6 +59,7 @@ import java.util.stream.Collectors;
  */
 public class TransportRolloverAction extends TransportMasterNodeAction<RolloverRequest, RolloverResponse> {
 
+    private static final Logger logger = LogManager.getLogger(TransportRolloverAction.class);
     private final MetadataRolloverService rolloverService;
     private final ActiveShardsObserver activeShardsObserver;
     private final Client client;
@@ -89,6 +92,7 @@ public class TransportRolloverAction extends TransportMasterNodeAction<RolloverR
             rolloverService.rolloverClusterState(state,
                 rolloverRequest.getRolloverTarget(), rolloverRequest.getNewIndexName(), rolloverRequest.getCreateIndexRequest(),
                 Collections.emptyList(), true, true);
+        logger.trace("rollover pre-result [{}]", preResult);
         Metadata metadata = state.metadata();
         String sourceIndexName = preResult.sourceIndexName;
         String rolloverIndexName = preResult.rolloverIndexName;
@@ -119,9 +123,11 @@ public class TransportRolloverAction extends TransportMasterNodeAction<RolloverR
                                 MetadataRolloverService.RolloverResult rolloverResult = rolloverService.rolloverClusterState(currentState,
                                     rolloverRequest.getRolloverTarget(), rolloverRequest.getNewIndexName(),
                                     rolloverRequest.getCreateIndexRequest(), metConditions, false, false);
+                                logger.trace("rollover result [{}]", rolloverResult);
                                 if (rolloverResult.sourceIndexName.equals(sourceIndexName) == false) {
-                                    throw new ElasticsearchException("Concurrent modification of alias [{}] during rollover",
-                                        rolloverRequest.getRolloverTarget());
+                                    throw new ElasticsearchException("Concurrent modification of alias or data stream [{}] during " +
+                                        "rollover (expected [{}] but found [{}])",
+                                        rolloverRequest.getRolloverTarget(), sourceIndexName, rolloverResult.sourceIndexName);
                                 }
                                 return rolloverResult.clusterState;
                             }