Fixes empty charts displayed

This commit is contained in:
Matteo Biscosi 2023-04-17 16:33:35 +00:00
parent e1d0f369f7
commit e13f4c13b7
6 changed files with 2351 additions and 1886 deletions

View file

@ -1,7 +1,6 @@
--
-- (C) 2013-23 - ntop.org
--
dirs = ntop.getDirs()
package.path = dirs.installdir .. "/scripts/lua/modules/?.lua;" .. package.path
@ -14,27 +13,34 @@ local graph_utils = require "graph_utils"
local host_ip = _GET["host"]
local vlan = _GET["vlan"]
local host_stats = interface.getHostInfo(host_ip, vlan) or {}
local total_traffic = 0
local rsp = {
labels = {},
series = {},
colors = {},
labels = {},
series = {},
colors = {}
}
if host_stats then
local eth_stats = interface.getMacInfo(host_stats["mac"])
local eth_stats = interface.getMacInfo(host_stats["mac"])
if eth_stats then
local arp_sent = eth_stats["arp_requests.sent"] + eth_stats["arp_replies.sent"]
local arp_rcvd = eth_stats["arp_requests.rcvd"] + eth_stats["arp_replies.rcvd"]
if eth_stats then
local arp_sent = eth_stats["arp_requests.sent"] + eth_stats["arp_replies.sent"]
local arp_rcvd = eth_stats["arp_requests.rcvd"] + eth_stats["arp_replies.rcvd"]
rsp["labels"][1] = i18n("sent")
rsp["series"][1] = arp_sent
rsp["colors"][1] = graph_utils.get_html_color(1)
total_traffic = arp_rcvd + arp_sent
rsp["labels"][2] = i18n("received")
rsp["series"][2] = arp_rcvd
rsp["colors"][2] = graph_utils.get_html_color(2)
end
rsp["labels"][1] = i18n("sent")
rsp["series"][1] = arp_sent
rsp["colors"][1] = graph_utils.get_html_color(1)
rsp["labels"][2] = i18n("received")
rsp["series"][2] = arp_rcvd
rsp["colors"][2] = graph_utils.get_html_color(2)
end
end
if total_traffic == 0 then
rsp = {}
end
rest_utils.answer(rest_utils.consts.success.ok, rsp)

View file

@ -1,7 +1,6 @@
--
-- (C) 2013-23 - ntop.org
--
dirs = ntop.getDirs()
package.path = dirs.installdir .. "/scripts/lua/modules/?.lua;" .. package.path
@ -15,30 +14,38 @@ local graph_utils = require "graph_utils"
local host_ip = _GET["host"]
local vlan = _GET["vlan"]
local host_stats = interface.getHostInfo(host_ip, vlan) or {}
local total = 0
local rsp = {
labels = {},
series = {},
colors = {},
show = true
labels = {},
series = {},
colors = {},
show = true
}
if host_stats and host_stats["pktStats.recv"] then
local serie = {}
local current_data = 0
local data = host_stats["pktStats.recv"]["size"]
local serie = {}
local current_data = 0
local data = host_stats["pktStats.recv"]["size"]
for label, value in pairs(data or {}) do
serie[#serie + 1] = { label = label, value = value }
end
for label, value in pairs(data or {}) do
total = total + value
serie[#serie + 1] = {
label = label,
value = value
}
end
local collapsed = stats_utils.collapse_stats(serie, 1, 5 --[[ threshold ]])
for _, value in pairs(collapsed or {}) do
current_data = current_data + 1
rsp["labels"][#rsp["labels"] + 1] = value.label
rsp["series"][#rsp["series"] + 1] = value.value
rsp["colors"][#rsp["colors"] + 1] = graph_utils.get_html_color(current_data)
end
local collapsed = stats_utils.collapse_stats(serie, 1, 5 --[[ threshold ]] )
for _, value in pairs(collapsed or {}) do
current_data = current_data + 1
rsp["labels"][#rsp["labels"] + 1] = value.label
rsp["series"][#rsp["series"] + 1] = value.value
rsp["colors"][#rsp["colors"] + 1] = graph_utils.get_html_color(current_data)
end
end
if total == 0 then
rsp = {}
end
rest_utils.answer(rest_utils.consts.success.ok, rsp)

View file

@ -1,7 +1,6 @@
--
-- (C) 2013-23 - ntop.org
--
dirs = ntop.getDirs()
package.path = dirs.installdir .. "/scripts/lua/modules/?.lua;" .. package.path
@ -15,29 +14,37 @@ local graph_utils = require "graph_utils"
local host_ip = _GET["host"]
local vlan = _GET["vlan"]
local host_stats = interface.getHostInfo(host_ip, vlan) or {}
local total = 0
local rsp = {
labels = {},
series = {},
colors = {},
labels = {},
series = {},
colors = {}
}
if host_stats and host_stats["pktStats.sent"] then
local serie = {}
local current_data = 0
local data = host_stats["pktStats.sent"]["size"]
local serie = {}
local current_data = 0
local data = host_stats["pktStats.sent"]["size"]
for label, value in pairs(data or {}) do
serie[#serie + 1] = { label = label, value = value }
end
for label, value in pairs(data or {}) do
total = total + value
serie[#serie + 1] = {
label = label,
value = value
}
end
local collapsed = stats_utils.collapse_stats(serie, 1, 5 --[[ threshold ]])
for _, value in pairs(collapsed or {}) do
current_data = current_data + 1
rsp["labels"][#rsp["labels"] + 1] = value.label
rsp["series"][#rsp["series"] + 1] = value.value
rsp["colors"][#rsp["colors"] + 1] = graph_utils.get_html_color(current_data)
end
local collapsed = stats_utils.collapse_stats(serie, 1, 5 --[[ threshold ]] )
for _, value in pairs(collapsed or {}) do
current_data = current_data + 1
rsp["labels"][#rsp["labels"] + 1] = value.label
rsp["series"][#rsp["series"] + 1] = value.value
rsp["colors"][#rsp["colors"] + 1] = graph_utils.get_html_color(current_data)
end
end
if total == 0 then
rsp = {}
end
rest_utils.answer(rest_utils.consts.success.ok, rsp)

View file

@ -1,7 +1,6 @@
--
-- (C) 2013-23 - ntop.org
--
dirs = ntop.getDirs()
package.path = dirs.installdir .. "/scripts/lua/modules/?.lua;" .. package.path
@ -15,41 +14,46 @@ local host_ip = _GET["host"]
local vlan = _GET["vlan"]
local host_stats = interface.getHostInfo(host_ip, vlan) or {}
local current_data = 0
local total = 0
local rsp = {
labels = {},
series = {},
colors = {},
labels = {},
series = {},
colors = {}
}
local pkt_distribution = {
['syn'] = 'SYN',
['synack'] = 'SYN/ACK',
['finack'] = 'FIN/ACK',
['rst'] = 'RST',
['syn'] = 'SYN',
['synack'] = 'SYN/ACK',
['finack'] = 'FIN/ACK',
['rst'] = 'RST'
}
if host_stats and host_stats["pktStats.sent"] then
local serie = {}
local current_data = 0
local data = host_stats["pktStats.sent"]["tcp_flags"]
local serie = {}
local current_data = 0
local data = host_stats["pktStats.sent"]["tcp_flags"]
for label, value in pairs(data or {}) do
serie[label] = value
end
for label, value in pairs(data or {}) do
total = total + value
serie[label] = value
end
data = host_stats["pktStats.recv"]["tcp_flags"]
data = host_stats["pktStats.recv"]["tcp_flags"]
for label, value in pairs(data or {}) do
serie[label] = serie[label] + value
end
for label, value in pairs(data or {}) do
serie[label] = serie[label] + value
end
for label, value in pairs(serie or {}) do
current_data = current_data + 1
rsp["labels"][#rsp["labels"] + 1] = pkt_distribution[label]
rsp["series"][#rsp["series"] + 1] = value
rsp["colors"][#rsp["colors"] + 1] = graph_utils.get_html_color(current_data)
end
for label, value in pairs(serie or {}) do
current_data = current_data + 1
rsp["labels"][#rsp["labels"] + 1] = pkt_distribution[label]
rsp["series"][#rsp["series"] + 1] = value
rsp["colors"][#rsp["colors"] + 1] = graph_utils.get_html_color(current_data)
end
end
if total == 0 then
rsp = {}
end
rest_utils.answer(rest_utils.consts.success.ok, rsp)