In [ ]:
package.loaded.metrics = nil
metrics = require 'metrics'
In [ ]:
-- run some experiments
for k, v in ipairs({1, 2, 3}) do
-- open a new log
log = metrics.Log('/tmp/log' .. v)
-- do some iterations
for i = 1, 10 do
-- basic metric
log:set("sqrt", math.sqrt(i * v))
-- "grouped" metrics
log:set("log:v1", math.log(i * v))
log:set("log:v2", math.log(1.3 * i * v))
-- "calculated" metrics
for j = 1, 5 do
log:sum("sum", math.pow(i * v, j))
log:mean("mean", math.pow(i * v, j))
end
log:commit()
end
-- incomplete row
log:set("log:v1", 2 * v)
log:commit()
-- extra column
log:set("extra1", 2 * v)
log:commit()
-- another extra column...
log:set("extra1", 3 * v)
-- ...and row print
print(log:commit())
log:close()
end
In [ ]:
local x = os.execute('cat /tmp/log1')
In [ ]:
package.loaded.dashboard = nil
dashboard = require 'dashboard'
In [ ]:
dashboard.show({
datasets = {
{ name = 'log01', path = '/tmp/log1'},
{ name = 'log02', path = '/tmp/log2'},
{ name = 'log03', path = '/tmp/log3', shift = 2 }},
type = 'circle', -- chart type, 'line' or 'circle'
--from = 2, -- first step to plot
--to = 9, -- last step to plot
--cut = 3, -- remove last steps
--groups = 'log', -- regexp for filtering groups
--metrics = 'log02' -- regexp for filtering metrics
--movingAverage = 3, -- use Moving Average for all steps
})
In [ ]: