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"),
cpu = _("Processor"),
cpufreq = _("CPU Frequency"),
csv = _("CSV Output"),
df = _("Disk Space Usage"),
disk = _("Disk Usage"),
@ -56,7 +57,7 @@ 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" },
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" }
}

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'
option enable '1'
config statistics 'collectd_cpufreq'
option enable '0'
config statistics 'collectd_df'
option enable '0'
option Devices '/dev/mtdblock/4'

View file

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