community.general.elastic callback – Create distributed traces for each Ansible task in Elastic APM

Note

This callback plugin is part of the community.general collection (version 9.4.0).

It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install community.general. You need further requirements to be able to use this callback plugin, see Requirements for details.

To use it in a playbook, specify: community.general.elastic.

New in community.general 3.8.0

Callback plugin

This plugin is a notification callback. It sends information for a playbook run to other applications, services, or systems. See Callback plugins for more information on callback plugins.

Synopsis

Requirements

The below requirements are needed on the local controller node that executes this callback.

  • elastic-apm (Python library)

Parameters

Parameter

Comments

apm_api_key

string

Use the APM API key

Configuration:

apm_secret_token

string

Use the APM server token

Configuration:

apm_server_url

string

Use the APM server and its environment variables.

Configuration:

apm_service_name

string

The service name resource attribute.

Default: "ansible"

Configuration:

apm_verify_server_cert

boolean

Verifies the SSL certificate if an HTTPS connection.

Choices:

  • false

  • true ← (default)

Configuration:

hide_task_arguments

boolean

Hide the arguments for a task.

Choices:

  • false ← (default)

  • true

Configuration:

traceparent

string

The W3C Trace Context header traceparent.

Configuration:

Examples

examples: |
  Enable the plugin in ansible.cfg:
    [defaults]
    callbacks_enabled = community.general.elastic

  Set the environment variable:
    export ELASTIC_APM_SERVER_URL=<your APM server URL)>
    export ELASTIC_APM_SERVICE_NAME=your_service_name
    export ELASTIC_APM_API_KEY=your_APM_API_KEY

Authors

  • Victor Martinez (@v1v)

Hint

Configuration entries for each entry type have a low to high priority order. For example, a variable that is lower in the list will override a variable that is higher up.