Skip to content

Commit 9eed965

Browse files
committed
add evolutionary overview of index management
1 parent 9f0c937 commit 9eed965

File tree

2 files changed

+65
-0
lines changed

2 files changed

+65
-0
lines changed
+65
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
## Index Management Evolution
2+
3+
Over multiple releases, APM Server has undergone several changes in how it manages indices. These changes have been implemented incrementally, making it challenging for users to track the evolution and understand the current state of index management. Index management is an aggregated term used for the following components:
4+
5+
1. Index Templates
6+
2. Component Templates
7+
3. Ingest Pipelines
8+
4. ILM Policies
9+
5. Data Streams
10+
11+
The primary goal of this document is to create detailed timeline that captures:
12+
13+
- Sequence of changes made to index management across different releases.
14+
- Retionale behind these changes.
15+
- Impact on users and their configurations, ie bugs that was introduced and fixed.
16+
17+
## Summary
18+
19+
1. elastic/apm-server
20+
- Initially, APM Server managed its own index templates and ILM policies.
21+
- With Version 8.0, index management shifted to Fleet, removing them from APM Server.
22+
- By Version 8.15, APM Server began relying on the ES `apm-data` plugin, further decoupling index management from the server itself.
23+
- Leveraging the `apm-data` plugin:
24+
- Simplifies setup for user of APM Server binary.
25+
- Replaces the need for installing any Fleet integration package for Elastic APM.
26+
- Simplify APM Server by removing the possibility of index templates being missing on startup.
27+
2. elastic/integrations
28+
- Previously, the APM Integrations package was responsible for index management in Fleet for APM Server.
29+
- Transitioning to the `apm-data` plugin required removing templates created by the integration to prevent conflict, as these templates has higher priority and cloud override those from the plugin.
30+
3. elastic/elasticsearch
31+
- The introduction of the `apm-data` plugin in ES "moved" index management one abstraction layer closer to the actual data layer.
32+
- Resulting in a more streamlined setup and reducing the dependency on external integrations for a standalone APM Server.
33+
34+
## 8.15.0 - (Release: Aug 2, 2024)
35+
36+
- **Jul 11, 2023**
37+
- The `apm-data` plugin was introduced in ES v8.12.0 ([#97546](https://github.com/elastic/elasticsearch/pull/97546))
38+
- **Nov 16, 2023**
39+
- For APM Server, the requirement to install the APM Integrations package was removed in v8.15.0 ([#12066](https://github.com/elastic/apm-server/pull/12066)).
40+
- **May 21, 2024**
41+
- The APM plugin in ES was only enabled as the default in v8.15.0 ([#108860](https://github.com/elastic/elasticsearch/pull/108860)).
42+
- **May 22, 2024**
43+
- PR [#108885](https://github.com/elastic/elasticsearch/pull/108885) ensures that templates installed via `apm-data` ES plugin should take precedence over the ones installed by the APM Integrations package.
44+
- **May 26, 2024**
45+
- In [#9949](https://github.com/elastic/integrations/pull/9949) all datastreams was removed from APM Integrations.
46+
47+
## 8.x - (Fixes & Improvements)
48+
49+
The switch to the ES apm plugin caused several issues for our customers.
50+
51+
- **Sep 11, 2024**
52+
- Lazy rollover on a data stream is not triggered when writing a document that is rerouted to another data stream, fixed in ES [#112781](https://github.com/elastic/elasticsearch/issues/112781).
53+
- **Sep 12, 2024**
54+
- Any old datastreams created before the switch would be `Unmanaged` because the datastream will never be updated with the DSL lifecycle.
55+
- New indices created for clusters which migrate to 8.15.0 don't have any lifecycle attached as existing datastream needs to be updated explicitly, see [Docs](https://www.elastic.co/guide/en/elasticsearch/reference/current/tutorial-manage-existing-data-stream.html).
56+
- PR [#112759](https://github.com/elastic/elasticsearch/pull/112759) fixes the fallback to legacy ILM policies when a datastream is updated.
57+
- **Oct 25, 2024**
58+
- With the new index templates, if you were not using any custom ILM Policy, APM data will obey to the new Data stream Lifecycle instead of ILM.
59+
- The default ILM Policies of APM are removed if not in use. If you defined a custom ILM policy via a `@custom` component template, the ILM policy will be preserved and preferred to DSL.
60+
- In [#115687](https://github.com/elastic/elasticsearch/pull/115687), we moved to adding default ILM policies and switch to ILM for apm-data plugin, instead of just having a fallback as outlined in [#112759](https://github.com/elastic/elasticsearch/pull/112759).
61+
- **Nov 5, 2024**
62+
- PR [#116219](https://github.com/elastic/elasticsearch/pull/116219) will trigger a lazy rollover of existing data streams regardless of whether the index template is being created or updated.
63+
- This ensures that the apm-data plugin will roll over data streams that were previously using the Fleet integration package.
64+
65+

dev_docs/index_management_v3.md

Whitespace-only changes.

0 commit comments

Comments
 (0)