garethr-diamond

Puppet module for the Diamond stats collection daemon


Keywords
monitoring, riemann, graphite, diamond, librato
License
Apache-2.0
Install
puppet module install garethr-diamond --version 1.0.0

Documentation

A Puppet module for managing the installation and configuration of Diamond.

Puppet Forge Build Status

Usage

For experimenting you're probably fine just with:

include diamond

This installs diamond but doesn't ship the metrics anywhere, it just runs the archive handler.

Configuration

This module currently exposes a few configurable options, for example the Graphite host and polling interval. So you can also do:

class { 'diamond':
  graphite_host => 'graphite.example.com',
  graphite_port => 2013,
  interval      => 10,
}

You can also add additional collectors:

diamond::collector { 'RedisCollector':
  options => {
    'instances' => 'main@localhost:6379, other@localhost:6380'
  }
}

Some collectors support multiple sections, for example the NetApp and RabbitMQ collectors

diamond::collector { 'NetAppCollector':
  options => {
    'path_prefix' => '/opt/netapp/lib/python'
  },
  sections => {
    '[devices]' => {},
    '[[host01]]' => {
         'ip' => '10.10.10.1',
         'username' => 'bob',
         'password' => 'alice'
    },
    '[[host02]]' => {
         'ip' => '10.10.10.2',
         'username' => 'alice',
         'password' => 'bob'
    }
  }
}

diamond::collector { 'RabbitMQCollector':
  options => {
    'host' => '10.10.10.1',
    'user' => 'bob',
    'password' => 'alice'
  },
  sections => {
    '[vhosts]' => {
      '*' => '*'
    }
  }
}

Diamond supports a number of different handlers, for the moment this module supports only the Graphite, Librato and Riemann handers. Pull request happily accepted to add others.

With Librato:

class { 'diamond':
  librato_user   => 'bob',
  librato_apikey => 'jim',
}

With Riemann:

class { 'diamond':
  riemann_host => 'riemann.example.com',
}

Note that you can include more than one of these at once.

class { 'diamond':
  librato_user   => 'bob',
  librato_apikey => 'jim',
  riemann_host   => 'riemann.example.com',
  graphite_host  => 'graphite.example.com',
}