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 6.6.2).

You might already have this collection installed if you are using the ansible package. 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

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:

  • Environment variable: ELASTIC_APM_API_KEY

apm_secret_token

string

Use the APM server token

Configuration:

  • Environment variable: ELASTIC_APM_SECRET_TOKEN

apm_server_url

string

Use the APM server and its environment variables.

Configuration:

  • Environment variable: ELASTIC_APM_SERVER_URL

apm_service_name

string

The service name resource attribute.

Default: "ansible"

Configuration:

  • Environment variable: ELASTIC_APM_SERVICE_NAME

apm_verify_server_cert

boolean

Verifies the SSL certificate if an HTTPS connection.

Choices:

  • false

  • true ← (default)

Configuration:

  • Environment variable: ELASTIC_APM_VERIFY_SERVER_CERT

hide_task_arguments

boolean

Hide the arguments for a task.

Choices:

  • false ← (default)

  • true

Configuration:

  • Environment variable: ANSIBLE_OPENTELEMETRY_HIDE_TASK_ARGUMENTS

traceparent

string

The W3C Trace Context header traceparent.

Configuration:

  • Environment variable: TRACEPARENT

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.