summaryrefslogtreecommitdiffhomepage
path: root/applications/luci-app-statistics
diff options
context:
space:
mode:
Diffstat (limited to 'applications/luci-app-statistics')
-rw-r--r--applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua10
-rw-r--r--applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/cpufreq.lua14
-rw-r--r--applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/thermal.lua29
-rw-r--r--applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/cpufreq.lua25
-rw-r--r--applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/nut.lua42
-rw-r--r--applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/thermal.lua20
-rw-r--r--applications/luci-app-statistics/root/etc/config/luci_statistics8
-rwxr-xr-xapplications/luci-app-statistics/root/usr/bin/stat-genconfig12
8 files changed, 152 insertions, 8 deletions
diff --git a/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua b/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua
index 3f26aeed6f..36c5554d35 100644
--- a/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua
+++ b/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua
@@ -25,6 +25,7 @@ function index()
conntrack = _("Conntrack"),
cpu = _("Processor"),
+ cpufreq = _("CPU Frequency"),
csv = _("CSV Output"),
df = _("Disk Space Usage"),
disk = _("Disk Usage"),
@@ -49,6 +50,7 @@ function index()
sensors = _("Sensors"),
splash_leases = _("Splash Leases"),
tcpconns = _("TCP Connections"),
+ thermal = _("Thermal"),
unixsock = _("UnixSock"),
uptime = _("Uptime")
}
@@ -56,8 +58,12 @@ function index()
-- our collectd menu
local collectd_menu = {
output = { "csv", "network", "rrdtool", "unixsock" },
- general = { "cpu", "df", "disk", "email", "entropy", "exec", "irq", "load", "memory", "nut", "processes", "sensors", "uptime" },
- network = { "conntrack", "dns", "interface", "iptables", "netlink", "olsrd", "openvpn", "ping", "splash_leases", "tcpconns", "iwinfo" }
+ general = { "cpu", "cpufreq", "df", "disk", "email",
+ "entropy", "exec", "irq", "load", "memory",
+ "nut", "processes", "sensors", "thermal", "uptime" },
+ network = { "conntrack", "dns", "interface", "iptables",
+ "netlink", "olsrd", "openvpn", "ping",
+ "splash_leases", "tcpconns", "iwinfo" }
}
-- create toplevel menu nodes
diff --git a/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/cpufreq.lua b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/cpufreq.lua
new file mode 100644
index 0000000000..d1116630b4
--- /dev/null
+++ b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/cpufreq.lua
@@ -0,0 +1,14 @@
+-- Licensed to the public under the Apache License 2.0.
+
+m = Map("luci_statistics",
+ translate("CPU Frequency Plugin Configuration"),
+ translate("This plugin collects statistics about the processor frequency scaling."))
+
+-- collectd_cpufreq config section
+s = m:section( NamedSection, "collectd_cpufreq", "luci_statistics" )
+
+-- collectd_cpufreq.enable
+enable = s:option( Flag, "enable", translate("Enable this plugin") )
+enable.default = 0
+
+return m
diff --git a/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/thermal.lua b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/thermal.lua
new file mode 100644
index 0000000000..bdf41b79bc
--- /dev/null
+++ b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/thermal.lua
@@ -0,0 +1,29 @@
+-- Licensed to the public under the Apache License 2.0.
+
+m = Map("luci_statistics",
+ translate("Thermal Plugin Configuration"),
+ translate("The thermal plugin will monitor temperature of the system. " ..
+ "Data is typically read from /sys/class/thermal/*/temp " ..
+ "( '*' denotes the thermal device to be read, e.g. thermal_zone1 )")
+ )
+
+-- collectd_thermal config section
+s = m:section( NamedSection, "collectd_thermal", "luci_statistics" )
+
+-- collectd_thermal.enable
+enable = s:option( Flag, "enable", translate("Enable this plugin") )
+enable.default = 0
+
+-- collectd_thermal.tz (Device)
+tz = s:option( Value, "Device", translate("Monitor device(s) / thermal zone(s)"),
+ translate("Empty value = monitor all") )
+tz.optional = true
+tz:depends( "enable", 1 )
+
+-- collectd_thermal.ignoreselected (IgnoreSelected)
+ignoreselected = s:option( Flag, "IgnoreSelected", translate("Monitor all except specified") )
+ignoreselected.default = 0
+ignoreselected.optional = true
+ignoreselected:depends( "enable", 1 )
+
+return m
diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/cpufreq.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/cpufreq.lua
new file mode 100644
index 0000000000..25a72d2285
--- /dev/null
+++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/cpufreq.lua
@@ -0,0 +1,25 @@
+-- Licensed to the public under the Apache License 2.0.
+
+module("luci.statistics.rrdtool.definitions.cpufreq",package.seeall)
+
+function rrdargs( graph, plugin, plugin_instance, dtype )
+
+ return {
+ title = "%H: Processor frequency",
+ alt_autoscale = true,
+ vlabel = "Frequency (Hz)",
+ number_format = "%3.2lf%s",
+ data = {
+ sources = {
+ cpufreq = { "" }
+ },
+ options = {
+ cpufreq_0 = { color = "ff0000", title = "Core 0", noarea=true, overlay=true },
+ cpufreq_1 = { color = "0000ff", title = "Core 1", noarea=true, overlay=true },
+ cpufreq_2 = { color = "00ff00", title = "Core 2", noarea=true, overlay=true },
+ cpufreq_3 = { color = "00ffff", title = "Core 3", noarea=true, overlay=true }
+ }
+ }
+ }
+end
+
diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/nut.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/nut.lua
index 8b04ab8b38..dd93196902 100644
--- a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/nut.lua
+++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/nut.lua
@@ -32,23 +32,24 @@ function rrdargs( graph, plugin, plugin_instance, dtype )
options = {
current_output = { color = "00e000", title = "Output current", noarea=true, overlay=true },
- current_battery = { color = "0000ff", title = "Battery current", noarea=true, overlay=true },
+ current_battery = { color = "0000ff", title = "Battery current", noarea=true, overlay=true }
}
}
}
local percentage = {
- title = "%H: Battery charge on UPS \"%pi\"",
+ title = "%H: Battery charge/load on UPS \"%pi\"",
vlabel = "Percent",
y_min = "0",
y_max = "100",
number_format = "%5.1lf%%",
data = {
instances = {
- percent = "charge"
+ percent = { "charge", "load" }
},
options = {
- percent_charge = { color = "00ff00", title = "Charge level" }
+ percent_charge = { color = "00ff00", title = "Charge level" },
+ percent_load = { color = "ff0000", title = "Load" }
}
}
}
@@ -78,10 +79,39 @@ function rrdargs( graph, plugin, plugin_instance, dtype )
timeleft = { "battery" }
},
options = {
- timeleft_battery = { color = "0000ff", title = "Time left", transform_rpn = "60,/" }
+ timeleft_battery = { color = "0000ff", title = "Time left", transform_rpn = "60,/", noarea=true }
}
}
}
- return { voltages, currents, percentage, temperature, timeleft }
+ local power = {
+ title = "%H: Power on UPS \"%pi\"",
+ vlabel = "Power",
+ number_format = "%5.1lf%%",
+ data = {
+ instances = {
+ power = { "ups" }
+ },
+ options = {
+ power_ups = { color = "00ff00", title = "Power level" }
+ }
+ }
+ }
+
+ local frequencies = {
+ title = "%H: Frequencies on UPS \"%pi\"",
+ vlabel = "Hz",
+ number_format = "%5.1lfHz",
+ data = {
+ instances = {
+ frequency = { "input", "output" }
+ },
+
+ options = {
+ frequency_output = { color = "00e000", title = "Output frequency", noarea=true, overlay=true },
+ frequency_input = { color = "ffb000", title = "Input frequency", noarea=true, overlay=true }
+ }
+ }
+ }
+ return { voltages, currents, percentage, temperature, timeleft, power, frequencies }
end
diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/thermal.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/thermal.lua
new file mode 100644
index 0000000000..532246465e
--- /dev/null
+++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/thermal.lua
@@ -0,0 +1,20 @@
+-- Licensed to the public under the Apache License 2.0.
+
+module("luci.statistics.rrdtool.definitions.thermal",package.seeall)
+
+function rrdargs( graph, plugin, plugin_instance, dtype )
+
+ return {
+ title = "%H: Temperature of %pi",
+ alt_autoscale = true,
+ vlabel = "Celsius",
+ number_format = "%3.1lf%s",
+ data = {
+ types = { "temperature" },
+ options = {
+ temperature = { color = "ff0000", title = "Temperature", noarea=true },
+ }
+ }
+ }
+end
+
diff --git a/applications/luci-app-statistics/root/etc/config/luci_statistics b/applications/luci-app-statistics/root/etc/config/luci_statistics
index 4435d5c61e..774a8382e2 100644
--- a/applications/luci-app-statistics/root/etc/config/luci_statistics
+++ b/applications/luci-app-statistics/root/etc/config/luci_statistics
@@ -55,6 +55,9 @@ config statistics 'collectd_conntrack'
config statistics 'collectd_cpu'
option enable '1'
+config statistics 'collectd_cpufreq'
+ option enable '0'
+
config statistics 'collectd_df'
option enable '0'
option Devices '/dev/mtdblock/4'
@@ -151,6 +154,11 @@ config statistics 'collectd_tcpconns'
option ListeningPorts '0'
option LocalPorts '22 80'
+config statistics 'collectd_thermal'
+ option enable '0'
+ option IgnoreSelected '0'
+ option Device ''
+
config statistics 'collectd_uptime'
option enable '0'
diff --git a/applications/luci-app-statistics/root/usr/bin/stat-genconfig b/applications/luci-app-statistics/root/usr/bin/stat-genconfig
index 49d8a09935..df9af15261 100755
--- a/applications/luci-app-statistics/root/usr/bin/stat-genconfig
+++ b/applications/luci-app-statistics/root/usr/bin/stat-genconfig
@@ -273,6 +273,12 @@ plugins = {
{ }
},
+ cpufreq = {
+ { },
+ { },
+ { }
+ },
+
csv = {
{ "DataDir" },
{ "StoreRates" },
@@ -417,6 +423,12 @@ plugins = {
{ "LocalPorts", "RemotePorts" }
},
+ thermal = {
+ { },
+ { "IgnoreSelected" },
+ { "Device" }
+ },
+
unixsock = {
{ "SocketFile", "SocketGroup", "SocketPerms" },
{ },