Skip to content

Commit 9a7c183

Browse files
authored
Add logging so we can time the downsampling action (#137496) (#137503)
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 75aef76 commit 9a7c183

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);
@@ -1023,6 +1028,7 @@ private void createDownsampleIndex(
10231028
taskQueue.submitTask("create-downsample-index [" + downsampleIndexName + "]", new DownsampleClusterStateUpdateTask(listener) {
10241029
@Override
10251030
public ClusterState execute(ClusterState currentState) throws Exception {
1031+
logger.debug("Creating downsample index [{}]", downsampleIndexName);
10261032
return metadataCreateIndexService.applyCreateIndexRequest(
10271033
currentState,
10281034
createIndexClusterStateUpdateRequest,
@@ -1087,6 +1093,7 @@ class UpdateDownsampleIndexSettingsActionListener implements ActionListener<Ackn
10871093

10881094
@Override
10891095
public void onResponse(final AcknowledgedResponse response) {
1096+
logger.debug("Preparing to refresh downsample index [{}]", downsampleIndexName);
10901097
final RefreshRequest request = new RefreshRequest(downsampleIndexName);
10911098
request.setParentTask(parentTask);
10921099
client.admin()
@@ -1159,6 +1166,7 @@ public void onResponse(final BroadcastResponse response) {
11591166

11601167
@Override
11611168
public ClusterState execute(ClusterState currentState) {
1169+
logger.debug("Updating downsample index status for [{}]", downsampleIndexName);
11621170
final ProjectMetadata project = currentState.metadata().getProject(projectId);
11631171
final IndexMetadata downsampleIndex = project.index(downsampleIndexName);
11641172
if (IndexMetadata.INDEX_DOWNSAMPLE_STATUS.get(downsampleIndex.getSettings()) == DownsampleTaskStatus.SUCCESS) {
@@ -1210,6 +1218,7 @@ class ForceMergeActionListener implements ActionListener<AcknowledgedResponse> {
12101218

12111219
@Override
12121220
public void onResponse(final AcknowledgedResponse response) {
1221+
logger.debug("Preparing to force merge downsample index [{}]", downsampleIndexName);
12131222
ForceMergeRequest request = new ForceMergeRequest(downsampleIndexName);
12141223
request.maxNumSegments(1);
12151224
request.setParentTask(parentTask);
@@ -1249,12 +1258,14 @@ class MeasurementActionListener implements ActionListener<AcknowledgedResponse>
12491258
@Override
12501259
public void onResponse(final AcknowledgedResponse response) {
12511260
recordSuccessMetrics(startTime);
1261+
logger.debug("Downsampling measured successfully");
12521262
actionListener.onResponse(AcknowledgedResponse.TRUE);
12531263
}
12541264

12551265
@Override
12561266
public void onFailure(Exception e) {
12571267
recordSuccessMetrics(startTime);
1268+
logger.debug("Downsampling measured successfully", e);
12581269
this.actionListener.onFailure(e);
12591270
}
12601271

0 commit comments

Comments
 (0)