Skip to content

Commit 03f3c81

Browse files
authored
Downsampling: copyindex.hidden setting from source (#89177)
Rollup indices are initially created as hidden (index.hidden: true). At the end of the rollup process, we must set this setting to the value the source index has
1 parent c4dfc66 commit 03f3c81

File tree

2 files changed

+40
-23
lines changed

2 files changed

+40
-23
lines changed

x-pack/plugin/rollup/src/main/java/org/elasticsearch/xpack/rollup/v2/TransportRollupAction.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,14 @@ protected void masterOperation(
267267
if (sourceIndexMetadata.getNumberOfReplicas() > 0) {
268268
settings.put(IndexMetadata.SETTING_NUMBER_OF_REPLICAS, sourceIndexMetadata.getNumberOfReplicas());
269269
}
270+
// Setting index.hidden has been initially set to true. We revert this to the value of the source index
271+
if (sourceIndexMetadata.isHidden() == false) {
272+
if (sourceIndexMetadata.getSettings().keySet().contains(IndexMetadata.SETTING_INDEX_HIDDEN)) {
273+
settings.put(IndexMetadata.SETTING_INDEX_HIDDEN, false);
274+
} else {
275+
settings.putNull(IndexMetadata.SETTING_INDEX_HIDDEN);
276+
}
277+
}
270278
UpdateSettingsRequest updateSettingsReq = new UpdateSettingsRequest(settings.build(), rollupIndexName);
271279
updateSettingsReq.setParentTask(parentTask);
272280
client.admin().indices().updateSettings(updateSettingsReq, ActionListener.wrap(updateSettingsResponse -> {
@@ -545,7 +553,7 @@ private void createRollupIndex(
545553
* case rollup will fail.
546554
*/
547555
Settings.builder()
548-
.put(IndexMetadata.INDEX_HIDDEN_SETTING.getKey(), true)
556+
.put(IndexMetadata.SETTING_INDEX_HIDDEN, true)
549557
.put(IndexMetadata.SETTING_NUMBER_OF_SHARDS, sourceIndexMetadata.getNumberOfShards())
550558
.put(IndexMetadata.SETTING_NUMBER_OF_REPLICAS, 0)
551559
.put(IndexSettings.INDEX_REFRESH_INTERVAL_SETTING.getKey(), "-1")

x-pack/plugin/rollup/src/test/java/org/elasticsearch/xpack/rollup/v2/RollupActionSingleNodeTests.java

Lines changed: 31 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -165,23 +165,25 @@ public void setup() {
165165
* check that the value of the label (last value) matches the value
166166
* of the corresponding metric which uses a last_value metric type.
167167
*/
168+
Settings.Builder settings = Settings.builder()
169+
.put(IndexMetadata.SETTING_NUMBER_OF_SHARDS, numOfShards)
170+
.put(IndexMetadata.SETTING_NUMBER_OF_REPLICAS, numOfReplicas)
171+
.put(IndexSettings.MODE.getKey(), IndexMode.TIME_SERIES)
172+
.putList(IndexMetadata.INDEX_ROUTING_PATH.getKey(), List.of(FIELD_DIMENSION_1))
173+
.put(
174+
IndexSettings.TIME_SERIES_START_TIME.getKey(),
175+
DateFieldMapper.DEFAULT_DATE_TIME_FORMATTER.formatMillis(Instant.ofEpochMilli(startTime).toEpochMilli())
176+
)
177+
.put(IndexSettings.TIME_SERIES_END_TIME.getKey(), "2106-01-08T23:40:53.384Z");
178+
179+
if (randomBoolean()) {
180+
settings.put(IndexMetadata.SETTING_INDEX_HIDDEN, randomBoolean());
181+
}
168182
assertAcked(
169183
client().admin()
170184
.indices()
171185
.prepareCreate(sourceIndex)
172-
.setSettings(
173-
Settings.builder()
174-
.put("index.number_of_shards", numOfShards)
175-
.put("index.number_of_replicas", numOfReplicas)
176-
.put(IndexSettings.MODE.getKey(), IndexMode.TIME_SERIES)
177-
.putList(IndexMetadata.INDEX_ROUTING_PATH.getKey(), List.of(FIELD_DIMENSION_1))
178-
.put(
179-
IndexSettings.TIME_SERIES_START_TIME.getKey(),
180-
DateFieldMapper.DEFAULT_DATE_TIME_FORMATTER.formatMillis(Instant.ofEpochMilli(startTime).toEpochMilli())
181-
)
182-
.put(IndexSettings.TIME_SERIES_END_TIME.getKey(), "2106-01-08T23:40:53.384Z")
183-
.build()
184-
)
186+
.setSettings(settings.build())
185187
.setMapping(
186188
FIELD_TIMESTAMP,
187189
"type=date",
@@ -769,7 +771,10 @@ private void assertRollupIndexSettings(String sourceIndex, String rollupIndex, G
769771
);
770772

771773
assertEquals(sourceIndex, indexSettingsResp.getSetting(rollupIndex, IndexMetadata.INDEX_ROLLUP_SOURCE_NAME_KEY));
772-
assertEquals(indexSettingsResp.getSetting(sourceIndex, "index.mode"), indexSettingsResp.getSetting(rollupIndex, "index.mode"));
774+
assertEquals(
775+
indexSettingsResp.getSetting(sourceIndex, IndexSettings.MODE.getKey()),
776+
indexSettingsResp.getSetting(rollupIndex, IndexSettings.MODE.getKey())
777+
);
773778

774779
assertNotNull(indexSettingsResp.getSetting(sourceIndex, IndexSettings.TIME_SERIES_START_TIME.getKey()));
775780
assertNotNull(indexSettingsResp.getSetting(rollupIndex, IndexSettings.TIME_SERIES_START_TIME.getKey()));
@@ -784,11 +789,11 @@ private void assertRollupIndexSettings(String sourceIndex, String rollupIndex, G
784789
indexSettingsResp.getSetting(sourceIndex, IndexSettings.TIME_SERIES_END_TIME.getKey()),
785790
indexSettingsResp.getSetting(rollupIndex, IndexSettings.TIME_SERIES_END_TIME.getKey())
786791
);
787-
assertNotNull(indexSettingsResp.getSetting(sourceIndex, "index.routing_path"));
788-
assertNotNull(indexSettingsResp.getSetting(rollupIndex, "index.routing_path"));
792+
assertNotNull(indexSettingsResp.getSetting(sourceIndex, IndexMetadata.INDEX_ROUTING_PATH.getKey()));
793+
assertNotNull(indexSettingsResp.getSetting(rollupIndex, IndexMetadata.INDEX_ROUTING_PATH.getKey()));
789794
assertEquals(
790-
indexSettingsResp.getSetting(sourceIndex, "index.routing_path"),
791-
indexSettingsResp.getSetting(rollupIndex, "index.routing_path")
795+
indexSettingsResp.getSetting(sourceIndex, IndexMetadata.INDEX_ROUTING_PATH.getKey()),
796+
indexSettingsResp.getSetting(rollupIndex, IndexMetadata.INDEX_ROUTING_PATH.getKey())
792797
);
793798

794799
assertNotNull(indexSettingsResp.getSetting(sourceIndex, IndexMetadata.SETTING_NUMBER_OF_SHARDS));
@@ -804,7 +809,11 @@ private void assertRollupIndexSettings(String sourceIndex, String rollupIndex, G
804809
indexSettingsResp.getSetting(sourceIndex, IndexMetadata.SETTING_NUMBER_OF_REPLICAS),
805810
indexSettingsResp.getSetting(rollupIndex, IndexMetadata.SETTING_NUMBER_OF_REPLICAS)
806811
);
807-
assertEquals("true", indexSettingsResp.getSetting(rollupIndex, "index.blocks.write"));
812+
assertEquals("true", indexSettingsResp.getSetting(rollupIndex, IndexMetadata.SETTING_BLOCKS_WRITE));
813+
assertEquals(
814+
indexSettingsResp.getSetting(sourceIndex, IndexMetadata.SETTING_INDEX_HIDDEN),
815+
indexSettingsResp.getSetting(rollupIndex, IndexMetadata.SETTING_INDEX_HIDDEN)
816+
);
808817
}
809818

810819
private AggregationBuilder buildAggregations(
@@ -869,9 +878,9 @@ private String createDataStream() throws Exception {
869878
String dataStreamName = randomAlphaOfLength(10).toLowerCase(Locale.getDefault());
870879
Template indexTemplate = new Template(
871880
Settings.builder()
872-
.put("index.number_of_shards", numOfShards)
873-
.put("index.number_of_replicas", numOfReplicas)
874-
.put("index.mode", "time_series")
881+
.put(IndexMetadata.SETTING_NUMBER_OF_SHARDS, numOfShards)
882+
.put(IndexMetadata.SETTING_NUMBER_OF_REPLICAS, numOfReplicas)
883+
.put(IndexSettings.MODE.getKey(), IndexMode.TIME_SERIES)
875884
.putList(IndexMetadata.INDEX_ROUTING_PATH.getKey(), List.of(FIELD_DIMENSION_1))
876885
.build(),
877886
new CompressedXContent("""

0 commit comments

Comments
 (0)