Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
95 lines (64 sloc) 2.93 KB

ansible-datadog-callback

A callback to send Ansible events and metrics to Datadog.

Requirements

Ansible >=2.0

The following python libraries are required on the Ansible server:

  • datadogpy
  • pyyaml (install with pip install pyyaml)
  • packaging (install with pip install packaging)

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

Installation

Once the required libraries (see above) have been installed on the server:

  1. Copy datadog_callback.py to your playbook callback directory (by default callback_plugins/ in your playbook's root directory). Create the directory if it doesn't exist.
  2. You have 3 ways to set your API key. The callback will first use the environment variable, then the configuration file, then hostvars/vault.
Using environment variable

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

Using a yaml file

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 ...
Using ansible hostvars and vault

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>
  1. 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.

Contributing to ansible-datadog-callback

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Copyright

Copyright (c) 2015 Datadog, Inc. See LICENSE for further details.

You can’t perform that action at this time.