diamond

Module for installing and managing the Diamond stats collection tool

Gareth Rushgrove

garethr

26,769 downloads

21,346 latest version

3.0 quality score

Version information

  • 1.0.0 (latest)
  • 0.9.0
  • 0.8.0
  • 0.7.0
  • 0.6.6
  • 0.6.4
  • 0.6.2
  • 0.6.1
  • 0.6.0
  • 0.5.0
  • 0.4.0
  • 0.3.0
  • 0.2.0
  • 0.1.1
  • 0.1.0
  • 0.0.2
  • 0.0.1
released Dec 4th 2014
This version is compatible with:
  • Puppet Enterprise 3.x
  • Puppet 3.x
  • RedHat
    ,
    CentOS
    ,
    Ubuntu
    ,
    Solaris

Start using this module

Documentation

garethr/diamond — version 1.0.0 Dec 4th 2014

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',
}