1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
module("ffluci.controller.luci_statistics.luci_statistics", package.seeall)
local fs = require("ffluci.fs")
local tpl = require("ffluci.template")
local rrd = require("ffluci.statistics.rrdtool")
local data = require("ffluci.statistics.datatree").Instance()
function _entry( path, ... )
local file = path[4] or path[3]
if fs.isfile( "/usr/lib/collectd/" .. file .. ".so" ) then
entry( path, ... )
end
end
function index()
entry({"admin", "statistics"}, statistics_index, "Statistiken", 80)
entry({"admin", "statistics", "collectd"}, cbi("luci_statistics/collectd"), "Collectd", 10)
entry({"admin", "statistics", "output"}, statistics_outputplugins, "Ausgabeplugins", 20)
_entry({"admin", "statistics", "output", "rrdtool"}, cbi("luci_statistics/rrdtool"), "RRDTool", 10)
_entry({"admin", "statistics", "output", "network"}, cbi("luci_statistics/network"), "Netzwerk", 20)
_entry({"admin", "statistics", "output", "unixsock"}, cbi("luci_statistics/unixsock"), "Unix Socket", 30)
_entry({"admin", "statistics", "output", "csv"}, cbi("luci_statistics/csv"), "CSV", 40)
entry({"admin", "statistics", "system"}, statistics_systemplugins, "Systemplugins", 30)
_entry({"admin", "statistics", "system", "exec"}, cbi("luci_statistics/exec"), "Exec", 10)
_entry({"admin", "statistics", "system", "email"}, cbi("luci_statistics/email"), "E-Mail", 20)
_entry({"admin", "statistics", "system", "cpu"}, cbi("luci_statistics/cpu"), "Prozessor", 30)
_entry({"admin", "statistics", "system", "df"}, cbi("luci_statistics/df"), "Speicherplatz", 40)
_entry({"admin", "statistics", "system", "disk"}, cbi("luci_statistics/disk"), "Datenträger", 50)
_entry({"admin", "statistics", "system", "irq"}, cbi("luci_statistics/irq"), "Interrupts", 60)
_entry({"admin", "statistics", "system", "processes"}, cbi("luci_statistics/processes"), "Prozesse", 70)
entry({"admin", "statistics", "network"}, statistics_networkplugins, "Netzwerkplugins", 40)
_entry({"admin", "statistics", "network", "interface"}, cbi("luci_statistics/interface"), "Schnittstellen", 10)
_entry({"admin", "statistics", "network", "netlink"}, cbi("luci_statistics/netlink"), "Netlink", 20)
_entry({"admin", "statistics", "network", "iptables"}, cbi("luci_statistics/iptables"), "Firewall", 30)
_entry({"admin", "statistics", "network", "tcpconns"}, cbi("luci_statistics/tcpconns"), "Verbindungen", 40)
_entry({"admin", "statistics", "network", "ping"}, cbi("luci_statistics/ping"), "Ping", 50)
_entry({"admin", "statistics", "network", "dns"}, cbi("luci_statistics/dns"), "DNS", 60)
-- public views
entry({"freifunk", "statistics"}, statistics_index, "Statistiken", 80)
for i, plugin in ipairs( data:plugins() ) do
_entry({"freifunk", "statistics", plugin}, statistics_render, plugin, i)
end
end
function statistics_index()
tpl.render("admin_statistics/index")
end
function statistics_outputplugins()
plugins = {
rrdtool="RRDTool",
network="Netzwerk",
unixsock="Unix Socket",
csv="CSV"
}
tpl.render("admin_statistics/outputplugins", {plugins=plugins})
end
function statistics_systemplugins()
plugins = {
exec="Exec",
email="E-Mail",
disk="Datenträger",
irq="Interrupts",
processes="Prozesse"
}
tpl.render("admin_statistics/systemplugins", {plugins=plugins})
end
function statistics_networkplugins()
plugins = {
interface="Schnittstellen",
netlink="Netlink",
iptables="Firewall",
tcpconns="Verbindungen",
ping="Ping",
dns="DNS"
}
tpl.render("admin_statistics/networkplugins", {plugins=plugins})
end
function statistics_render()
local plugin = ffluci.dispatcher.request[3]
local images = { }
for i, inst in ipairs( data:plugin_instances( plugin ) ) do
local graph = rrd.Graph()
for i, img in ipairs( graph:render( "OpenWrt", plugin, inst ) ) do
table.insert( images, img )
end
end
tpl.render("public_statistics/graph", { images=images, plugin=plugin } )
end
|