Announce: collectd module -- managing a statistics collection daemon

107 views
Skip to first unread message

David Schmitt

unread,
Oct 6, 2008, 2:58:34 AM10/6/08
to Puppet Users, Randy Bias
Hi all!


Thanks to funding from neoTactics, Inc.[1] I was able to implement a set
of native type managing collectd's config files wrapped into a handy
module as a stepping stone towards a generalized monitoring resource.


Collectd
========

Collectd is a very lightweight system statistics gathering daemon. To
quote from http://collectd.org/ :

> [...] it's written in C for performance and portability, [...] It
> includes optimizations and features to handle hundreds of thousands
> of data sets. It comes with over 60 plugins [...]. It provides
> powerful networking features and is extensible in numerous ways. Last
> but not least: collectd is actively developed and supported and well
> documented.

The Module
==========

The collectd puppet module contains high-level defines to configure the
most important modules as well as native puppet types to manage the
configuration files as well as collectd's notification and threshold rules.

The mapping tries to use collectd's config file keywords as much as
possible. Therefore any know-how should carry over pretty straight forward.

You can find the module at http://git.black.co.at/?p=module-collectd

For redundancy, I've also created a clone of this repo on github:
http://github.com/DavidS/module-collectd/

There is a working example manifest in doc/example.pp

Please send any patches and comments to this list for discussion.

Caveats
=======

1. Due to the heterogeneous syntax of collectd's configuration files, I
opted to split the Key-Value-style configuration of the daemon itself
and the sections for the plugins into different native types. This in
turn necessitates to have each plugin configuration in a separate file.
The default "collectd" class in the module will setup the proper
structures to automatically create the default locations and include
them into the daemon's configuration.


2. There are currently only a few plugins explicitly implemented. To
implement a new plugin configuration, one just needs to specify a
mapping from puppet resources' parameters to the actual configuration,
which is really straight forward using the provided infrastructure.


Regards, DavidS

[1] http://neotactics.com/

Randy Bias

unread,
Oct 6, 2008, 3:03:26 AM10/6/08
to David Schmitt, Puppet Users
David,

Thanks tons for your hard work on this!  We're eager to start contributing to extending it.

Best,


--Randy


Randy Bias, chief tactician & ceo, neoTactics, Inc.
(877) NEO-TKTX, ran...@neotactics.com

Reply all
Reply to author
Forward
0 new messages