[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Omaha.pm] Re: rrdtool rulez




On Jan 14, 2005, at 4:17 PM, Mike Schilli wrote:
On Fri, 14 Jan 2005, Jay Hannah wrote:
Using a Perl library to talk to RRD makes things even quicker to set up:
    http://search.cpan.org/~mschilli/RRDTool-OO-0.11/lib/RRDTool/OO.pm
    (Thanks Mike!!)

You're very welcome, glad you like it :).

:)

Are you the helpdesk too? -grin-

If you have a minute maybe you could help. If not don't worry about it.

Below is a snippet I'm using to create 4 graphs. Questions:

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?

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?

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

Thanks again!

j



   my $rrd = RRDTool::OO->new(
             file => "$dir/rrds/USW-cnt.rrd" );

   my $image = "$dir/pngs/capacity_level1.png";
   my @args = (
      image          => $image,
      #lazy           => undef,
      vertical_label => 'Capacity',
      start          => time() - (60*60*16),
      end            => time(),
      width          => 960,
      draw           => {
          type   => "area",
          file   => "$dir/rrds/USW-cnt.rrd",
          color  => 'FFFFFF',
          legend => 'USW-cnt',
          name   => 'cnt',
      },
      draw           => {
          type   => "stack",
          file   => "$dir/rrds/perseus1.rrd",
          color  => 'FFFFFF',
          legend => 'perseus1',
          name   => 'perseus1',
      },
      draw           => {
          type   => "stack",
          file   => "$dir/rrds/perseus2.rrd",
          color  => 'FFFFFF',
          legend => 'perseus2',
          name   => 'perseus2',
      },
      draw           => {
          type   => "area",
          file   => "$dir/rrds/USW-drops.rrd",
          color  => 'FFFFFF',
          legend => 'USW-drops',
          thickness => 1,
          name   => 'drops',
      },
      draw           => {
          type   => "line",
          file   => "$dir/rrds/USW-drops.rrd",
          color  => 'FF00FF',
          legend => 'capacity',
cdef => "drops,0,GT,perseus1,perseus2,+,cnt,+,drops,-,NAN,IF",
          thickness => 1,
      },
   );
   $rrd->graph(@args);
   $args[1] = "$dir/pngs/capacity_level2.png";
   $args[5] = time() - (60*30*960);
   $args[11]{cfunc} = 'AVERAGE';
   $args[13]{cfunc} = 'AVERAGE';
   $args[15]{cfunc} = 'AVERAGE';
   $args[17]{cfunc} = 'AVERAGE';
   $rrd->graph(@args);
   $args[1] = "$dir/pngs/capacity_level3.png";
   $args[5] = time() - (60*60*2*960);
   $rrd->graph(@args);
   $args[1] = "$dir/pngs/capacity_level4.png";
   $args[5] = time() - (60*60*24*960);
   $rrd->graph(@args);