Over a million developers have joined DZone.

Graphite-Web Puppet Module and Patch for Collectd’s RRD Support

DZone 's Guide to

Graphite-Web Puppet Module and Patch for Collectd’s RRD Support

· DevOps Zone ·
Free Resource
If you’re running collectd chances are you’ve struggled or are struggling with the web frontend. The one shipped with collectd has some limitations and most people tend to use 3rd party solutions like Visage. Having looked at that and another few I wasn’t really happy with any of them due to dependencies or simple lack of functionalities. In the meantime I finally got some time to play with Graphite, which is a relatively new metrics collection system with some interesting properties. It has its own storage system called whisper and comes with a snazzy web frontend which is also compatible with rrdtools’s format. Being all written in python with the frontend based on django it was an easy choice for me.

Problems with RRD support and packaging

RRD support is buggy in the latest stable release (0.9.8), but a patch has been merged in trunk that fixes all known problems. The puppet module ships with it and applies it as part of the installation.

There currently aren’t any official rpm or debian packages so the installation is done from sources and the puppet module is for the most a bunch of execs. This is not very elegant, but it does the job for the time being and I’ve abstracted things enough that whenever packages become available it should be just a matter or swapping some resources out.

Some manual steps are still needed

A few steps still need to happen manually as automation would require more work than I have time for at the moment, but I hope to get to them later this month. The first problem is with creating the database and running django syncdb command. This expects user interaction to create an admin user. It is possible to sort this out and make the process unattended, but there’s a certain amount of work I didn’t have the time to do. Second you need to make the RRDs available to graphite yourself. In my case this means using lndir to create symlinks from graphite’s rrd directory to collectd’s one and setting followsymlink in apache for that dir.

Closing notes

This module only deals with the web frontend and whisper as a required dependency, there’s nothing in about carbon as I’m not running graphite for collection yet. Sooner or later I’m gonna do that so watch this space (or the git repo) if you’re interested in updates.
All the code is available from my repository on github

Credit to Youdevise for allowing me to release this code that has been developed while consulting for them.

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}