File: rrdruby.pod

package info (click to toggle)
rrdtool 1.6.0-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 5,616 kB
  • ctags: 2,637
  • sloc: ansic: 34,403; sh: 13,388; perl: 1,623; cs: 652; makefile: 524; python: 65; ruby: 61; awk: 30
file content (86 lines) | stat: -rw-r--r-- 2,093 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
=head1 NAME

rrdruby - About the RRD Ruby bindings

=head1 SYNOPSIS

 require "RRD"
 RRD.create(
    rrd,
    "--step", "300",
    "DS:a:GAUGE:600:U:U",
    "DS:b:GAUGE:600:U:U",
    "RRA:AVERAGE:0.5:1:300")

=head1 DESCRIPTION

The B<rrdtool> functions are directly callable via the Ruby programming
language. This wrapper implementation has been written from the scratch
(without  SWIG)

The API's simply expects string parameters to the functions.  Please refer
to the other B<rrdtool> documentation for functions and valid arguments.

=head1 EXAMPLE

 $: << '/path/to/rrdtool/lib/ruby/1.8/i386-linux'
 require "RRD" 

 name = "test"
 rrd = "#{name}.rrd"
 start = Time.now.to_i

 RRD.create(    
    rrd,
    "--start", "#{start - 1}",
    "--step", "300",
        "DS:a:GAUGE:600:U:U",
    "DS:b:GAUGE:600:U:U",
    "RRA:AVERAGE:0.5:1:300")
 puts

 puts "updating #{rrd}"
 start.to_i.step(start.to_i + 300 * 300, 300) { |i|
    RRD.update(rrd, "#{i}:#{rand(100)}:#{Math.sin(i / 800) * 50 + 50}")
 }
 puts

 puts "fetching data from #{rrd}"
 (fstart, fend, data, step) = RRD.fetch(rrd, "--start", start.to_s, "--end", 
      (start + 300 * 300).to_s, "AVERAGE")
 puts "got #{data.length} data points from #{fstart} to #{fend}"
 puts

 puts "generating graph #{name}.png"
 RRD.graph(
   "#{name}.png",
    "--title", " RubyRRD Demo", 
    "--start", "#{start+3600}",
    "--end", "start + 1000 min",
    "--interlace", 
    "--imgformat", "PNG",
    "--width=450",
    "DEF:a=#{rrd}:a:AVERAGE",
    "DEF:b=#{rrd}:b:AVERAGE",
    "CDEF:line=TIME,2400,%,300,LT,a,UNKN,IF",
    "AREA:b#00b6e4:beta",
    "AREA:line#0022e9:alpha",
    "LINE3:line#ff0000") 
 puts

If you use the B<--ruby-site-install> configure option you can drop the $:
line since the RRDtool module will be found automatically.

If RRDtool runs into trouble, it will throw an exception which you might
want to catch.

=head1 SEE ALSO

rrdcreate, rrdupdate, rrdgraph, rrddump, rrdfetch, rrdtune, rrdlast,
rrdxport, rrdinfo

=head1 AUTHOR

Los Lherbier E<lt>lois.lherbier@covadis.chE<gt>

Miles Egan E<lt>miles@caddr.comE<gt>