Skip to content

Commit 14c21f2

Browse files
authored
Add missing traces ilm policy for OTel traces data streams (#119449)
1 parent cb73bc0 commit 14c21f2

File tree

7 files changed

+52
-3
lines changed

7 files changed

+52
-3
lines changed

docs/changelog/119449.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 119449
2+
summary: Add missing traces ilm policy for OTel traces data streams
3+
area: Data streams
4+
type: bug
5+
issues: []

test/framework/src/main/java/org/elasticsearch/test/rest/ESRestTestCase.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -782,6 +782,7 @@ protected Set<String> preserveILMPolicyIds() {
782782
"profiling-60-days@lifecycle",
783783
"synthetics",
784784
"synthetics@lifecycle",
785+
"traces@lifecycle",
785786
"7-days-default",
786787
"7-days@lifecycle",
787788
"30-days-default",
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"phases": {
3+
"hot": {
4+
"actions": {
5+
"rollover": {
6+
"max_primary_shard_size": "50gb",
7+
"max_age": "30d"
8+
}
9+
}
10+
}
11+
},
12+
"_meta": {
13+
"description": "default policy for the traces index template installed by x-pack",
14+
"managed": true
15+
},
16+
"deprecated": ${xpack.stack.template.deprecated}
17+
}

x-pack/plugin/core/template-resources/src/main/resources/traces@settings.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
"template": {
33
"settings": {
44
"index": {
5+
"lifecycle": {
6+
"name": "traces@lifecycle"
7+
},
58
"codec": "best_compression",
69
"mapping": {
710
"ignore_malformed": true

x-pack/plugin/otel-data/src/yamlRestTest/resources/rest-api-spec/test/20_traces_tests.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,3 +120,23 @@ Conflicting attribute types:
120120
- is_true: $datastream-backing-index
121121
- match: { .$datastream-backing-index.settings.index.sort.field.0: "resource.attributes.host.name" }
122122
- match: { .$datastream-backing-index.settings.index.sort.field.1: "@timestamp" }
123+
124+
---
125+
traces@lifecycle:
126+
- do:
127+
bulk:
128+
index: traces-generic.otel-default
129+
refresh: true
130+
body:
131+
- create: {}
132+
- '{"@timestamp":"2024-07-18T14:49:33.467654000Z","data_stream":{"dataset":"generic.otel","namespace":"default"}, "span_id":"1"}'
133+
- is_false: errors
134+
- do:
135+
indices.get_data_stream:
136+
name: traces-generic.otel-default
137+
- set: { data_streams.0.indices.0.index_name: datastream-backing-index }
138+
- do:
139+
indices.get_settings:
140+
index: $datastream-backing-index
141+
- is_true: $datastream-backing-index
142+
- match: { .$datastream-backing-index.settings.index.lifecycle.name: "traces@lifecycle" }

x-pack/plugin/stack/src/main/java/org/elasticsearch/xpack/stack/StackTemplateRegistry.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ public class StackTemplateRegistry extends IndexTemplateRegistry {
9090
//////////////////////////////////////////////////////////
9191
public static final String TRACES_MAPPINGS_COMPONENT_TEMPLATE_NAME = "traces@mappings";
9292
public static final String TRACES_SETTINGS_COMPONENT_TEMPLATE_NAME = "traces@settings";
93+
public static final String TRACES_ILM_POLICY_NAME = "traces@lifecycle";
9394

9495
//////////////////////////////////////////////////////////
9596
// Synthetics components (for matching synthetics-*-* indices)
@@ -241,6 +242,7 @@ private void updateEnabledSetting(boolean newValue) {
241242
new LifecyclePolicyConfig(LOGS_ILM_POLICY_NAME, "/logs@lifecycle.json", ADDITIONAL_TEMPLATE_VARIABLES),
242243
new LifecyclePolicyConfig(METRICS_ILM_POLICY_NAME, "/metrics@lifecycle.json", ADDITIONAL_TEMPLATE_VARIABLES),
243244
new LifecyclePolicyConfig(SYNTHETICS_ILM_POLICY_NAME, "/synthetics@lifecycle.json", ADDITIONAL_TEMPLATE_VARIABLES),
245+
new LifecyclePolicyConfig(TRACES_ILM_POLICY_NAME, "/traces@lifecycle.json", ADDITIONAL_TEMPLATE_VARIABLES),
244246
new LifecyclePolicyConfig(ILM_7_DAYS_POLICY_NAME, "/7-days@lifecycle.json", ADDITIONAL_TEMPLATE_VARIABLES),
245247
new LifecyclePolicyConfig(ILM_30_DAYS_POLICY_NAME, "/30-days@lifecycle.json", ADDITIONAL_TEMPLATE_VARIABLES),
246248
new LifecyclePolicyConfig(ILM_90_DAYS_POLICY_NAME, "/90-days@lifecycle.json", ADDITIONAL_TEMPLATE_VARIABLES),

x-pack/plugin/stack/src/test/java/org/elasticsearch/xpack/stack/StackTemplateRegistryTests.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@ public void testThatNonExistingPoliciesAreAddedImmediately() throws Exception {
174174
equalTo(StackTemplateRegistry.LOGS_ILM_POLICY_NAME),
175175
equalTo(StackTemplateRegistry.METRICS_ILM_POLICY_NAME),
176176
equalTo(StackTemplateRegistry.SYNTHETICS_ILM_POLICY_NAME),
177+
equalTo(StackTemplateRegistry.TRACES_ILM_POLICY_NAME),
177178
equalTo(StackTemplateRegistry.ILM_7_DAYS_POLICY_NAME),
178179
equalTo(StackTemplateRegistry.ILM_30_DAYS_POLICY_NAME),
179180
equalTo(StackTemplateRegistry.ILM_90_DAYS_POLICY_NAME),
@@ -197,7 +198,7 @@ public void testThatNonExistingPoliciesAreAddedImmediately() throws Exception {
197198

198199
ClusterChangedEvent event = createClusterChangedEvent(Collections.emptyMap(), nodes);
199200
registry.clusterChanged(event);
200-
assertBusy(() -> assertThat(calledTimes.get(), equalTo(8)));
201+
assertBusy(() -> assertThat(calledTimes.get(), equalTo(9)));
201202
}
202203

203204
public void testPolicyAlreadyExists() {
@@ -206,7 +207,7 @@ public void testPolicyAlreadyExists() {
206207

207208
Map<String, LifecyclePolicy> policyMap = new HashMap<>();
208209
List<LifecyclePolicy> policies = registry.getLifecyclePolicies();
209-
assertThat(policies, hasSize(8));
210+
assertThat(policies, hasSize(9));
210211
policies.forEach(p -> policyMap.put(p.getName(), p));
211212

212213
client.setVerifier((action, request, listener) -> {
@@ -277,7 +278,7 @@ public void testPolicyAlreadyExistsButDiffers() throws IOException {
277278
Map<String, LifecyclePolicy> policyMap = new HashMap<>();
278279
String policyStr = "{\"phases\":{\"delete\":{\"min_age\":\"1m\",\"actions\":{\"delete\":{}}}}}";
279280
List<LifecyclePolicy> policies = registry.getLifecyclePolicies();
280-
assertThat(policies, hasSize(8));
281+
assertThat(policies, hasSize(9));
281282
policies.forEach(p -> policyMap.put(p.getName(), p));
282283

283284
client.setVerifier((action, request, listener) -> {

0 commit comments

Comments
 (0)