Skip to content

[APM] Document custom ingest pipelines #1226

Closed
elastic/apm-server
#8908
@bmorelli25

Description

@bmorelli25

Related dev issue

Background

As of 8.0: The Fleet-managed ingest policy will be overwritten on reinstall/upgrade. Users can define their own custom ingest pipeline if needed, but they need to make sure that they also call the package-provided pipeline.

Details

  1. Fleet adds ingest pipelines for the APM integration using index templates that include pipeline index settings.
  2. Elasticsearch uses the data view in these index templates to match pipelines to APM data streams.
    As an example, the index template traces-apm, matches traces-apm-* data streams and assigns the "traces-apm-7.16.0" pipeline:

Screen Shot 2021-10-29 at 1 15 07 PM

  1. This Fleet-managed index template ⬆️ will be overwritten on reinstall/upgrade.

Assuming the above is correct, then I see three scenarios:

Workarounds

  1. A user can edit the Fleet-managed index template to point to a new pipeline, ensuring the following are true:
    a. ensure the package-provided pipeline is also called
    b. know that the index template will be overwritten on install/upgrade

  2. A user can edit the default pipeline directly, like the "traces-apm-7.16.0" pipeline, ensuring the following are true:
    a. the package-provided pipelines are still included (first!)
    b. know that their edits will be overwritten on install/upgrade

Documentaiton ideas

The following snippet was removed from elastic/apm-server#6940.

[float]
[id="custom-pipelines{append-legacy}"]
=== Add a custom ingest pipeline

IMPORTANT: Fleet-managed index templates are overwritten on reinstall/upgrade.
Any customizations to index pipelines are not persisted when upgrading.
When editing {fleet}-managed index templates, ensure that the package-provided pipeline is still called.

// tutorial would be something like this:
. Find the pipeline **Stack Management** > **Index Management** > **Index Templates** > `traces-apm`.
. **Settings** >
+
[source,json]
----
{
  "index": {
    "default_pipeline": "traces-apm-{version}"
  }
}
----

// Edit default
. **Stack Management** > **Ingest Pipelines** > Search for +traces-apm-{version}+.
. **Manage** > **Edit** to edit the default pipeline.

// Add custom pipeline
. **Stack Management** > **Ingest Pipelines** > **Create pipeline**
. Create it
. **Stack Management** > **Ingest Pipelines** > Search for +traces-apm-{version}+.
. **Manage** > **Edit** to edit the default pipeline. Add the new pipeline as the final step.

Links 'n stuff

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions