Upgrade to APM Server version 7.7

edit

Version 7.7 adds a new apm_remove_span_metadata processor to the default apm ingest pipeline. To save storage, this processor removes span metadata fields, like host, kubernetes, and container, that are already available on the parent transaction.

While this processor is new, the functionality is not. In previous versions of APM Server, this functionality was hardcoded internally. However, there are use cases for including this metadata in span documents. Switching this metadata cleanup functionality to a processor allows you to define the span metadata that is important in your architecture.

Failing to follow the upgrade steps will result in increased span metadata ingestion when upgrading to version 7.7.

Upgrade Steps

edit
  1. In order to avoid breaking custom pipeline definitions, pipelines are not overwritten when restarting APM Server. Enable pipeline overwriting by setting register.ingest.pipeline.overwrite to true.
  2. Copy any custom pipelines you’ve created or altered to the apm pipeline definition file, located at ingest/pipeline/definition.json.
  3. Restart APM Server.

An alternate upgrade method is to use the setup command. This upgrade method can be useful if you’re using an output other than Elasticsearch. In this case, you can use the command line to disable the active output and point APM Server at your Elasticsearch cluster. Then, run the setup --pipeline command to register the pipeline definitions in definition.json.

Here’s an example of what this might look like, if you typically output to Logstash:

apm-server setup --pipelines \
    -E apm-server.register.ingest.pipeline.overwrite=true \
    -E output.logstash.enabled=false \
    -E output.elasticsearch.enabled=true \
    -E output.elasticsearch.hosts=["http://username:password@elasticsearch:9200"]

After running setup, restart APM Server.