luci-app-statistics: add support for thermal stats
authorHannu Nyman <hannu.nyman@iki.fi>
Sat, 19 Nov 2016 14:06:05 +0000 (16:06 +0200)
committerHannu Nyman <hannu.nyman@iki.fi>
Sat, 19 Nov 2016 14:10:57 +0000 (16:10 +0200)
Add support for temperature data from collect-mod-thermal

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua
applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/thermal.lua [new file with mode: 0644]
applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/thermal.lua [new file with mode: 0644]
applications/luci-app-statistics/root/etc/config/luci_statistics
applications/luci-app-statistics/root/usr/bin/stat-genconfig

index cf1bc2e..36c5554 100644 (file)
@@ -50,6 +50,7 @@ function index()
                sensors     = _("Sensors"),
                splash_leases = _("Splash Leases"),
                tcpconns        = _("TCP Connections"),
+               thermal =       _("Thermal"),
                unixsock        = _("UnixSock"),
                uptime          = _("Uptime")
        }
@@ -57,8 +58,12 @@ function index()
        -- our collectd menu
        local collectd_menu = {
                output  = { "csv", "network", "rrdtool", "unixsock" },
-               general = { "cpu", "cpufreq", "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/thermal.lua b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/thermal.lua
new file mode 100644 (file)
index 0000000..bdf41b7
--- /dev/null
@@ -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/thermal.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/thermal.lua
new file mode 100644 (file)
index 0000000..5322464
--- /dev/null
@@ -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
+
index 8fdcf43..774a838 100644 (file)
@@ -154,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'
 
index ab8159b..df9af15 100755 (executable)
@@ -423,6 +423,12 @@ plugins = {
                { "LocalPorts", "RemotePorts" }
        },
 
+       thermal = {
+               { },
+               { "IgnoreSelected" },
+               { "Device" }
+       },
+
        unixsock = {
                { "SocketFile", "SocketGroup", "SocketPerms" },
                { },