-- -- (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 local real_val = val if real_val == nil then real_val = 0 end m:appendRow(when, v.label, real_val) when = when + step end end return(m) else return(nil) end