pp-statistics: add support for cUrl

Add collectd-mod-curl plugin support. Which can do some complex track,
such as grab stock, but by now, only response time are supported.

Signed-off-by: Chizhong Jin <pjincz@gmail.com>
This commit is contained in:
Chizhong Jin 2018-10-14 02:34:49 +08:00
parent 4f9e23f2b6
commit 2d1830422b
5 changed files with 68 additions and 1 deletions

View file

@ -29,6 +29,7 @@ function index()
cpu = _("Processor"),
cpufreq = _("CPU Frequency"),
csv = _("CSV Output"),
curl = _("cUrl"),
df = _("Disk Space Usage"),
disk = _("Disk Usage"),
dns = _("DNS"),
@ -63,7 +64,7 @@ function index()
general = { "apcups", "contextswitch", "cpu", "cpufreq", "df",
"disk", "email", "entropy", "exec", "irq", "load", "memory",
"nut", "processes", "sensors", "thermal", "uptime" },
network = { "conntrack", "dns", "interface", "iptables",
network = { "conntrack", "curl", "dns", "interface", "iptables",
"netlink", "olsrd", "openvpn", "ping",
"splash_leases", "tcpconns", "iwinfo" }
}

View file

@ -0,0 +1,24 @@
-- Copyright 2018 Chizhong Jin <pjincz@gmail.com>
-- Licensed to the public under the BSD 3-clause license
m = Map("luci_statistics",
translate("cUrl Plugin Configuration"))
s = m:section(NamedSection, "collectd_curl")
s_enable = s:option(Flag, "enable", translate("Enable this plugin"))
s_enable.default = 0
page = m:section(TypedSection, "collectd_curl_page")
page.addremove = true
page.anonymous = true
page.template = "cbi/tblsection"
page.sortable = true
page_enable = page:option(Flag, "enable", translate("Enable"))
page_enable.default = 1
page_name = page:option(Value, "name", translate("Name"))
page_addr = page:option(Value, "url", translate("URL"))
return m

View file

@ -0,0 +1,22 @@
-- Copyright 2018 Chizhong Jin <pjincz@gmail.com>
-- Licensed to the public under the BSD 3-clause license
module("luci.statistics.rrdtool.definitions.curl", package.seeall)
function rrdargs( graph, plugin, plugin_instance, dtype )
return {
title = "%H: cUrl Response Time for #%pi",
y_min = "0",
alt_autoscale_max = true,
vlabel = "Response Time",
number_format = "%5.1lf%Ss",
data = {
types = { "response_time" },
options = {
response_time = {
title = ""
}
}
}
}
end

View file

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

View file

@ -117,6 +117,21 @@ function config_exec( c )
return str
end
function config_curl( c )
local str = ""
for s in pairs(sections) do
if sections[s][".type"] == "collectd_curl_page" then
str = str .. "\t<Page \"" .. sections[s].name .. "\">\n" ..
"\t\tURL \"" .. sections[s].url .. "\"\n" ..
"\t\tMeasureResponseTime true\n" ..
"\t</Page>\n"
end
end
return str
end
function config_iptables( c )
local str = ""
@ -297,6 +312,8 @@ plugins = {
{ }
},
curl = config_curl,
df = {
{ },
{ "IgnoreSelected" },