* ffluci/statistics: port statistics to new controller api, add mysel to NOTICE
[project/luci.git] / applications / luci-statistics / src / controller / luci_statistics / luci_statistics.lua
1 --[[
2
3     Luci controller for statistics
4     Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
5     
6     $Id$
7
8 ]]--
9
10 module("ffluci.controller.luci_statistics.luci_statistics", package.seeall)
11
12 fs  = require("ffluci.fs")
13 tpl = require("ffluci.template")
14
15 function _entry( path, ... )
16         if fs.isfile( "/usr/lib/collectd/" .. path[4] .. ".so" ) then
17                 entry( path, ... )
18         end
19 end
20
21
22 function index()
23         entry({"admin", "statistics"},                          statistics_index,                       "Statistiken",          80)
24         entry({"admin", "statistics", "collectd"},              cbi("luci_statistics/collectd"),        "Collectd",             10)
25
26         entry({"admin", "statistics", "output"},                statistics_outputplugins,               "Ausgabeplugins",       20)
27         _entry({"admin", "statistics", "output", "rrdtool"},    cbi("luci_statistics/rrdtool"),         "RRDTool",              10)
28         _entry({"admin", "statistics", "output", "network"},    cbi("luci_statistics/network"),         "Netzwerk",             20)
29         _entry({"admin", "statistics", "output", "unixsock"},   cbi("luci_statistics/unixsock"),        "Unix Socket",          30)
30         _entry({"admin", "statistics", "output", "csv"},        cbi("luci_statistics/csv"),             "CSV",                  40)
31
32         entry({"admin", "statistics", "system"},                statistics_systemplugins,               "Systemplugins",        30)
33         _entry({"admin", "statistics", "system", "exec"},       cbi("luci_statistics/exec"),            "Exec",                 10)
34         _entry({"admin", "statistics", "system", "email"},      cbi("luci_statistics/email"),           "E-Mail",               20)
35         _entry({"admin", "statistics", "system", "df"},         cbi("luci_statistics/df"),              "Speicherplatz",        30)
36         _entry({"admin", "statistics", "system", "disk"},       cbi("luci_statistics/disk"),            "Datenträger",         40)
37         _entry({"admin", "statistics", "system", "irq"},        cbi("luci_statistics/irq"),             "Interrupts",           50)
38         _entry({"admin", "statistics", "system", "processes"},  cbi("luci_statistics/processes"),       "Prozesse",             60)
39
40         entry({"admin", "statistics", "network"},               statistics_networkplugins,              "Netzwerkplugins",      40)
41         _entry({"admin", "statistics", "network", "interface"}, cbi("luci_statistics/interface"),       "Schnittstellen",       10)
42         _entry({"admin", "statistics", "network", "netlink"},   cbi("luci_statistics/netlink"),         "Netlink",              20)
43         _entry({"admin", "statistics", "network", "iptables"},  cbi("luci_statistics/iptables"),        "Firewall",             30)
44         _entry({"admin", "statistics", "network", "tcpconns"},  cbi("luci_statistics/tcpconns"),        "Verbindungen",         40)
45         _entry({"admin", "statistics", "network", "ping"},      cbi("luci_statistics/ping"),            "Ping",                 50)
46         _entry({"admin", "statistics", "network", "dns"},       cbi("luci_statistics/dns"),             "DNS",                  60)
47 end
48
49
50 function statistics_index()
51         tpl.render("admin_statistics/index")
52 end
53
54 function statistics_outputplugins()
55         plugins = {
56                 rrdtool="RRDTool",
57                 network="Netzwerk",
58                 unixsock="Unix Socket",
59                 csv="CSV"
60         }
61
62         tpl.render("admin_statistics/outputplugins", {plugins=plugins})
63 end
64
65 function statistics_systemplugins()
66         plugins = {
67                 exec="Exec",
68                 email="E-Mail",
69                 disk="Datenträger",
70                 irq="Interrupts",
71                 processes="Prozesse"
72         }
73
74         tpl.render("admin_statistics/systemplugins", {plugins=plugins})
75 end
76
77 function statistics_networkplugins()
78         plugins = {
79                 interface="Schnittstellen",
80                 netlink="Netlink",
81                 iptables="Firewall",
82                 tcpconns="Verbindungen",
83                 ping="Ping",
84                 dns="DNS"
85         }
86
87         tpl.render("admin_statistics/networkplugins", {plugins=plugins})
88 end