--
-- (C) 2017-19 - ntop.org
--
local json = require "dkjson"
local telemetry_utils = {}
-- local TELEMETRY_URL = "http://192.168.2.131:8000/phptest.php"
-- local TELEMETRY_URL = "http://192.168.2.131:8000"
local TELEMETRY_URL = "https://telemetry.ntop.org/crash.php"
local TELEMETRY_TIMEOUT = 3
local TELEMETRY_ENABLED_KEY = "ntopng.prefs.send_telemetry_data"
local TELEMETRY_RECORDS_SENT = "ntopng.cache.telemetry_data_sent"
local TELEMETRY_MAX_NUM_RECORDS = 5
function telemetry_utils.telemetry_enabled()
local tm = ntop.getPref(TELEMETRY_ENABLED_KEY)
return tm == "1"
end
function telemetry_utils.telemetry_disabled()
local tm = ntop.getPref(TELEMETRY_ENABLED_KEY)
return tm == "0"
end
function telemetry_utils.notify(obj)
if telemetry_utils.telemetry_enabled() then
local mail = ntop.getPref("ntopng.prefs.telemetry_email")
if isEmptyString(mail) then
mail = nil
end
local msg = {data = obj, mail = mail, timestamp = os.time()}
local encoded_msg = json.encode(msg)
local res = ntop.httpPost(TELEMETRY_URL, encoded_msg, nil, nil, TELEMETRY_TIMEOUT, true)
if res and res["RESPONSE_CODE"] == 200 then
ntop.rpushCache(TELEMETRY_RECORDS_SENT, encoded_msg, TELEMETRY_MAX_NUM_RECORDS)
end
end
end
local function dismiss_notice()
local dism = ntop.getPref(TELEMETRY_ENABLED_KEY)
return not isAdministrator() or dism ~= ""
end
function telemetry_utils.notice_msg()
print(i18n("about.telemetry_data_opt_out_msg", {url=ntop.getHttpPrefix() .. "/lua/admin/prefs.lua?tab=telemetry", tel_url=ntop.getHttpPrefix().."/lua/telemetry.lua", ntop_org="https://www.ntop.org/"}))
end
function telemetry_utils.show_notice()
if not dismiss_notice() and (not _SERVER or not _SERVER["URI"]:match("/lua/admin/prefs.lua")) then
print('
| ]] print(i18n("telemetry_page.send_telemetry_data")) print [[ | ]] if telemetry_utils.telemetry_enabled() then print(''..i18n('prefs.telemetry_contribute')..'') elseif telemetry_utils.telemetry_disabled() then print(''..i18n('prefs.telemetry_do_not_contribute')..'') else -- no preference expressed print(''..i18n('telemetry_page.telemetry_data_no_consent')..'') end if isAdministrator() then print[[ (]] print(i18n("telemetry_page.telemetry_data_change_preference", {url = ntop.getHttpPrefix().."/lua/admin/prefs.lua?tab=telemetry"})) print[[)]] end print[[ |
|---|---|
| ]] print(i18n("telemetry_page.telemetry_data")) print [[ |
]] print(i18n("telemetry_page.crash_report")) print[[. ]] print(i18n("telemetry_page.crash_report_descr", {product=ntop.getInfo()["product"]})) print [[{"entity_type":1,"type":20,"when":1558634220,"entity_value":"ntopng","message":"Started after anomalous termination (bug report) ]] print(info.product) print[[ v.]] print(info.version) print[[ (]] print(info.OS) print[[[pid: 28775][options: --interface \"tcp://*:1234c\" --interface \"eno1\" --interface \"view:tcp://*:1234c,eno1\" --local-networks \"192.168.2.0/24\" --disable-login \"1\" ]","severity":2}
|
| ]] print(i18n("telemetry_page.last_data_sent")) print[[ | ]]
for i, msg in ipairs(transmitted_data) do
if msg then
print(noHtml(msg).." |