Florian octo Forster's Homepage

Collection 4



Collection 4 (or C4 for short) is a web-based front-end for collectd. It is the successor of Collection 3, a Perl-based interface with the same purpose. The two don't share any code, however – C4 has been written from scratch.

One of the main goals for C4 is performance. It was created out of frustration about all existing front-ends at that time, none of which were able to handle installations with 50,000 and more RRD files efficiently. At such a scale, I/O on the server becomes a serious limitation even for the front-end and seemingly simple tasks, such as printing a list of all host names, will produce several hundred kilobytes of data. C4 counters these problems by caching data between requests (each instance handles multiple requests using FastCGI) and limiting the amount of data sent to the client to an amount browsers can handle and users are willing to wait for.

A second design goal was to make it possible to configure graphs in a very flexible manner. You can create graphs from multiple files and each file can be part of multiple graphs. You can stack data sources on top of each other and specify the colors you like. Surely there's still a lot to be added but the infrastructure is there and the syntax is flexible enough to allow extensions in each and every direction.

In contrast to many other front-ends, there is no hard dependency on RRDtool in C4. The fetch and graph phases have been separated to allow for either to be changed without touching the other. This allows data to retrieved from RRD files but not to create graphs using rrdgraph(1). Other possible (but not yet implemented) data providers could be RRDCacheD and (compressed) CSV files. An interesting aspect would be to incorporate "live updates", for example using AMQP.
Currently the JavaScript library gRaphaël is used to render graphs, but a lot remains to be added to that library in order to be able to compete with RRDtool's graphing options.



Warning: This version is unstable, meaning that the config file, the interfaces, the output and basically everything else may change at any time. Please consider using the version from the Git repository (see below).

Development version

The development files are kept in a Git repository. You can “clone” it with the following command. Patches are welcome anytime. :)

git clone git://git.verplant.org/collection4.git

A web interface to browse the repository is available, too.


Screenshots of C4 in action. Hover over the image to get a description in a tool-tip or enable JavaScript for fancy graphics display.


C4 is a free and open source project. Like all such projects, it lives from contributions by companies and interested individuals. For now, please use the collectd mailing list for anything related to C4. A separate list will be created if and when it becomes necessary.

There's a wide variety of ways in which you can get involved with C4:

License information

C4 is distributed under the terms of the LGPL, version 2.1. The license can also be found in the COPYING file in the source tarball.