2
local rrd = require 'rrd'
4
local name = 'test.rrd'
5
local start = 300 * math.floor(os.time() / 300)
7
io.write('\n-- Creating ', name, '\n')
14
'RRA:AVERAGE:0.5:1:300')
17
for t=start, start+300*300, 300 do
18
local s = string.format('%d:%d:%f', t,
19
math.random(100), math.sin(t/800)*50+50)
21
num_points = num_points + 1
24
io.write('rrd file created with ', num_points, ' points, from ', start,
25
' to ', start+300*300, '\n')
27
io.write('\n-- Testing rrd.info\n')
28
local info = rrd.info(name)
29
for k,v in pairs(info) do
30
io.write(k, '=', v, '\n')
34
io.write('-- Testing rrd.fetch\n')
35
io.write('fetching data from ', name, ' - interval: ', start, ' to ',
37
local fstart, fstep, fnames, fdata =
38
rrd.fetch(name, '--start', start, '--end', start+300*300+10, 'AVERAGE')
39
io.write('got ', table.getn(fdata[1]), ' data sources with ', table.getn(fdata),
40
' data points each.\n')
42
io.write('\n-- Printing fetched data\n')
44
for i, n in ipairs(fnames) do
48
for i, v in ipairs(fdata) do
49
local time = fstart + (i-1)*fstep
50
io.write(string.format('%s (%d): ', os.date('%c', time), time))
51
for _, w in ipairs(v) do
52
io.write(string.format('%e ', w))
58
io.write('\n-- Testing rrd.graphv - creates test.png and returns values\n')
61
'--title', 'Enjoy Lua RRDtool module!',
62
'--start', start+3600,
63
'--end', 'start + 1000 min',
67
'DEF:a=' .. name .. ':a:AVERAGE',
68
'DEF:b=' .. name .. ':b:AVERAGE',
69
'CDEF:line=TIME,2400,%,300,LT,a,UNKN,IF',
71
'AREA:line#0022e9:alpha',
78
io.write('\n-- Returned values:\n')
79
io.write('print[0]: ', t['print[0]'], '\n')
80
io.write('print[1]: ', t['print[1]'], '\n')
81
for k, v in pairs(t) do
82
if not string.find(k, '^print%[%d+%]') then
83
io.write(k, ': ', v, '\n')
88
io.write('-- The graph "test.png" was created.\n')
89
io.write('-- Use your preferred viewer to display it.\n\n')