[Omaha.pm] Re: rrdtool rulez

Jay Hannah jay at jays.net
Mon Jan 17 13:06:01 PST 2005


 From m at perlmeister.com Sat Jan 15 20:28:07 2005
From: Mike Schilli <m at perlmeister.com>
To: Jay Hannah <jay at jays.net>
Cc: Mike Schilli <m at perlmeister.com>,
      Omaha Perl Mongers Mongers <omaha-pm at pm.org>
Subject: Re: rrdtool rulez
Date: Sat, 15 Jan 2005 20:15:46 -0800 (PST)

On Fri, 14 Jan 2005, Jay Hannah wrote:

> Are you the helpdesk too? -grin-

Ha! :) Sure.

> 1) You'll notice I used color 'FFFFFF' on the first 4 datasets. That's
> because I didn't really want to graph those (for these graphs), I just
> wanted to get them defined so I could calculate the 5th dataset. In
> pure rdtool I could have used DEF to define but not graph those, but
> under RRDToool::OO it looks like I'm always automatically CDEF'ing so I
> always end up graphing. Am I missing something? Is there some way I
> could have used 'cnt' in the final 'cdef' w/o graphing it?

RRDTool:OO 0.11 introduced "type => 'hidden'" for graphs which you 
don't want
to draw.

> 2) You'll notice my super-ugly @args hackery at the bottom to get my
> historical graphs done. Anything obvious I should be doing instead?

Hmm, relying on array indices for the different draws could bite you
at some point :). How about encapsulating the call to ->draw() in
a function like

     sub drawgraph {
         my($rrd, %options) = @_;

         $options{start}    ||= time() - (60*60*16);
         $options{cfunc}    ||= 'MAX';

         $rrd->graph(
             image          => $image,
         vertical_label => 'Capacity',
         start          => $options{start},     ###### !!!!
         end            => time(),
         width          => 960,
         draw           => {
             type   => "area",
             file   => "$dir/rrds/USW-cnt.rrd",
             color  => 'FFFFFF',
             legend => 'USW-cnt',
             name   => 'cnt',
             cfunc  => $options{cfunc},         ###### !!!!
         },
         # ...
     }

which uses optional parameters and defaults to sensible defaults if
they're omitted?

> 3) Is RPN a total pain or is it just me? -grin-

It helps if you have spent considerable time programming HP-41CV's in 
the
80ies :). But of course, today it makes things unnecessarily complex.

When I wrote RRDTool::OO, I was very close to adding a 'normal'
arithmetic parser, transforming everything into RPN before handing it
over to RRDTool. Hey, maybe I'll take it on now :).

-- Mike

Mike Schilli
m at perlmeister.com



More information about the Omaha-pm mailing list