ntopng/scripts/lua/datasources/timeseries.lua
2020-04-27 14:36:30 +02:00

62 lines
1.4 KiB
Lua

--
-- (C) 2020 - ntop.org
--
dirs = ntop.getDirs()
package.path = dirs.installdir .. "/scripts/lua/modules/?.lua;" .. package.path
require("lua_utils")
local datasources_utils = require("datasources_utils")
local datamodel = require("datamodel_utils")
local ts_utils = require "ts_utils"
local function reportError(msg)
print(json.encode({ error = msg, success = false, csrf = ntop.getRandomCSRFValue() }))
end
local ifid = _GET["ifid"] or getSystemInterfaceId()
local key = _GET["key"] or ""
local metric = _GET["metric"] or ""
local schema = _GET["schema"] or ""
local begin_time = _GET["begin_time"] or os.time()-3600
local end_time = _GET["end_time"] or os.time()
-- Remove
key = "www.ntop.org"
metric = "http"
schema = "am_host:http_stats_5mins"
local rsp = ts_utils.query(schema,
{ ifid=ifid, host=key, metric=metric },
begin_time, end_time,
{
fill_value = 0/0, -- Show unknown values as NaN
}
)
if(rsp ~= nil) then
local labels = {}
local values = {}
local start = rsp.start
local step = rsp.step
local m
for k,v in pairs(rsp.series) do
table.insert(labels, v.label)
end
m = datamodel:create(labels)
for k,v in pairs(rsp.series) do
local when = start
for k1,val in pairs(v.data) do
m:appendRow(when, v.label, val)
when = when + step
end
end
return(m)
end