luci-app-statistics: add support for CPU frequency scaling stats

Add support for 'cpufreq' plugin in collectd, which monitors
the CPU cores' frequencies. Some platforms enable dynamic
frequency scaling according to CPU load.

'cpufreq' plugin can currently be built for x86 and mvebu.
(and it should likely be enabled also for ipq806x)

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
This commit is contained in:
Hannu Nyman 2016-11-08 22:24:56 +02:00
parent 3936e79cf8
commit df3c8728b9
5 changed files with 50 additions and 1 deletions

View file

@ -25,6 +25,7 @@ function index()
conntrack = _("Conntrack"), conntrack = _("Conntrack"),
cpu = _("Processor"), cpu = _("Processor"),
cpufreq = _("CPU Frequency"),
csv = _("CSV Output"), csv = _("CSV Output"),
df = _("Disk Space Usage"), df = _("Disk Space Usage"),
disk = _("Disk Usage"), disk = _("Disk Usage"),
@ -56,7 +57,7 @@ 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", "df", "disk", "email", "entropy", "exec", "irq", "load", "memory", "nut", "processes", "sensors", "uptime" }, 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" } network = { "conntrack", "dns", "interface", "iptables", "netlink", "olsrd", "openvpn", "ping", "splash_leases", "tcpconns", "iwinfo" }
} }

View file

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

View file

@ -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 = "%4.0lf%s",
data = {
instances = {
cpufreq = { "3", "2", "1", "0" }
},
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

View file

@ -55,6 +55,9 @@ config statistics 'collectd_conntrack'
config statistics 'collectd_cpu' config statistics 'collectd_cpu'
option enable '1' option enable '1'
config statistics 'collectd_cpufreq'
option enable '0'
config statistics 'collectd_df' config statistics 'collectd_df'
option enable '0' option enable '0'
option Devices '/dev/mtdblock/4' option Devices '/dev/mtdblock/4'

View file

@ -273,6 +273,12 @@ plugins = {
{ } { }
}, },
cpufreq = {
{ },
{ },
{ }
},
csv = { csv = {
{ "DataDir" }, { "DataDir" },
{ "StoreRates" }, { "StoreRates" },