RRDcollect -- Round-Robin Database Collecting Daemon.
RRDcollect is a daemon which periodically polls statistical
data from various files (typically, those in /proc/ directory).
Values found in these files are then stored in .rrd files.
* Written in C, so it should take little memory and CPU time.
* Looks for patterns inside files in scanf(3) style; should
be both fast and easy to use for most situations.
* Can be linked against librrd (recommended), open pipe to
rrdtool binary or dump update commands to specified file
* Regular expressions, for those who need it. (But using
scanf(3)-like ones should be more efficient).
(Maybe TO DO:)
* RPN style calculator? :-)
RRDcollect uses `configure' shell script. Apart from standard
options, like `--prefix' (which are described below, in GNU
installation instructions; `INSTALL' file) this script will
also accept options which are specific to this package:
RRDcollect will try to link against RRDtool's librrd, which
will enable it to update `.rrd' files without need to create
pipe to rrdtool(1) program. This behaviour is default, if
you want to disable it, use `--without-librrd' option.
Also perl compatible regular expressions library: libpcre
is searched for by default. It will enable using regex patterns
in RRDcollect's operations. If you don't want this feature,
you can use `--without-libpcre' option.
For detailed information about GNU installation process,
see `INSTALL' file.
If you want to build a Red Hat (possibly others too) rpm
from this package, you simply have issue command:
rpm -tb rrdcollect-0.x.tar.gz
(where "0.x" stands for current version).
If you want to build Debian package, you should untar
the sources, enter rrdcollect-0.x directory and issue command:
Then all you have to do is install it with dpkg.
Please consider, that rrdcollect is available in Debian since Jul 24, 2003.
See following resources for details:
It all stared as a simple perl script which read lm_sensors
CPU temperatures. It worked good, but then again, it still used
up too much CPU cycles (OK, so I've got dual PIII SMP machine and
it still bothers me if something uses 20 seconds of CPU time a day
when it could use only 10 seconds)
So I rewrote it in C (and expanded a little). Worked very good,
but was not much portable, everything was hardcoded inside binary.
And so I started scheming how my ideal system should look like:
written in C, simple and efficient yet powerful, with a configuration
file specifing patterns to look for and targets to put the data into.