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.