luci-app-statistics: add support for thermal stats

Add support for temperature data from collect-mod-thermal

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
This commit is contained in:
Hannu Nyman 2016-11-19 16:06:05 +02:00
parent 840a414c3a
commit 1c27f6b462
5 changed files with 67 additions and 2 deletions

View file

@ -50,6 +50,7 @@ function index()
sensors = _("Sensors"), sensors = _("Sensors"),
splash_leases = _("Splash Leases"), splash_leases = _("Splash Leases"),
tcpconns = _("TCP Connections"), tcpconns = _("TCP Connections"),
thermal = _("Thermal"),
unixsock = _("UnixSock"), unixsock = _("UnixSock"),
uptime = _("Uptime") uptime = _("Uptime")
} }
@ -57,8 +58,12 @@ function index()
-- our collectd menu -- our collectd menu
local collectd_menu = { local collectd_menu = {
output = { "csv", "network", "rrdtool", "unixsock" }, output = { "csv", "network", "rrdtool", "unixsock" },
general = { "cpu", "cpufreq", "df", "disk", "email", "entropy", "exec", "irq", "load", "memory", "nut", "processes", "sensors", "uptime" }, general = { "cpu", "cpufreq", "df", "disk", "email",
network = { "conntrack", "dns", "interface", "iptables", "netlink", "olsrd", "openvpn", "ping", "splash_leases", "tcpconns", "iwinfo" } "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 -- create toplevel menu nodes

View file

@ -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

View file

@ -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

View file

@ -154,6 +154,11 @@ config statistics 'collectd_tcpconns'
option ListeningPorts '0' option ListeningPorts '0'
option LocalPorts '22 80' option LocalPorts '22 80'
config statistics 'collectd_thermal'
option enable '0'
option IgnoreSelected '0'
option Device ''
config statistics 'collectd_uptime' config statistics 'collectd_uptime'
option enable '0' option enable '0'

View file

@ -423,6 +423,12 @@ plugins = {
{ "LocalPorts", "RemotePorts" } { "LocalPorts", "RemotePorts" }
}, },
thermal = {
{ },
{ "IgnoreSelected" },
{ "Device" }
},
unixsock = { unixsock = {
{ "SocketFile", "SocketGroup", "SocketPerms" }, { "SocketFile", "SocketGroup", "SocketPerms" },
{ }, { },