[Perl] Créer un graph RRD avec RRDTool::OO

Créer un graph RRD avec RRDTool::OO [Perl] - Perl - Programmation

Marsh Posté le 23-12-2013 à 11:46:59    

Bonjour,
 
Je débute dans le monde du RRD, alors le mieux est de partir sur un exemple qui fonctionne.
Pour cela je me base sur le tuto de ce site qui reprend un exemple assez connu:
http://wiki.monitoring-fr.org/supervision/rrdtool
 
J'en suis à l'étape "rrdtool graph vitesse2.png" et jusqu'ici tout va bien.
En revanche pour l'exemple "vitesse3.png" il demande de créer un "CDEF" et là je bloque.
 
Voici mon script où pour "vitesse2.png" cela fonctionne :

Code :
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use RRDTool::OO;
  5. # Constructor
  6. my $rrd = RRDTool::OO->new(
  7.         file    => "myrrdfile.rrd",
  8.         raise_error     => 1,
  9. );
  10. # Create a round-robin database
  11. # Define the RRD
  12. my $rc = $rrd->create(
  13.         start           => '1051480800',
  14.         data_source     => {
  15.                 name            => 'vitesse',
  16.                 type            => 'COUNTER',
  17.                 min             => 'U',
  18.                 max             => 'U',
  19.                 heartbeat       => '600',
  20.         },
  21.         archive         => {
  22.                 cfunc   => 'AVERAGE',
  23.                 xff     => 0.5,
  24.                 cpoints => 1,
  25.                 rows    => 24,
  26.         },
  27.         archive         => {
  28.                 cfunc   => 'AVERAGE',
  29.                 xff     => 0.5,
  30.                 cpoints => 6,
  31.                 rows    => 10,
  32.         },
  33. );
  34. while (<DATA> ) {
  35.         chomp;
  36.         my ($time, $value) = split(/:/, $_);
  37.         print $time, "|", $value, "\n";
  38.         $rrd->update(time => $time, value => $value);
  39. }
  40. $rrd->graph(
  41.         image   =>      "seth.png",
  42.         start           => 1051481100,
  43.         end             => 1051485300,
  44.         imgformat       => "PNG",
  45.         width           => "500",
  46.         height          => "200",
  47.         color           => {
  48.                         canvas  => '#000000',
  49.                         back    => '#101010',
  50.                         font    => '#C0C0C0',
  51.                         mgrid   => '#80C080',
  52.                         grid    => '#808020',
  53.                         frame   => '#808080',
  54.                         arrow   => '#FFFFFF',
  55.                         shadea  => '#404040',
  56.                         shadeb  => '#404040',
  57.         },
  58.         draw            => {
  59.         file            => "myrrdfile.rrd",
  60.         thickness       => 2,
  61.         type            => "line",
  62.         color           => 'FF0000',
  63.         legend          => "vitesse",
  64.         dsname          => "vitesse",
  65.         cfunc           => 'AVERAGE',
  66.         cdef            => "vitesse,3600,*",
  67.         },
  68. );
  69. __DATA__
  70. 1051481100:12345
  71. 1051481400:12357
  72. 1051481700:12363
  73. 1051482000:12363
  74. 1051482300:12363
  75. 1051482600:12373
  76. 1051482900:12383
  77. 1051483200:12393
  78. 1051483500:12399
  79. 1051483800:12405
  80. 1051484100:12411
  81. 1051484400:12415
  82. 1051484700:12420
  83. 1051485000:12422
  84. 1051485300:12423


 
Quand j'enlève le commentaire ligne 70 sur le "CDEF" il me dit:

Code :
  1. rrdtool graph seth.png --width 500 --imgformat PNG --height 200 --end 1051485300 --start 1051481100 CDEF:draw1=vitesse,3600,* LINE2:draw1#FF0000:vitesse --color MGRID#80C080 --color SHADEB#404040 --color GRID#808020 --color BACK#101010 --color FRAME#808080 --color FONT#C0C0C0 --color CANVAS#000000 --color ARROW#FFFFFF --color SHADEA#404040 failed: invalid rpn expression in: vitesse,3600,* at /usr/share/perl5/RRDTool/OO.pm line 438


 
Je ne comprends pas, pourtant le cdef est bien une valeur de graph: http://cpansearch.perl.org/src/MSC [...] Tool/OO.pm
Si vous avez une idée je suis preneur, merci.

Reply

Marsh Posté le 23-12-2013 à 11:46:59   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed