Skip to content

Commit 093d23b

Browse files
authored
ESQL: Log profile on test error (#131474)
Log the ESQL request profile when a test fails
1 parent 446942f commit 093d23b

File tree

24 files changed

+264
-88
lines changed

24 files changed

+264
-88
lines changed

x-pack/plugin/esql/compute/src/main/java/org/elasticsearch/compute/operator/AbstractPageMappingToIteratorOperator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ public static class Status implements Operator.Status {
202202
public static final NamedWriteableRegistry.Entry ENTRY = new NamedWriteableRegistry.Entry(
203203
Operator.Status.class,
204204
"page_mapping_to_iterator",
205-
AbstractPageMappingOperator.Status::new
205+
Status::new
206206
);
207207

208208
private final long processNanos;

x-pack/plugin/esql/qa/server/mixed-cluster/src/javaRestTest/java/org/elasticsearch/xpack/esql/qa/mixed/MixedClusterEsqlSpecIT.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import org.elasticsearch.test.rest.TestFeatureService;
1313
import org.elasticsearch.xpack.esql.CsvSpecReader.CsvTestCase;
1414
import org.elasticsearch.xpack.esql.qa.rest.EsqlSpecTestCase;
15+
import org.elasticsearch.xpack.esql.qa.rest.RestEsqlTestCase.Mode;
1516
import org.junit.AfterClass;
1617
import org.junit.Before;
1718
import org.junit.ClassRule;

x-pack/plugin/esql/qa/server/multi-clusters/src/javaRestTest/java/org/elasticsearch/xpack/esql/ccq/MultiClusterSpecIT.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.elasticsearch.xpack.esql.CsvTestsDataLoader;
2828
import org.elasticsearch.xpack.esql.SpecReader;
2929
import org.elasticsearch.xpack.esql.qa.rest.EsqlSpecTestCase;
30+
import org.elasticsearch.xpack.esql.qa.rest.RestEsqlTestCase.Mode;
3031
import org.junit.AfterClass;
3132
import org.junit.ClassRule;
3233
import org.junit.rules.RuleChain;
@@ -58,7 +59,7 @@
5859
import static org.elasticsearch.xpack.esql.action.EsqlCapabilities.Cap.JOIN_PLANNING_V1;
5960
import static org.elasticsearch.xpack.esql.action.EsqlCapabilities.Cap.METADATA_FIELDS_REMOTE_TEST;
6061
import static org.elasticsearch.xpack.esql.action.EsqlCapabilities.Cap.UNMAPPED_FIELDS;
61-
import static org.elasticsearch.xpack.esql.qa.rest.EsqlSpecTestCase.Mode.SYNC;
62+
import static org.elasticsearch.xpack.esql.qa.rest.RestEsqlTestCase.Mode.SYNC;
6263
import static org.mockito.ArgumentMatchers.any;
6364
import static org.mockito.Mockito.doAnswer;
6465
import static org.mockito.Mockito.mock;

x-pack/plugin/esql/qa/server/multi-clusters/src/javaRestTest/java/org/elasticsearch/xpack/esql/ccq/MultiClustersIT.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,13 @@
2121
import org.elasticsearch.test.cluster.ElasticsearchCluster;
2222
import org.elasticsearch.test.rest.ESRestTestCase;
2323
import org.elasticsearch.test.rest.TestFeatureService;
24+
import org.elasticsearch.xpack.esql.AssertWarnings;
25+
import org.elasticsearch.xpack.esql.qa.rest.ProfileLogger;
2426
import org.elasticsearch.xpack.esql.qa.rest.RestEsqlTestCase;
2527
import org.junit.After;
2628
import org.junit.Before;
2729
import org.junit.ClassRule;
30+
import org.junit.Rule;
2831
import org.junit.rules.RuleChain;
2932
import org.junit.rules.TestRule;
3033

@@ -57,6 +60,9 @@ public class MultiClustersIT extends ESRestTestCase {
5760
@ClassRule
5861
public static TestRule clusterRule = RuleChain.outerRule(remoteCluster).around(localCluster);
5962

63+
@Rule(order = Integer.MIN_VALUE)
64+
public ProfileLogger profileLogger = new ProfileLogger();
65+
6066
private static TestFeatureService remoteFeaturesService;
6167

6268
@Override
@@ -199,9 +205,9 @@ protected boolean supportsAsync() {
199205

200206
private Map<String, Object> runEsql(RestEsqlTestCase.RequestObjectBuilder requestObject) throws IOException {
201207
if (supportsAsync()) {
202-
return RestEsqlTestCase.runEsqlAsync(requestObject);
208+
return RestEsqlTestCase.runEsqlAsync(requestObject, new AssertWarnings.NoWarnings(), profileLogger);
203209
} else {
204-
return RestEsqlTestCase.runEsqlSync(requestObject);
210+
return RestEsqlTestCase.runEsqlSync(requestObject, new AssertWarnings.NoWarnings(), profileLogger);
205211
}
206212
}
207213

x-pack/plugin/esql/qa/server/multi-node/src/javaRestTest/java/org/elasticsearch/xpack/esql/qa/multi_node/EsqlSpecIT.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import org.elasticsearch.test.cluster.ElasticsearchCluster;
1111
import org.elasticsearch.xpack.esql.CsvSpecReader.CsvTestCase;
1212
import org.elasticsearch.xpack.esql.qa.rest.EsqlSpecTestCase;
13+
import org.elasticsearch.xpack.esql.qa.rest.RestEsqlTestCase.Mode;
1314
import org.junit.ClassRule;
1415

1516
import java.io.IOException;

x-pack/plugin/esql/qa/server/single-node/src/javaRestTest/java/org/elasticsearch/xpack/esql/qa/single_node/EsqlSpecIT.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import org.elasticsearch.xpack.esql.planner.PhysicalSettings;
2020
import org.elasticsearch.xpack.esql.plugin.ComputeService;
2121
import org.elasticsearch.xpack.esql.qa.rest.EsqlSpecTestCase;
22+
import org.elasticsearch.xpack.esql.qa.rest.RestEsqlTestCase.Mode;
2223
import org.junit.Before;
2324
import org.junit.ClassRule;
2425

x-pack/plugin/esql/qa/server/single-node/src/javaRestTest/java/org/elasticsearch/xpack/esql/qa/single_node/GenerativeForkIT.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import org.elasticsearch.test.TestClustersThreadFilter;
1313
import org.elasticsearch.test.cluster.ElasticsearchCluster;
1414
import org.elasticsearch.xpack.esql.CsvSpecReader;
15+
import org.elasticsearch.xpack.esql.qa.rest.RestEsqlTestCase.Mode;
1516
import org.elasticsearch.xpack.esql.qa.rest.generative.GenerativeForkRestTest;
1617
import org.junit.ClassRule;
1718

x-pack/plugin/esql/qa/server/single-node/src/javaRestTest/java/org/elasticsearch/xpack/esql/qa/single_node/PushQueriesIT.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,12 @@
2121
import org.elasticsearch.test.rest.ESRestTestCase;
2222
import org.elasticsearch.xcontent.XContentType;
2323
import org.elasticsearch.xpack.esql.AssertWarnings;
24+
import org.elasticsearch.xpack.esql.qa.rest.ProfileLogger;
2425
import org.elasticsearch.xpack.esql.qa.rest.RestEsqlTestCase;
2526
import org.hamcrest.Matcher;
2627
import org.junit.Before;
2728
import org.junit.ClassRule;
29+
import org.junit.Rule;
2830

2931
import java.io.IOException;
3032
import java.util.ArrayList;
@@ -55,6 +57,9 @@ public class PushQueriesIT extends ESRestTestCase {
5557
@ClassRule
5658
public static ElasticsearchCluster cluster = Clusters.testCluster(spec -> spec.plugin("inference-service-test"));
5759

60+
@Rule(order = Integer.MIN_VALUE)
61+
public ProfileLogger profileLogger = new ProfileLogger();
62+
5863
@ParametersFactory(argumentFormatting = "%1s")
5964
public static List<Object[]> args() {
6065
return Arrays.stream(Type.values()).map(s -> new Object[] { s }).toList();
@@ -348,7 +353,7 @@ private void testPushQuery(
348353
String replacedQuery = esqlQuery.replaceAll("%value", value).replaceAll("%different_value", differentValue);
349354
RestEsqlTestCase.RequestObjectBuilder builder = requestObjectBuilder().query(replacedQuery + "\n| KEEP test");
350355
builder.profile(true);
351-
Map<String, Object> result = runEsql(builder, new AssertWarnings.NoWarnings(), RestEsqlTestCase.Mode.SYNC);
356+
Map<String, Object> result = runEsql(builder, new AssertWarnings.NoWarnings(), profileLogger, RestEsqlTestCase.Mode.SYNC);
352357
assertResultMap(
353358
result,
354359
getResultMatcher(result).entry(

x-pack/plugin/esql/qa/server/single-node/src/javaRestTest/java/org/elasticsearch/xpack/esql/qa/single_node/RestEnrichIT.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import org.elasticsearch.test.TestClustersThreadFilter;
1313
import org.elasticsearch.test.cluster.ElasticsearchCluster;
1414
import org.elasticsearch.xpack.esql.qa.rest.RestEnrichTestCase;
15+
import org.elasticsearch.xpack.esql.qa.rest.RestEsqlTestCase.Mode;
1516
import org.junit.ClassRule;
1617

1718
@ThreadLeakFilters(filters = TestClustersThreadFilter.class)

x-pack/plugin/esql/qa/server/single-node/src/javaRestTest/java/org/elasticsearch/xpack/esql/qa/single_node/StoredFieldsSequentialIT.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,11 @@
2020
import org.elasticsearch.test.rest.ESRestTestCase;
2121
import org.elasticsearch.xcontent.XContentType;
2222
import org.elasticsearch.xpack.esql.AssertWarnings;
23+
import org.elasticsearch.xpack.esql.qa.rest.ProfileLogger;
2324
import org.elasticsearch.xpack.esql.qa.rest.RestEsqlTestCase;
2425
import org.junit.Before;
2526
import org.junit.ClassRule;
27+
import org.junit.Rule;
2628

2729
import java.io.IOException;
2830
import java.util.List;
@@ -52,6 +54,9 @@ public class StoredFieldsSequentialIT extends ESRestTestCase {
5254
@ClassRule
5355
public static ElasticsearchCluster cluster = Clusters.testCluster();
5456

57+
@Rule(order = Integer.MIN_VALUE)
58+
public ProfileLogger profileLogger = new ProfileLogger();
59+
5560
public void testFetchTen() throws IOException {
5661
testQuery(null, """
5762
FROM test
@@ -106,7 +111,7 @@ private void testQuery(Double percent, String query, int documentsFound, boolean
106111
setPercent(percent);
107112
RestEsqlTestCase.RequestObjectBuilder builder = requestObjectBuilder().query(query);
108113
builder.profile(true);
109-
Map<String, Object> result = runEsql(builder, new AssertWarnings.NoWarnings(), RestEsqlTestCase.Mode.SYNC);
114+
Map<String, Object> result = runEsql(builder, new AssertWarnings.NoWarnings(), profileLogger, RestEsqlTestCase.Mode.SYNC);
110115
assertMap(
111116
result,
112117
matchesMap().entry("documents_found", documentsFound)

0 commit comments

Comments
 (0)