


RRDs(3)                      RRDtool                      RRDs(3)


NNAAMMEE
       RRDs - Access rrdtool as a shared module

SSYYNNOOPPSSIISS
         use RRDs;
         RRDs::error
         RRDs::last ...
         RRDs::info ...
         RRDs::create ...
         RRDs::update ...
         RRDs::graph ...
         RRDs::fetch ...
         RRDs::tune ...
         RRDs::times(start, end)

DDEESSCCRRIIPPTTIIOONN
       CCaalllliinngg SSeeqquueennccee

       This module accesses rrdtool functionality directly from
       within perl. The arguments to the functions listed in the
       SYNOPSIS are explained in the regular rrdtool documenta-
       tion. The commandline call

        rrdtool update mydemo.rrd --template in:out N:12:13

       gets turned into

        RRDs::update ("mydemo.rrd", "--template", "in:out", "N:12:13");

       Note that

        --template=in:out

       is also valid.

       The RRDs::times function takes two parameters:  a "start"
       and "end" time.  These should be specified in the AATT--SSTTYYLLEE
       TTIIMMEE SSPPEECCIIFFIICCAATTIIOONN format used by rrdtool.  See the rrrrdd--
       ffeettcchh documentation for a detailed explanation on how to
       specify time.

       EErrrroorr HHaannddlliinngg

       The RRD functions will not abort your program even when
       they can not make sense out of the arguments you fed them.

       The function RRDs::error should be called to get the error
       status after each function call. If RRDs::error does not
       return anything then the previous function has completed
       its task successfully.







1.0.49                      2004-08-08                          1





RRDs(3)                      RRDtool                      RRDs(3)


        use RRDs;
        RRDs::update ("mydemo.rrd","N:12:13");
        my $ERR=RRDs::error;
        die "ERROR while updating mydemo.rrd: $ERR\n" if $ERR;

       RReettuurrnn VVaalluueess

       The functions RRDs::last, RRDs::graph, RRDs::info,
       RRDs::fetch and RRDs::times return their findings.

       RRRRDDss::::llaasstt returns a single INTEGER representing the last
       update time.

        $lastupdate = RRDs::last ...

       RRRRDDss::::ggrraapphh 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);

       RRRRDDss::::iinnffoo returns a pointer to a hash. The keys of the
       hash represent the property names of the rrd and the val-
       ues of the hash are the values of the properties.

        $hash = RRDs::info "example.rrd";
        foreach my $key (keys %$hash){
          print "$key = $$hash{$key}\n";
        }

       RRRRDDss::::ffeettcchh 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:       ", scalar localtime($start), " ($start)\n";
         print "Step size:   $step seconds\n";
         print "DS names:    ", join (", ", @$names)."\n";
         print "Data points: ", $#$data + 1, "\n";
         print "Data:\n";
         foreach my $line (@$data) {
           print "  ", scalar localtime($start), " ($start) ";
           $start += $step;
           foreach my $val (@$line) {
             printf "%12.1f ", $val;
           }
           print "\n";
         }

       RRRRDDss::::ttiimmeess returns two integers which are the number of
       seconds since epoch (1970-01-01) for the supplied "start"
       and "end" arguments, respectively.



1.0.49                      2004-08-08                          2





RRDs(3)                      RRDtool                      RRDs(3)


       See the examples directory for more ways to use this
       extension.

NNOOTTEE
       If you are manipulating the TZ variable you should also
       call the posixs function tzset to initialize all internal
       state of the library for properly operating in the time-
       zone of your choice.

        use POSIX qw(tzset);
        $ENV{TZ} = 'CET';
        POSIX::tzset();

AAUUTTHHOORR
       Tobias Oetiker <oetiker@ee.ethz.ch>










































1.0.49                      2004-08-08                          3


