Skip to content

Commit 5da3673

Browse files
authored
Add logging so we can time the downsampling action (#137496) (#137504)
We suspect that #137148 is caused by a legit timeout and not that it failed to notify the listener. In order to verify that we added some extra logging lines that allow us to better track the time. More details in #137148 (comment) (cherry picked from commit 9770442) # Conflicts: # x-pack/plugin/downsample/src/main/java/org/elasticsearch/xpack/downsample/TransportDownsampleAction.java
1 parent 3e5fb5a commit 5da3673

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

x-pack/plugin/downsample/src/internalClusterTest/java/org/elasticsearch/xpack/downsample/DownsampleTransportFailureIT.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramInterval;
3131
import org.elasticsearch.test.ESIntegTestCase;
3232
import org.elasticsearch.test.InternalTestCluster;
33+
import org.elasticsearch.test.junit.annotations.TestIssueLogging;
3334
import org.elasticsearch.test.transport.MockTransportService;
3435
import org.elasticsearch.xcontent.XContentBuilder;
3536
import org.elasticsearch.xcontent.XContentFactory;
@@ -263,6 +264,10 @@ private void assertIndexDoesNotExist(final String nodeName, final String indexNa
263264
assertEquals("no such index [" + indexName + "]", targetIndexNotFoundException.getMessage());
264265
}
265266

267+
@TestIssueLogging(
268+
value = "org.elasticsearch.xpack.downsample.TransportDownsampleAction:DEBUG",
269+
issueUrl = "https://github.com/elastic/elasticsearch/issues/137148"
270+
)
266271
public void testNoDisruption() {
267272
// GIVEN
268273

@@ -277,6 +282,7 @@ public void testNoDisruption() {
277282
// WHEN nothing happens
278283

279284
// THEN
285+
logger.info("Executing downsample action from [{}] to [{}]", SOURCE_INDEX_NAME, TARGET_INDEX_NAME);
280286
final AcknowledgedResponse downsampleResponse = testCluster.masterClient()
281287
.execute(DownsampleAction.INSTANCE, downsampleRequest)
282288
.actionGet(TimeValue.timeValueMillis(DOWNSAMPLE_ACTION_TIMEOUT_MILLIS));

x-pack/plugin/downsample/src/main/java/org/elasticsearch/xpack/downsample/TransportDownsampleAction.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,11 @@ protected void masterOperation(
238238
ClusterState state,
239239
ActionListener<AcknowledgedResponse> listener
240240
) {
241+
logger.debug(
242+
"Starting downsampling [{}] with [{}] interval",
243+
request.getSourceIndex(),
244+
request.getDownsampleConfig().getFixedInterval()
245+
);
241246
long startTime = nowSupplier.get();
242247
String sourceIndexName = request.getSourceIndex();
243248
IndexNameExpressionResolver.assertExpressionHasNullOrDataSelector(sourceIndexName);
@@ -1019,6 +1024,7 @@ private void createDownsampleIndex(
10191024
taskQueue.submitTask("create-downsample-index [" + downsampleIndexName + "]", new DownsampleClusterStateUpdateTask(listener) {
10201025
@Override
10211026
public ClusterState execute(ClusterState currentState) throws Exception {
1027+
logger.debug("Creating downsample index [{}]", downsampleIndexName);
10221028
return metadataCreateIndexService.applyCreateIndexRequest(
10231029
currentState,
10241030
createIndexClusterStateUpdateRequest,
@@ -1083,6 +1089,7 @@ class UpdateDownsampleIndexSettingsActionListener implements ActionListener<Ackn
10831089

10841090
@Override
10851091
public void onResponse(final AcknowledgedResponse response) {
1092+
logger.debug("Preparing to refresh downsample index [{}]", downsampleIndexName);
10861093
final RefreshRequest request = new RefreshRequest(downsampleIndexName);
10871094
request.setParentTask(parentTask);
10881095
client.admin()
@@ -1155,6 +1162,7 @@ public void onResponse(final BroadcastResponse response) {
11551162

11561163
@Override
11571164
public ClusterState execute(ClusterState currentState) {
1165+
logger.debug("Updating downsample index status for [{}]", downsampleIndexName);
11581166
final ProjectMetadata project = currentState.metadata().getProject(projectId);
11591167
final IndexMetadata downsampleIndex = project.index(downsampleIndexName);
11601168
if (IndexMetadata.INDEX_DOWNSAMPLE_STATUS.get(downsampleIndex.getSettings()) == DownsampleTaskStatus.SUCCESS) {
@@ -1206,6 +1214,7 @@ class ForceMergeActionListener implements ActionListener<AcknowledgedResponse> {
12061214

12071215
@Override
12081216
public void onResponse(final AcknowledgedResponse response) {
1217+
logger.debug("Preparing to force merge downsample index [{}]", downsampleIndexName);
12091218
ForceMergeRequest request = new ForceMergeRequest(downsampleIndexName);
12101219
request.maxNumSegments(1);
12111220
request.setParentTask(parentTask);
@@ -1245,12 +1254,14 @@ class MeasurementActionListener implements ActionListener<AcknowledgedResponse>
12451254
@Override
12461255
public void onResponse(final AcknowledgedResponse response) {
12471256
recordSuccessMetrics(startTime);
1257+
logger.debug("Downsampling measured successfully");
12481258
actionListener.onResponse(AcknowledgedResponse.TRUE);
12491259
}
12501260

12511261
@Override
12521262
public void onFailure(Exception e) {
12531263
recordSuccessMetrics(startTime);
1264+
logger.debug("Downsampling measured successfully", e);
12541265
this.actionListener.onFailure(e);
12551266
}
12561267

0 commit comments

Comments
 (0)