Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms

Select Status


datadog (81) Versions 2.19.0

Installs/Configures datadog components

cookbook 'datadog', '= 2.19.0', :supermarket
cookbook 'datadog', '= 2.19.0'
knife supermarket install datadog
knife supermarket download datadog
Quality 50%

Where to Find the Code

To submit issues and patches please visit
The code is licensed under the Apache License 2.0 (see LICENSE for details).

Chef cookbook
Build Status
Circle CI
Coverage Status
GitHub forks
GitHub stars
Build Status

Datadog Cookbook

Chef recipes to deploy Datadog's components and configuration automatically.

This cookbook includes support for:

  • Datadog Agent version 6.0 and up: please refer to the dedicated section and the inline docs for more details on how to use it
  • Datadog Agent version 5.x

Log collection is now available with Agent v6, please refer to the inline docs to enable it.

Note: This README may refer to features that are not released yet. Please check the README of the
git tag/the gem version you're using for your version's documentation


  • chef >= 10.14


  • Amazon Linux
  • CentOS
  • Debian
  • RedHat
  • Scientific Linux
  • Ubuntu
  • Windows (requires chef >= 12.0)
  • SUSE (requires chef >= 13.3)


The following Opscode cookbooks are dependencies:

  • apt
  • chef_handler
  • windows
  • yum

Note for Chef 11 users: please use these additional dependency version contraints for compatibility with Chef 11:

cookbook 'apt', '< 4.0'
cookbook 'chef_handler', '< 2.0'
cookbook 'windows', '< 2.0'
cookbook 'yum', '~> 3.0'

(in Berkshelf/Librarian format)



Just a placeholder for now, when we have more shared components they will probably live there.


Installs the Datadog agent on the target system, sets the API key, and start the service to report on the local system metrics

Notes for Windows:

  • With Chef >= 12.6 and the windows cookbook >= 1.39.0, Agent upgrades are known to fail. For Chef>=12.6 users on Windows, we recommend pinning the windows cookbook to a lower version (~> 1.38.0 for instance).

If that's not an option, a known workaround is to use the remove-dd-agent recipe (since the 2.5.0 version of the present cookbook) to uninstall the Agent
prior to any Agent upgrade.

  • Because of changes in the Windows Agent packaging and install in version 5.12.0, when upgrading the Agent from versions <= 5.10.1 to versions >= 5.12.0, please set the windows_agent_use_exe attribute to true.

Once the upgrade is complete, you can leave the attribute to its default value (false).

For more information on these Windows packaging changes, see the related docs on the dd-agent wiki.


Installs the chef-handler-datadog gem and invokes the handler at the end of a Chef run to report the details back to the newsfeed.


Installs the language-specific libraries to interact with dogstatsd.

  • Note for Chef >= 13 users: the datadog::dogstatsd-python recipe is not compatible with Chef >= 13, as it relies on a resource that was removed in Chef 13.0. To install the dogstatsd-python library with Chef, please add a dependency on the poise-python cookbook to your custom/wrapper cookbook, and use the following resource: ruby python_package 'dogstatsd-python' # assumes that python and pip are installed For more advanced usage, please refer to the poise-python cookbook documentation


Installs the language-specific libraries for application Traces (APM).

  • Note for Chef >= 13 users: the datadog::ddtrace-python recipe is not compatible with Chef >= 13, as it relies on a resource that was removed in Chef 13.0. To install the ddtrace-python library with Chef, please add a dependency on the poise-python cookbook to your custom/wrapper cookbook, and use the following resource: ruby python_package 'ddtrace' # assumes that python and pip are installed For more advanced usage, please refer to the poise-python cookbook documentation


There are many other integration-specific recipes, that are meant to assist in deploying the correct agent configuration files and dependencies for a given integration.



The datadog_monitor resource will help you to enable Agent integrations.

The default action :add enables the integration by filling a configuration file for the integration with the values provided to the resource, setting the correct permissions on that file, and restarting the Agent.

The :remove action disables an integration.


datadog_monitor 'name' do
  init_config                       Hash # default value: {}
  instances                         Array # default value: []
  logs                              Array # default value: []
  use_integration_template          true, false # default value: false
  action                            Symbol # defaults to :add if not specified


  • :add Default. Enable the integration.
  • :remove Use this action to disable the integration.


  • 'name' is the name of the Agent integration to configure and enable
  • instances are the fields used to fill values under the instances section in the integration configuration file.
  • init_config are the fields used to fill values under the the init_config section in the integration configuration file.
  • logs are the fields used to fill values under the the logs section in the integration configuration file.
  • use_integration_template: set to true (recommended) to use a default template that simply writes the values of instances, init_configand logs in YAML under their respective YAML keys. (defaults to false for backward compatibility, will default to true in a future major version of the cookbook)


This example enables the ElasticSearch integration by using the datadog_monitor resource. It provides the instance configuration (in this case: the url to connect to ElasticSearch) and set the use_integration_template flag to use the default configuration template.

Note that the Agent installation needs to be earlier in the run list.

include_recipe 'datadog::dd-agent'

datadog_monitor 'elastic'
  instances  [{'url' => 'http://localhost:9200'}]
  use_integration_template true

See recipes/ for many examples using the datadog_monitor resource.


Agent 6 Support

Please note the cookbook now supports installing both Agent v5 and Agent v6 of the Datadog Agent on Linux (since v2.14.0) and Windows (since v2.15.0). By default versions <=2.x of the cookbook will default to install Agent5, you may however override this behavior with the node['datadog']['agent6'] attribute.

'datadog' => {
'agent6' => true

Note: to upgrade to Agent 6 on a node with Agent 5 already installed, you also have to pin agent6_version to a v6 version (recommended), or set agent6_package_action to 'upgrade'.

Additional attributes are available to have finer control over how you install Agent 6. These are Agent 6 counterparts to several well known Agent 5 attributes (code here):
* agent6_version: allows you to pin the agent version (recommended).
* agent6_package_action: defaults to 'install', may be set to 'upgrade' to automatically upgrade to latest (not recommended, we recommend pinning to a version with agent6_version and change that version to upgrade).
* agent6_aptrepo: desired APT repo for the agent. Defaults to
* agent6_aptrepo_dist: desired distribution for the APT repo. Defaults to stable
* agent6_yumrepo: desired YUM repo for the agent. Defaults to

Please review the attributes/default.rb file (at the version of the cookbook you use) for the list and usage of the attributes used by the cookbook.

For general information on the Datadog Agent 6, please refer to the datadog-agent repo.

Windows Agent v6 installation

Starting with version >= 6.11, the Windows Agent v6 must be installed with datadog
cookbook version >= 2.18.0.

This is due to the Agent v6 running with an unprivileged user on Windows
since 6.11. However, prior to 2.18.0, the datadog cookbook was enforcing
Administrators privileges to the Datadog Agent directories and files.

Extra configuration

Should you wish to add additional elements to the Agent v6 configuration file
(typically datadog.yaml) that are not directly available
as attributes of the cookbook, you may use the node['datadog']['extra_config']
attribute. This attribute is a hash and will be marshaled into the configuration
file accordingly.


   'datadog' => {
     'extra_config' => {
        'secret_backend_command' => '/sbin/local-secrets'

This example will set the field secret_backend_command in the configuration
file datadog.yaml.


  1. Add this cookbook to your Chef Server, either by installing with knife or by adding it to your Berksfile: cookbook 'datadog', '~> 2.14.0'
  2. Add your API Key either:
    • as a node attribute via an environment or role, or
    • as a node attribute by declaring it in another cookbook at a higher precedence level, or
    • in the node run_state by setting node.run_state['datadog']['api_key'] in another cookbook preceding datadog's recipes in the run_list. This approach has the benefit of not storing the credential in clear text on the Chef Server.
  3. Create an 'application key' for chef_handler here, and add it as a node attribute or in the run state, as in Step #2.

NB: if you're using the run state to store the api and app keys you need to set them at compile time before datadog::dd-handler in the run list.

  1. Enable Agent integrations by including their recipes and configuration details in your role’s run-list and attributes. Note that you can also create additional integrations recipes by using the datadog_monitor resource.
  2. Associate the recipes with the desired roles, i.e. "role:chef-client" should contain "datadog::dd-handler" and a "role:base" should start the agent with "datadog::dd-agent". Here's an example role with both recipes plus the MongoDB integration enabled. ``` name 'example' description 'Example role using DataDog'

'datadog' => {
'agent6' => true,
'api_key' => 'api_key',
'application_key' => 'app_key',
'mongo' => {
'instances' => [
{'host' => 'localhost', 'port' => '27017'}

run_list %w(
NB: set the
agent6attribute tofalsein thedatadog` hash if you'd like to install Agent v5.

  1. Wait until chef-client runs on the target node (or trigger chef-client manually if you're impatient)

We are not making use of data_bags in this recipe at this time, as it is unlikely that you will have more than one API key and one application key.

For more deployment details, visit the Datadog Documentation site.

AWS OpsWorks Chef Deployment

  1. Add Chef Custom JSON:
    {"datadog":{"agent6": true, "api_key": "<API_KEY>", "application_key": "<APP_KEY>"}}

  2. Include the recipe in install-lifecycle recipe:
    include_recipe 'datadog::dd-agent'


2.19.0 / 2019-05-21

  • [FEATURE] Provide custom credentials for the Windows Datadog Agent service. #618 @remeh

2.18.0 / 2019-03-18

Note for Windows users: since Agent v6.11, datadog >= 2.18.0 is
necessary (see README)

  • [FEATURE] Let the Windows installer set the permissions on Agent directories and files. #588 @remeh
  • [BUGFIX] Use Upstart service manager for Ubuntu <15.04. See #551 @rposborne
  • [MISC] Deprecation log for recipes using easy_install. See #585 @remeh
  • [MISC] Add optional NGINX monitor attributes. See #564 @spencermpeterson
  • [DOCS] Add an example for the extra_config field. See #586 @remeh

2.17.0 / 2019-03-01

2.16.1 / 2018-07-16

  • [FEATURE] Add support for no_proxy Agent v6 option. See #549 @stonith
  • [MISC] Fix typo in documentation of enable_logs_agent option. See #544 @rsheyd

2.16.0 / 2018-05-14

  • [FEATURE] Support data scrubber config fields for process agent. See #540 @moisesbotarro
  • [MISC] Document easy_install_package removal from Chef 13+. See #533 @olivielpeau

2.15.0 / 2018-03-21

This release adds full support of Agent 6 on Windows.

  • [FEATURE] Support passing arbitrary config options to Datadog handler. See #532 @olivielpeau
  • [FEATURE] Update version logic for Agent 6 on Windows. See #530 @olivielpeau
  • [FEATURE] Add support of APM options for Agent 6.0 and clean up beta workarounds. See #527 @olivielpeau
  • [FEATURE] Set windows values for agent 6. See #525 @rlaveycal
  • [OPTIMIZE] Update Agent 6 configuration for v6.0.0 stable and higher. See #531 @olivielpeau
  • [OPTIMIZE] Update deprecated logs_enabled attribute. See #513 & #526 @eplanet
  • [OPTIMIZE] Allow configuring tags_submission_retries option on handler. See #508 @olivielpeau
  • [BUGFIX] Force windows_service to restart in order to cope with restart error. See #520 @stefanwb
  • [BUGFIX] Fix default datadog.yaml template for Windows. See #528 @olivielpeau

2.14.1 / 2018-03-05

  • [BUGFIX] Fix service provider on Amazon Linux < 2.0. See #523 @olivielpeau
  • [OPTIMIZE] Remove reference to old expired APT key, keep only newer key. See #522 @olivielpeau

2.14.0 / 2018-02-27

  • [FEATURE] Enable log collection with chef. See #498 @NBParis
  • [FEATURE] Support process agent configuration in datadog.yaml. See #511 @conorbranagan
  • [FEATURE] Add recipe for WMI check. See #499 @mlcooper
  • [FEATURE] Add updated metrics for Cassandra 2.x and 3.x. See #516 @olivielpeau
  • [FEATURE] Update component for APT repo, and URL for YUM for Agent6. See #515 @olivielpeau
  • [FEATURE] Consul: support self leader check and network latency checks. See #501 @azuretek
  • [BUGFIX] RHEL/Amazon linux: add service provider hint for Agent6 + upstart. See #518 @olivielpeau

2.13.0 / 2017-12-01

2.12.0 / 2017-09-28

2.11.0 / 2017-09-21

2.10.1 / 2017-05-31

2.10.0 / 2017-05-08

2.9.1 / 2017-03-28

  • [BUGFIX] Keep main agent config in Main section when enable_trace_agent is true, #419 @bflad

2.9.0 / 2017-03-24

This release should be fully compatible with Chef 13.

Note for Windows users: Upgrading to Agent versions >= 5.12.0 should be done using the EXE installer
(see README)

  • [FEATURE] Allow configuration of Traces settings in datadog.conf, #402 @mlcooper
  • [FEATURE] Support upgrades to Windows Agents >= 5.12.0 (EXE installer option), #410 @olivielpeau
  • [FEATURE] Add send_policy_tags option for handler, #398 @olivielpeau
  • [FEATURE] Add attribute to customize the gem server of the handler, #413 @dsalvador-dsalvador
  • [OPTIMIZE] Rename package[apt-transport-https] resource for Chef 13 compatibility, #388 @bai
  • [OPTIMIZE] Guard new GPG key from always being downloaded, #404 @iancward
  • [MISC] Loosen constraint on chef_handler cookbook version, #414 @olivielpeau
  • [MISC] Add constraint on windows cookbook version, #415 @olivielpeau

2.8.1 / 2017-02-03

2.8.0 / 2017-01-25

2.7.0 / 2016-11-15

  • [FEATURE] Add dd-agent user to docker group in docker/docker_daemon recipes, #364 @jvrplmlmn
  • [FEATURE] Add support for system_swap check, #372 @iancward
  • [FEATURE] Add ability to pin datadog-agent versions per platform, #368 @mlcooper
  • [FEATURE] Add support for any config option in datadog.conf, #375 @degemer
  • [FEATURE] Trust new APT and RPM keys, #365 @olivielpeau
  • [OPTIMIZE] Simplify postgres.yaml template, #380 @miketheman
  • [BUGFIX] Allow instances with no tags in postfix template, #374 @nyanshak

2.6.0 / 2016-09-20

2.5.0 / 2016-08-08

  • [FEATURE] Add support for extra_packages agent checks, #271 @tmichelet
  • [FEATURE] Add Windows support to remove-dd-agent recipe (Chef >= 12.6 only), #332 @raycrawford
  • [FEATURE] Make yum repo GPG key an attribute, #326 @iancward
  • [FEATURE] Add support for provider option in iis check, #324 @clmoreno
  • [FEATURE] Add support for tags in etcd check, #322 @stensonb
  • [FEATURE] Add developer_mode option to datadog.conf, #315 @olivielpeau
  • [FEATURE] Add support for win32_event_log check, #314 @olivielpeau
  • [FEATURE] Add dogstatsd_target option to datadog.conf, #313 @jcftang-r7
  • [FEATURE] Add support forcustom_metrics in postgres check, #284 @flah00
  • [OPTIMIZE] Update windows support with many improvements, #334 @brentm5
  • [OPTIMIZE] Pass the hostname attribute to the handler, #308 @gmmeyer
  • [MISC] Allow non-breaking updates of chef_handler, #291 @eherot

NOTE The strict version constraint on chef_handler had been introduced because the 1.2 minor release
of chef_handler broke compatibility with Chef 11. Chef 11 compatibility has been re-introduced in the 1.3
release, we recommend using that version or higher if you use Chef 11.

2.4.0 / 2016-05-04

2.3.0 / 2016-04-25

2.2.0 / 2015-10-27

2.1.0 / 2015-04-20

NOTE This has been broken for some time, and has had multiple attempts at fixing properly. The correct interface
has never been documented, and the implementation has always been left up to the reader. We have changed this to be
much simpler - instead of trying to account for any possible methods

  • [BUGFIX] Correct cassandra template render flags, @miketheman
  • [DOCS] Remove suggestion for python cookbook, as it is no longer needed. @miketheman
  • [MISC] Updates to test suite for simplicity, deprecation warnings, dependencies @miketheman & @darron

2.0.0 / 2014-08-22

  • BREAKING CHANGE: Datadog Agent 5.0.0 Release Edition

With the release of Datadog Agent 5.x, all Python dependencies are now bundled, and extensions for monitoring are no
longer needed. Integration-specific recipes no longer install any packages, so if you are using a version older than
5.x, you may have to install these yourself. This greatly simplifies deployment of all components for monitoring.
See commit b77582122f3db774a838f90907b421e544dd099c for the exact package resources that have been removed.
Affected recipes:

  • hdfs
  • memcache
  • mongodb
  • mysql
  • postgres
  • redisdb

    • BREAKING CHANGE: Removed chef_gem support for Chef versions pre 0.10.9.

We haven't supported this version of Chef in some time, so it's unlikely that you will be affected at all.
Just in case, please review what versions of Chef you have installed, and use an older version of this cookbook until
you can upgrade them.

  • [OPTIMIZE] Update repository recipe to choose correct arch, @remh
  • [OPTIMIZE] Remove conditional python dep for Ubuntu 11.04, @miketheman
  • [OPTIMIZE] Remove extra apt-get call during Agent recipe run, @miketheman
  • [FEATURE] Add kafka monitoring recipe & tests, #113 @qqfr2507
  • [FEATURE] Allow database name to be passed into postgres template, @miketheman
  • [MISC] Many updates to testing suite. Faster style, better specs. @miketheman

1.2.0 / 2014-03-24

1.1.1 / 2013-10-17

  • [FEATURE] added rabbitmq recipe and template, @miketheman
  • [BUGFIX] memcache dependencies and template, #67 @elijahandrews
  • [BUGFIX] redis python client check was not properly checking the default version, @remh
  • [MISC] tailor 1.3.1 caught some cosmetic issue, @alq

1.1.0 / 2013-08-20

Dependency Note

One of the dependencies of this cookbook is the apt cookbook.
A change introduced in the apt cookbook 2.0.0 release was a Chef 11-specific feature that would break on any Chef 10 system, so we considered adding a restriction in our metadata.rb to anything below 2.0.0.

A fix has gone in to apt 2.1.0 that relaxes this condition, and plays well with both Chef 10 and 11. We recommend using this version, or higher.

1.0.1 / 2013-05-14

  • Fixed iis and rabbitmq template syntax - #58 @gregf
  • Updated style/spacing in ActiveMQ template
  • Updated test suite to validate cookbook & templates
  • Updated chefignore to clean the built cookbook from containing cruft

1.0.0 / 2013-05-06

  • BREAKING CHANGE: Moved all attributes into datadog namespace - #46 (#23, #26)

Reasoning behind this was that originally we attempted to auto-detect many common attributes and deploy automatic monitoring for them.
We found that since inclusion of the datadog cookbook early in the run list caused the compile phase to be populated with our defaults (mostly nil), instead of the desired target, and namespacing of the attributes became necessary.

  • NEW PROVIDER: Added a new datadog_monitor provider for integration use

The new provider is used in many pre-provided integration recipes, such as datadog::apache.
This enables a run list to include this recipe, as well as populate a node attribute with the needed instance details to monitor the given service

  • Updated dependencies in Gemfile, simplifies travis build - #34, #55
  • Much improved test system (chefspec, test-kitchen) - #35 & others
  • Tests against multiple versions of Chef - #18
  • Added language-specific recipes for installing dogstatsd - (#28)
  • Added ability to control dogstatsd from agent config via attribute - #27
  • Placed the dogstatsd log file in /var/log/ instead of /tmp
  • Added attribute to configure dogstreams in datadog.conf - #37
  • Updated for platform_family semantics
  • Added node['datadog']['agent_version'] attribute
  • (Handler Recipe) Better handling of EC2 instance ID for Handler - #44
  • Updated for agent 3.6.x logging syntax
  • Generated config file removes some whitespace - #56
  • Removed dependency on yum::epel, only uses yum for the repository recipe

0.1.4 / 2013-04-25

  • Quick fix for backporting test code to support upload in ruby 1.8.7

0.1.3 / 2013-01-27

  • Work-around for COOK-2171

0.1.2 / 2012-10-15

  • Fixed typo in jmx section

0.1.1 / 2012-09-18

  • Added support for postgres, redis & memcached
  • dd-agent - updated to include more platforms
  • dd-handler - updated to leverage chef_gem resource if available
  • Updated copyright for 2012
  • Updated syntax for node attribute accessors
  • Some syntax styling fixes
  • Added agent logging configuration
  • Removed extraneous dependencies
  • Added automated testing suite


  • Updated for CentOS dependencies


  • Link to github repository.


  • dd-handler - Corrects attribute name.


  • dd-agent - Adds an explicit varnish attribute.


  • dd-agent - Add varnish support.


  • dd-agent - default to using instance IDs as hostnames when running dd-agent on EC2


  • dd-agent - Full datadog.conf template using attributes (thanks @drewrothstein)


  • dd-agent - Added support for Nagios PerfData and Graphite.


  • dd-agent - Added support for RPM installs - Red Hat, CentOS, Scientific, Fedora


  • Initial refactoring, including the dd-agent cookbook here
  • Adding chef-handler-datadog to report to the newsfeed
  • Added ruby-dev dependency

Collaborator Number Metric

2.19.0 passed this metric

Contributing File Metric

2.19.0 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of, and your repo must contain a file

Foodcritic Metric

2.19.0 failed this metric

FC120: Do not set the name property directly on a resource: datadog/recipes/repository.rb:76
FC120: Do not set the name property directly on a resource: datadog/recipes/repository.rb:127
Run with Foodcritic Version 14.3.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any

No Binaries Metric

2.19.0 passed this metric

Testing File Metric

2.19.0 failed this metric

Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of, and your repo must contain a file

Version Tag Metric

2.19.0 passed this metric