added ruby bindings ... thanks to Loïs LHERBIER lois.lherbier covadis.ch
[rrdtool.git] / bindings / ruby / test.rb
1 #!/usr/bin/env ruby
2 # $Id: test.rb,v 1.2 2002/10/22 17:34:00 miles Exp $
3 # Driver does not carry cash.
4
5 require "RRD"
6
7 name = "test"
8 rrd = "#{name}.rrd"
9 start = Time.now.to_i
10
11 puts "creating #{rrd}"
12 RRD.create(
13     rrd,
14     "--start", "#{start - 1}",
15     "--step", "300",
16         "DS:a:GAUGE:600:U:U",
17     "DS:b:GAUGE:600:U:U",
18     "RRA:AVERAGE:0.5:1:300")
19 puts
20
21 puts "updating #{rrd}"
22 start.to_i.step(start.to_i + 300 * 300, 300) { |i|
23     RRD.update(rrd, "#{i}:#{rand(100)}:#{Math.sin(i / 800) * 50 + 50}")
24 }
25 puts
26
27 puts "fetching data from #{rrd}"
28 (fstart, fend, data) = RRD.fetch(rrd, "--start", start.to_s, "--end", (start + 300 * 300).to_s, "AVERAGE")
29 puts "got #{data.length} data points from #{fstart} to #{fend}"
30 puts
31
32 puts "generating graph #{name}.png"
33 RRD.graph(
34    "#{name}.png",
35     "--title", " RubyRRD Demo", 
36     "--start", "#{start} + 1 h",
37     "--end", "#{start} + 1000 min",
38     "--interlace", 
39     "--imgformat", "PNG",
40     "--width=450",
41     "DEF:a=#{rrd}:a:AVERAGE",
42     "DEF:b=#{rrd}:b:AVERAGE",
43     "CDEF:line=TIME,2400,%,300,LT,a,UNKN,IF",
44     "AREA:b#00b6e4:beta",
45     "AREA:line#0022e9:alpha",
46     "LINE3:line#ff0000")
47 puts
48
49 print "This script has created #{name}.png in the current directory\n";
50 print "This demonstrates the use of the TIME and % RPN operators\n";