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
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 rrdtools 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.
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 <oetiker@ee.ethz.ch>