Configure APM instrumentation

edit

This documentation refers to configuring the standalone (legacy) APM Server. This method of running APM Server will be deprecated and removed in a future release. Please consider upgrading to Fleet and the APM integration.

Libbeat uses the Elastic APM Go Agent to instrument its publishing pipeline. Currently, only the Elasticsearch output is instrumented. To gain insight into the performance of APM Server, you can enable this instrumentation and send trace data to APM Server.

Example configuration with instrumentation enabled:

instrumentation:
  enabled: true
  environment: production
  hosts:
    - "http://localhost:8200"
  api_key: L5ER6FEvjkmlfalBealQ3f3fLqf03fazfOV

Configuration options

edit

You can specify the following options in the instrumentation section of the apm-server.yml config file:

enabled
edit

Set to true to enable instrumentation of APM Server. Defaults to false.

environment
edit

Set the environment in which APM Server is running, for example, staging, production, dev, etc. Environments can be filtered in the APM app.

hosts
edit

The APM Server hosts to report instrumentation data to. Defaults to http://localhost:8200.

api_key
edit

API key used to secure communication with the APM Server(s). If api_key is set then secret_token will be ignored.

secret_token
edit

Secret token used to secure communication with the APM Server(s).

profiling.cpu.enabled
edit

Set to true to enable CPU profiling, where profile samples are recorded as events.

This feature is experimental.

profiling.cpu.interval
edit

Configure the CPU profiling interval. Defaults to 60s.

This feature is experimental.

profiling.cpu.duration
edit

Configure the CPU profiling duration. Defaults to 10s.

This feature is experimental.

profiling.heap.enabled
edit

Set to true to enable heap profiling.

This feature is experimental.

profiling.heap.interval
edit

Configure the heap profiling interval. Defaults to 60s.

This feature is experimental.