Graphite-Web Puppet Module and Patch for Collectd’s RRD Support
Join the DZone community and get the full member experience.
Join For FreeIf 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.
Collectd
Patch (computing)
Published at DZone with permission of Spike Morelli, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.
Comments