From 2d1830422b90d3dadc07b2d1ee05b0dc8ef7c583 Mon Sep 17 00:00:00 2001 From: Chizhong Jin Date: Sun, 14 Oct 2018 02:34:49 +0800 Subject: [PATCH] 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 --- .../luci_statistics/luci_statistics.lua | 3 ++- .../luasrc/model/cbi/luci_statistics/curl.lua | 24 +++++++++++++++++++ .../statistics/rrdtool/definitions/curl.lua | 22 +++++++++++++++++ .../root/etc/config/luci_statistics | 3 +++ .../root/usr/bin/stat-genconfig | 17 +++++++++++++ 5 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/curl.lua create mode 100644 applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/curl.lua diff --git a/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua b/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua index ec26f02d0d..b722341fca 100644 --- a/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua +++ b/applications/luci-app-statistics/luasrc/controller/luci_statistics/luci_statistics.lua @@ -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" } } diff --git a/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/curl.lua b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/curl.lua new file mode 100644 index 0000000000..606e1cb0da --- /dev/null +++ b/applications/luci-app-statistics/luasrc/model/cbi/luci_statistics/curl.lua @@ -0,0 +1,24 @@ +-- Copyright 2018 Chizhong Jin +-- 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 diff --git a/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/curl.lua b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/curl.lua new file mode 100644 index 0000000000..89a65a6b5f --- /dev/null +++ b/applications/luci-app-statistics/luasrc/statistics/rrdtool/definitions/curl.lua @@ -0,0 +1,22 @@ +-- Copyright 2018 Chizhong Jin +-- 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 diff --git a/applications/luci-app-statistics/root/etc/config/luci_statistics b/applications/luci-app-statistics/root/etc/config/luci_statistics index 8cc918e3db..1e841fec8a 100644 --- a/applications/luci-app-statistics/root/etc/config/luci_statistics +++ b/applications/luci-app-statistics/root/etc/config/luci_statistics @@ -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' diff --git a/applications/luci-app-statistics/root/usr/bin/stat-genconfig b/applications/luci-app-statistics/root/usr/bin/stat-genconfig index 2bf63c1fe6..7d1349b249 100755 --- a/applications/luci-app-statistics/root/usr/bin/stat-genconfig +++ b/applications/luci-app-statistics/root/usr/bin/stat-genconfig @@ -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\n" .. + "\t\tURL \"" .. sections[s].url .. "\"\n" .. + "\t\tMeasureResponseTime true\n" .. + "\t\n" + end + end + + return str +end + function config_iptables( c ) local str = "" @@ -297,6 +312,8 @@ plugins = { { } }, + curl = config_curl, + df = { { }, { "IgnoreSelected" }, -- 2.30.2