A callback to send Ansible events and metrics to Datadog.
Ansible >=2.0
The following python libraries are required on the Ansible server:
datadogpy
pyyaml
(install withpip install pyyaml
)
Ansible <=1.9 is no longer supported by this callback. The latest compatible
version is tagged with 1.0.2
.
For Mac OS X users: If you're running an older version of OS-installed python (e.g. python 2.7.10), you may need to upgrade to a newer version of OpenSSL (pip install pyopenssl idna
).
Once the required libraries (see above) have been installed on the server:
- Copy
datadog_callback.py
to your playbook callback directory (by defaultcallback_plugins/
in your playbook's root directory). Create the directory if it doesn't exist. - You have 3 ways to set your API key. The callback will first use the environment variable, then the configuration file, then hostvars/vault.
Set the environment variable DATADOG_API_KEY
.
Optionally to send data to Datadog EU, you can set the environment
variable DATADOG_SITE=datadoghq.eu
.
To send data to a custom URL you can set the environment
variable DATADOG_URL=<custom URL>
.
Create a datadog_callback.yml
file alongside datadog_callback.py
,
and set its contents with your API key,
as following:
api_key: <your-api-key>
# optionally to send data to Datadog EU add the following setting
site: datadoghq.eu
# optionally to send data to a custom URL add the following setting
url: <custom URl>
You can specify a custom location for the configuration file using the
ANSIBLE_DATADOG_CALLBACK_CONF_FILE
environment file.
For example:
ANSIBLE_DATADOG_CALLBACK_CONF_FILE=/etc/datadog/callback_conf.yaml ansible-playbook ...
Alternatively you can use the hostvars of the host ansible is being run from (preferably in the vault file):
datadog_api_key: <your-api-key>
# Optionally to send data to Datadog EU add the following setting
datadog_site: datadoghq.eu
# Optionally to send data to a custom URL add the following setting
datadog_url: <custom URL>
- Be sure to whitelist the plugin in your ansible.cfg
[defaults]
callback_whitelist = datadog_callback
You should start seeing Ansible events and metrics appear on Datadog when your playbook is run.
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
Copyright (c) 2015 Datadog, Inc. See LICENSE for further details.