[role="xpack"] [[tutorial-manage-new-data-stream]] === Tutorial: Create a data stream with a lifecycle To create a data stream with a built-in lifecycle, follow these steps: . <> . <> . <> [discrete] [[create-index-template-with-lifecycle]] ==== Create an index template A data stream requires a matching <>. You can configure the data stream lifecycle by setting the `lifecycle` field in the index template the same as you do for mappings and index settings. You can define an index template that sets a lifecycle as follows: * Include the `data_stream` object to enable data streams. * Define the lifecycle in the template section or include a composable template that defines the lifecycle. * Use a priority higher than `200` to avoid collisions with built-in templates. See <>. You can use the <>. [source,console] -------------------------------------------------- PUT _index_template/my-index-template { "index_patterns": ["my-data-stream*"], "data_stream": { }, "priority": 500, "template": { "lifecycle": { "data_retention": "7d" } }, "_meta": { "description": "Template with data stream lifecycle" } } -------------------------------------------------- [discrete] [[create-data-stream-with-lifecycle]] ==== Create a data stream You can create a data stream in two ways: . By manually creating the stream using the <>. The stream's name must still match one of your template's index patterns. + [source,console] -------------------------------------------------- PUT _data_stream/my-data-stream -------------------------------------------------- // TEST[continued] . By <> that target the stream's name. This name must match one of your index template's index patterns. + [source,console] -------------------------------------------------- PUT my-data-stream/_bulk { "create":{ } } { "@timestamp": "2099-05-06T16:21:15.000Z", "message": "192.0.2.42 - - [06/May/2099:16:21:15 +0000] \"GET /images/bg.jpg HTTP/1.0\" 200 24736" } { "create":{ } } { "@timestamp": "2099-05-06T16:25:42.000Z", "message": "192.0.2.255 - - [06/May/2099:16:25:42 +0000] \"GET /favicon.ico HTTP/1.0\" 200 3638" } -------------------------------------------------- // TEST[continued] [discrete] [[retrieve-lifecycle-information]] ==== Retrieve lifecycle information You can use the <> to see the data stream lifecycle of your data stream and the <> to see the exact state of each backing index. [source,console] -------------------------------------------------- GET _data_stream/my-data-stream/_lifecycle -------------------------------------------------- // TEST[continued] The result will look like this: [source,console-result] -------------------------------------------------- { "data_streams": [ { "name": "my-data-stream",<1> "lifecycle": { "enabled": true, <2> "data_retention": "7d" <3> } } ] } -------------------------------------------------- <1> The name of your data stream. <2> Shows if the data stream lifecycle is enabled for this data stream. <3> The retention period of the data indexed in this data stream, this means that the data in this data stream will be kept at least for 7 days. After that {es} can delete it at its own discretion. If you want to see more information about how the data stream lifecycle is applied on individual backing indices use the <>: [source,console] -------------------------------------------------- GET .ds-my-data-stream-*/_lifecycle/explain -------------------------------------------------- // TEST[continued] The result will look like this: [source,console-result] -------------------------------------------------- { "indices": { ".ds-my-data-stream-2023.04.19-000001": { "index": ".ds-my-data-stream-2023.04.19-000001", <1> "managed_by_lifecycle": true, <2> "index_creation_date_millis": 1681918009501, "time_since_index_creation": "1.6m", <3> "lifecycle": { <4> "enabled": true, "data_retention": "7d" } } } } -------------------------------------------------- // TESTRESPONSE[skip:the result is for illustrating purposes only] <1> The name of the backing index. <2> If it is managed by the built-in data stream lifecycle. <3> Time since the index was created. <4> The lifecycle configuration that is applied on this backing index. ////////////////////////// [source,console] -------------------------------------------------- DELETE _data_stream/my-data-stream DELETE _index_template/my-index-template -------------------------------------------------- // TEST[continued] //////////////////////////