[rrd-users] newbie perl problem with rrds::graph

Jaakko Kemppainen jaakko.kemppainen at gmail.com
Thu Jan 14 09:33:56 CET 2010


I'm sorry if I bother you with perl problem (lack of skills?) you
might not care about - in that case could someone point me to a
correct perl mailing list to be bothered.

I'm trying to make a perl script to create graphs, much like in
Only I would like to pass different amount of data to CreateGraph
function each time and have that function to loop through parameters
and create DEF and LINE/GRAPH -lines based on that.

Something along the lines of (doesn't work but cannot figure out what
I'm doing wrong):

 &CreateGraph("$computer", "day", "$harddrives);
 &CreateGraph("$computer", "week", "$harddrives);

sub CreateGraph
  # creates graph
  # inputs: $_[0]: computer id
  #         $_[1]: interval (ie, day, week, month, year)
  #         $_[2]: hard drive names for computer (ie, hda, hdb, hdc)

  $size = scalar @_;  # get total amount of parameters
  $defs = '';
  $graphs = '';

  for($i = 2; $i < $size; $i++) {
        $defs .= "DEF:$_[$i]=$rrd/$_[$i].rrd:temp:AVERAGE ";
      $graphs .= "LINE2:$_[$i]#FF9900:$_[$i]\\: ";
      $graphs .= "GPRINT:$_[$i]:MIN:  Min\\: %2.lf ",
      $graphs .= "GPRINT:$_[$i]:MAX: Max\\: %2.lf ",
      $graphs .= "GPRINT:$_[$i]:AVERAGE: Avg\\: %4.1lf ",
      $graphs .= "GPRINT:$_[$i]:LAST: Current\\: %2.lf degrees C\\n ",

      RRDs::graph "$img/$_[0]/hddtemp-$_[1].png",
              "-s -1$_[1]",
              "-t hdd temperature :: hard disk drives",
              "-h", "80", "-w", "600",
              "-a", "PNG",
              "-v degrees C",
      if ( = RRDs::error) { print "$0: unable to generate $_[1] graph:
$ERROR\n"; }

Could anyone help me on this?

Jaakko Kemppainen
jaakko.kemppainen at gmail.com

More information about the rrd-users mailing list