rrdファイルのデータをgnuplotで表示する

(rrdplot.pl)

#!/usr/bin/env perl

open(GP,"|gnuplot -persist") or die "no gnuplot";

print GP "set term dumb\n";
print GP "set xdata time\n";
print GP "set timefmt \"%Y/%m/%d %H:%M:%S\"\n";
print GP "plot \"-\" using 1:3, \"-\" using 1:4\n";

@temp = <>;

#ds0
print GP @temp;
print GP "e\n";

#ds1
print GP @temp;
print GP "e\n";

close(GP);


使ってみる

$ alias 2lc="awk '{print strftime(\"%Y/%m/%d %H:%M\",\$1),\$2,\$3}'"
        ↑rrdtool fetchで取り出したデータの第一カラムをローカルタイムに変換する
$ rrdtool fetch localhost_2.rrd AVERAGE
                            ds0                 ds1

1333460700: -nan -nan
1333461000: -nan -nan
...
1333545900: 1.0268980667e+03 1.0408808889e+02
1333546200: 7.4477039132e+04 2.6070798402e+03
1333546500: 6.3879251308e+04 2.2179199416e+03
1333546800: 6.5218879169e+03 2.5832676941e+02
1333547100: -nan -nan
$ rrdtool fetch localhost_2.rrd AVERAGE | tail -13
1333543500: 7.0626077911e+04 2.6522735333e+03
1333543800: 3.4181825297e+04 1.5148402410e+03
1333544100: 1.7116993181e+05 6.2082904529e+03
1333544400: 8.7736280625e+04 3.2752766839e+03
1333544700: 6.0311362644e+04 2.1175391333e+03
1333545000: 3.4044223200e+04 1.2133935111e+03
1333545300: 8.8547026667e+02 1.0151853333e+02
1333545600: 4.4273555556e+00 6.2731111111e-01
1333545900: 1.0268980667e+03 1.0408808889e+02
1333546200: 7.4477039132e+04 2.6070798402e+03
1333546500: 6.3879251308e+04 2.2179199416e+03
1333546800: 6.5218879169e+03 2.5832676941e+02
1333547100: -nan -nan
$ rrdtool fetch localhost_2.rrd AVERAGE | tail -13 | 2lc
2012/04/04 21:45:00 7.0626077911e+04 2.6522735333e+03
2012/04/04 21:50:00 3.4181825297e+04 1.5148402410e+03
2012/04/04 21:55:00 1.7116993181e+05 6.2082904529e+03
2012/04/04 22:00:00 8.7736280625e+04 3.2752766839e+03
2012/04/04 22:05:00 6.0311362644e+04 2.1175391333e+03
2012/04/04 22:10:00 3.4044223200e+04 1.2133935111e+03
2012/04/04 22:15:00 8.8547026667e+02 1.0151853333e+02
2012/04/04 22:20:00 4.4273555556e+00 6.2731111111e-01
2012/04/04 22:25:00 1.0268980667e+03 1.0408808889e+02
2012/04/04 22:30:00 7.4477039132e+04 2.6070798402e+03
2012/04/04 22:35:00 6.3879251308e+04 2.2179199416e+03
2012/04/04 22:40:00 6.5218879169e+03 2.5832676941e+02
2012/04/04 22:45:00 -nan -nan
$ rrdtool fetch localhost_2.rrd AVERAGE | tail -13 | 2lc | ./rrdplot.pl 



  180000 +++-+++++-+++++-+++++-+++++-+++++-+++++-+++++-+++++-+++++-+++++-+++
         +     +     A     +     +     +     +     +  "-" using 1:3  +A    +
  160000 ++                                           "-" using 1:4   B   ++
         |                                                                 |
  140000 ++                                                               ++
         |                                                                 |
  120000 ++                                                               ++
         |                                                                 |
  100000 ++                                                               ++
         |                                                                 |
         |                 A                                               |
   80000 ++                                                    A          ++
         A                                                           A     |
   60000 ++                      A                                        ++
         |                                                                 |
   40000 ++    A                       A                                  ++
         |                                                                 |
   20000 ++                                                               ++
         +     +     B     +     +     +     +     +     +     +     +     A
       0 B++-++B++-+++++-++B++-++B++-++B++-++A++-++A++-++A++-++B++-++B++-++B
     21:45:00:50:00:55:00:00:00:05:00:10:00:15:00:20:00:25:00:30:00:35:00:40:00


参照したURL:
http://gnuplot.sourceforge.net/demo_4.4/timedat.html
http://www.gnuplot.info/faq/faq.html#SECTION00098000000000000000