use RRDs::ext RRDs::error RRDs::last ... RRDs::create ... RRDs::update ... RRDs::graph ... RRDs::fetch ... RRDs::tune ...
rrdtool update mydemo.rrd N:12:13
gets turned into
RRDs::update qw(mydemo.rrd N:12:13);
First the every function will return the value -1 if an error occured. Second, the function RRDs::error can be called to get the error message from the last function call. If RRDs::error does not return an error then the previous function has completed its task succesfully.
RRDs::update qw(mydemo.rrd N:12:13); my $ERR=RRDs::error; die "ERROR while updating mydemo.rrd: $ERR\n" if $ERR;
RRDs::last returns a single INTEGER representing the last update time.
$lastupdate = RRDs::last ...
RRDs::graph returns an pointer to an ARRAY containing the x-size and y-size of the created gif and results of the PRINT arguments.
($averages,$xsize,$ysize) = RRDs::graph ...
print "Gifsize: ${xsize}x${ysize}\n";
print "Averages: ", (join ", ", @$averages);
RRDs::fetch is the most complex of the pack regarding return values. There are 4 values. Two normal integers, a pointer to an array and a pointer to a array of pointers.
my ($start,$step,$names,$data) = RRDs::fetch ...
print "Start: ".localtime($start)."\n";
print "Stepsize: $step seconds\n";
print "Column Names: ".join (", ", @$names)."\n";
print "Date:\n";
foreach my $line (@$array){
print "".localtime($start)," ";
$start += $step;
foreach my $val (@$line) {
printf "%12.1f", $val;
}
print "\n";
}
See the examples directory for more ways to use this extension.