Skip to content

Commit b84b16c

Browse files
authored
Add missing traces ilm policy for OTel traces data streams (elastic#119449) (elastic#119823)
1 parent f0b80fd commit b84b16c

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
@@ -802,6 +802,7 @@ protected Set<String> preserveILMPolicyIds() {
802802
"profiling-60-days@lifecycle",
803803
"synthetics",
804804
"synthetics@lifecycle",
805+
"traces@lifecycle",
805806
"7-days-default",
806807
"7-days@lifecycle",
807808
"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
@@ -101,6 +101,7 @@ public class StackTemplateRegistry extends IndexTemplateRegistry {
101101
//////////////////////////////////////////////////////////
102102
public static final String TRACES_MAPPINGS_COMPONENT_TEMPLATE_NAME = "traces@mappings";
103103
public static final String TRACES_SETTINGS_COMPONENT_TEMPLATE_NAME = "traces@settings";
104+
public static final String TRACES_ILM_POLICY_NAME = "traces@lifecycle";
104105

105106
//////////////////////////////////////////////////////////
106107
// Synthetics components (for matching synthetics-*-* indices)
@@ -254,6 +255,7 @@ private void updateEnabledSetting(boolean newValue) {
254255
new LifecyclePolicyConfig(LOGS_ILM_POLICY_NAME, "/logs@lifecycle.json", ADDITIONAL_TEMPLATE_VARIABLES),
255256
new LifecyclePolicyConfig(METRICS_ILM_POLICY_NAME, "/metrics@lifecycle.json", ADDITIONAL_TEMPLATE_VARIABLES),
256257
new LifecyclePolicyConfig(SYNTHETICS_ILM_POLICY_NAME, "/synthetics@lifecycle.json", ADDITIONAL_TEMPLATE_VARIABLES),
258+
new LifecyclePolicyConfig(TRACES_ILM_POLICY_NAME, "/traces@lifecycle.json", ADDITIONAL_TEMPLATE_VARIABLES),
257259
new LifecyclePolicyConfig(ILM_7_DAYS_POLICY_NAME, "/7-days@lifecycle.json", ADDITIONAL_TEMPLATE_VARIABLES),
258260
new LifecyclePolicyConfig(ILM_30_DAYS_POLICY_NAME, "/30-days@lifecycle.json", ADDITIONAL_TEMPLATE_VARIABLES),
259261
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
@@ -189,6 +189,7 @@ public void testThatNonExistingPoliciesAreAddedImmediately() throws Exception {
189189
equalTo(StackTemplateRegistry.LOGS_ILM_POLICY_NAME),
190190
equalTo(StackTemplateRegistry.METRICS_ILM_POLICY_NAME),
191191
equalTo(StackTemplateRegistry.SYNTHETICS_ILM_POLICY_NAME),
192+
equalTo(StackTemplateRegistry.TRACES_ILM_POLICY_NAME),
192193
equalTo(StackTemplateRegistry.ILM_7_DAYS_POLICY_NAME),
193194
equalTo(StackTemplateRegistry.ILM_30_DAYS_POLICY_NAME),
194195
equalTo(StackTemplateRegistry.ILM_90_DAYS_POLICY_NAME),
@@ -212,7 +213,7 @@ public void testThatNonExistingPoliciesAreAddedImmediately() throws Exception {
212213

213214
ClusterChangedEvent event = createClusterChangedEvent(Collections.emptyMap(), nodes);
214215
registry.clusterChanged(event);
215-
assertBusy(() -> assertThat(calledTimes.get(), equalTo(8)));
216+
assertBusy(() -> assertThat(calledTimes.get(), equalTo(9)));
216217
}
217218

218219
public void testPolicyAlreadyExists() {
@@ -221,7 +222,7 @@ public void testPolicyAlreadyExists() {
221222

222223
Map<String, LifecyclePolicy> policyMap = new HashMap<>();
223224
List<LifecyclePolicy> policies = registry.getLifecyclePolicies();
224-
assertThat(policies, hasSize(8));
225+
assertThat(policies, hasSize(9));
225226
policies.forEach(p -> policyMap.put(p.getName(), p));
226227

227228
client.setVerifier((action, request, listener) -> {
@@ -292,7 +293,7 @@ public void testPolicyAlreadyExistsButDiffers() throws IOException {
292293
Map<String, LifecyclePolicy> policyMap = new HashMap<>();
293294
String policyStr = "{\"phases\":{\"delete\":{\"min_age\":\"1m\",\"actions\":{\"delete\":{}}}}}";
294295
List<LifecyclePolicy> policies = registry.getLifecyclePolicies();
295-
assertThat(policies, hasSize(8));
296+
assertThat(policies, hasSize(9));
296297
policies.forEach(p -> policyMap.put(p.getName(), p));
297298

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

0 commit comments

Comments
 (0)