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

Note

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

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.

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

New in version 3.8.0: of community.general

Synopsis

Requirements

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

  • elastic-apm (Python library)

Parameters

Parameter Choices/Defaults Configuration Comments
apm_api_key
string
env:ELASTIC_APM_API_KEY
Use the APM API key
apm_secret_token
string
env:ELASTIC_APM_SECRET_TOKEN
Use the APM server token
apm_server_url
string
env:ELASTIC_APM_SERVER_URL
Use the APM server and its environment variables.
apm_service_name
string
Default:
"ansible"
env:ELASTIC_APM_SERVICE_NAME
The service name resource attribute.
apm_verify_server_cert
boolean
    Choices:
  • no
  • yes ←
env:ELASTIC_APM_VERIFY_SERVER_CERT
Verifies the SSL certificate if an HTTPS connection.
hide_task_arguments
boolean
    Choices:
  • no ←
  • yes
env:ANSIBLE_OPENTELEMETRY_HIDE_TASK_ARGUMENTS
Hide the arguments for a task.
traceparent
string
env: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