RRDp - Attach RRDtool from within a perl script via a set of pipes;
use RRDp
RRDp::start path to RRDtool executable
RRDp::cmd rrdtool commandline
$answer = RRD::read
$status = RRD::end
$RRDp::user, $RRDp::sys, $RRDp::real, $RRDp::error_mode, $RRDp::error
With this module you can safely communicate with the RRDtool.
After every RRDp::cmd you have to issue an RRDp::read command to get RRDtools answer to your command. The answer is returned as a pointer, in order to speed things up. If the last command did not return any data, RRDp::read will return an undefined variable.
If you import the PERFORMANCE variables into your namespace, you can access RRDtool's internal performance measurements.
The difference between user + system and real is the time spent waiting for things like the hard disk and new input from the perl script.
$RRDp::error_mode = 'catch'; RRDp::cmd qw(info file.rrd); print $RRDp::error if $RRDp::error;
use RRDp; RRDp::start "/usr/local/bin/rrdtool"; RRDp::cmd qw(create demo.rrd --step 100 DS:in:GAUGE:100:U:U RRA:AVERAGE:0.5:1:10); $answer = RRDp::read; print $$answer; ($usertime,$systemtime,$realtime) = ($RRDp::user,$RRDp::sys,$RRDp::real);
For more information on how to use RRDtool, check the manpages.
Tobias Oetiker <tobi@oetiker.ch>