Browse Source

Add scroll info to search task description (#54606)

Right now you can't tell from the task description whether or not the
search is a scroll. This adds that information to the description which
is super useful if you are trying to debug a cluster that is running out
of scroll contexts.
Nik Everett 5 years ago
parent
commit
b0ef5334cb

+ 3 - 1
server/src/main/java/org/elasticsearch/action/search/SearchRequest.java

@@ -611,8 +611,10 @@ public class SearchRequest extends ActionRequest implements IndicesRequest.Repla
                 Strings.arrayToDelimitedString(indices, ",", sb);
                 sb.append("], ");
                 sb.append("search_type[").append(searchType).append("], ");
+                if (scroll != null) {
+                    sb.append("scroll[").append(scroll.keepAlive()).append("], ");
+                }
                 if (source != null) {
-
                     sb.append("source[").append(source.toString(FORMAT_PARAMS)).append("]");
                 } else {
                     sb.append("source[]");

+ 16 - 0
server/src/test/java/org/elasticsearch/action/search/SearchRequestTests.java

@@ -30,6 +30,7 @@ import org.elasticsearch.search.AbstractSearchTestCase;
 import org.elasticsearch.search.Scroll;
 import org.elasticsearch.search.builder.SearchSourceBuilder;
 import org.elasticsearch.search.rescore.QueryRescorerBuilder;
+import org.elasticsearch.tasks.TaskId;
 import org.elasticsearch.test.ESTestCase;
 import org.elasticsearch.test.VersionUtils;
 
@@ -37,7 +38,9 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
+import static java.util.Collections.emptyMap;
 import static org.elasticsearch.test.EqualsHashCodeTestUtils.checkEqualsAndHashCode;
+import static org.hamcrest.Matchers.equalTo;
 
 public class SearchRequestTests extends AbstractSearchTestCase {
 
@@ -193,4 +196,17 @@ public class SearchRequestTests extends AbstractSearchTestCase {
         randomFrom(mutators).run();
         return mutation;
     }
+
+    public void testDescriptionForDefault() {
+        assertThat(toDescription(new SearchRequest()), equalTo("indices[], search_type[QUERY_THEN_FETCH], source[]"));
+    }
+
+    public void testDescriptionIncludesScroll() {
+        assertThat(toDescription(new SearchRequest().scroll(TimeValue.timeValueMinutes(5))),
+            equalTo("indices[], search_type[QUERY_THEN_FETCH], scroll[5m], source[]"));
+    }
+
+    private String toDescription(SearchRequest request) {
+        return request.createTask(0, "test", SearchAction.NAME, TaskId.EMPTY_TASK_ID, emptyMap()).getDescription();
+    }
 }