luci/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/cpu.lua
Florian Eckert 2be8aefe7f luci-app-statistics: add new cpu plugin options
Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2019-09-13 12:58:57 +02:00

169 lines
3 KiB
Lua

-- Copyright 2008 Freifunk Leipzig / Jo-Philipp Wich <jow@openwrt.org>
-- Licensed to the public under the Apache License 2.0.
module("luci.statistics.rrdtool.definitions.cpu",package.seeall)
local uci = require("luci.model.uci").cursor()
local reportbystate = uci:get("luci_statistics", "collectd_cpu", "ReportByState") or "0"
function item()
return luci.i18n.translate("Processor")
end
function rrdargs( graph, plugin, plugin_instance, dtype )
local p = {}
local title = "%H: Processor usage"
if #plugin_instance > 0 then
title = "%H: Processor usage on core #%pi"
end
if reportbystate == "1" then
local cpu = {
title = title,
y_min = "0",
alt_autoscale_max = true,
vlabel = "Jiffies",
number_format = "%5.1lf",
data = {
instances = {
cpu = {
"idle",
"interrupt",
"nice",
"softirq",
"steal",
"system",
"user",
"wait"
}
},
options = {
cpu_idle = {
color = "ffffff",
title = "Idle"
},
cpu_interrupt = {
color = "a000a0",
title = "Interrupt"
},
cpu_nice = {
color = "00e000",
title = "Nice"
},
cpu_softirq = {
color = "ff00ff",
title = "Softirq"
},
cpu_steal = {
color = "000000",
title = "Steal"
},
cpu_system = {
color = "ff0000",
title = "System"
},
cpu_user = {
color = "0000ff",
title = "User"
},
cpu_wait = {
color = "ffb000",
title = "Wait"
}
}
}
}
local percent = {
title = title,
y_min = "0",
alt_autoscale_max = true,
vlabel = "Percent",
number_format = "%5.1lf%%",
data = {
instances = {
percent = {
"idle",
"interrupt",
"nice",
"softirq",
"steal",
"system",
"user",
"wait"
}
},
options = {
percent_idle = {
color = "ffffff",
title = "Idle"
},
percent_interrupt = {
color = "a000a0",
title = "Interrupt"
},
percent_nice = {
color = "00e000",
title = "Nice"
},
percent_softirq = {
color = "ff00ff",
title = "Softirq"
},
percent_steal = {
color = "000000",
title = "Steal"
},
percent_system = {
color = "ff0000",
title = "System"
},
percent_user = {
color = "0000ff",
title = "User"
},
percent_wait = {
color = "ffb000",
title = "Wait"
}
}
}
}
local types = graph.tree:data_types( plugin, plugin_instance )
for _, t in ipairs(types) do
if t == "cpu" then
p[#p+1] = cpu
end
if t == "percent" then
p[#p+1] = percent
end
end
else
p = {
title = title,
y_min = "0",
alt_autoscale_max = true,
vlabel = "Percent",
number_format = "%5.1lf%%",
data = {
instances = {
percent = {
"active",
}
},
options = {
percent_active = {
color = "00e000",
title = "Active"
}
}
}
}
end
return p
end