Chef cookbook for Datadog Agent & Integration
Ruby HTML Shell
Pull request Compare This branch is 121 commits behind DataDog:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.chef
attributes
libraries
providers
recipes
resources
spec
templates/default
test/integration
.gitignore
.kitchen.yml
.rspec
.rubocop.yml
.travis.yml
Berksfile
CHANGELOG.md
Gemfile
Guardfile
LICENSE
README.md
Rakefile
chefignore
metadata.rb

README.md

Where to Find the Code

To submit issues and patches please visit https://github.com/DataDog/chef-datadog. The code is licensed under the Apache License 2.0 (see LICENSE for details).

Chef cookbook Build Status Coverage Status GitHub forks GitHub stars

Datadog Cookbook

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

Requirements

  • chef >= 10.14

Platforms

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

Cookbooks

The following Opscode cookbooks are dependencies:

  • apt
  • chef_handler
  • windows
  • yum

Recipes

default

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

dd-agent

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

dd-handler

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.

dogstatsd-(python|ruby)

Installs the language-specific libraries to interact with dogstatsd.

other

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.

Usage

  1. Add this cookbook to your Chef Server, either by installing with knife or by adding it to your Berksfile: cookbook 'datadog', '~> 2.1.0'
  2. Add your API Key as a node attribute via an environment or role or by declaring it in another cookbook at a higher precedence level.
  3. Create an 'application key' for chef_handler here, and add it as a node attribute, as in Step #2.
  4. 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:

    name 'example'
    description 'Example role using DataDog'
    
    default_attributes(
      'datadog' => {
        'api_key' => 'api_key',
        'application_key' => 'app_key'
      }
    )
    
    run_list %w(
      recipe[datadog::dd-agent]
      recipe[datadog::dd-handler]
    )
    
  5. 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.