The recent collectd release in late January contained only 5.2.1 and 5.1.2 (
http://collectd.org/news.shtml#news92 ), and no 4.10.x release was made.
Although 4.10.x is still marked as supported, it will probably be phased out
in future, as 5.0, 5.1 and 5.2 branches have already been released in
2011-2012. That prompted me to experiment again updating collectd to the
current version.
I tried updating to 5.1 in July and there were some quirks (
http://patchwork.openwrt.org/patch/2457/ ), which I have now been
straightened out.
I have compile-tested (with ar71xx) all collectd modules, and I have verified
the real-life functionality for the core plugins: Conntrack, DNS, Interfaces,
Memory, Netlink, Ping, Processor, System Load, Wireless.
The patch requires changes both to the collectd in packages feed and also to
Luci sources, as some of the data items have changed name or data file
structure. Both need to be patched at the same time.
So, I am including two separate patches, one for collectd in packages and one
for luci-statistics in Luci trunk.
Explanation of patches for collectd:
- FQDNLookup option has been turned on by default since 5.1 (See
http://git.verplant.org/?p=collectd.git;a=commit;h=e58f85bb68b4c45130bb6fdf40b51db95d2b71e5
). Having that option on causes collectd to refuse to start in a basic
Openwrt box as typically a fully qualified domain name does not exist for the
router. (That error related can only be properly seen when console is used to
start collectd. Otherwise Luci statistics collectd simply dies immediately
after starting it.) That option should be false by default. I included a new
patch 140-fix-fqdnlookup.patch to revert the change and to turn the option
off by default.
- quilt choked on some -Werror related patches, so I removed them from
003-remove-werror.patch.
- 120-fix_kernel_2.6.37.patch seems to be unnecessary as the file to be
patched has been removed. I removed it.
- 130-timeleft-max.patch is included upstream. I removed it.
(http://git.verplant.org/?p=collectd.git;a=commitdiff;h=d5b09f2bb673ac9396da52b85bcbd16c98b3d633)
Regarding data presentation in Luci-statistics, there are three changes
requiring patches to Luci:
-conntrack result data has changed name from "entropy" to "value".
-ping result data has changed name from "ping" to "value".
( see
http://git.verplant.org/?p=collectd.git;a=commitdiff;h=77a6905147798210ec17173bd5e4410adcc3a112
)
-interface plugin has changed rrd data file structure so that the plugin
instances (=interfaces) have separate data files. Luci needs to draw the
graph for each plugin instance, not for each data instance. (
http://git.verplant.org/?p=collectd.git;a=commitdiff;h=cc3640ba512862cd5745446f1f1a997dd4344454
)
The upgrade from 4.10.8 to 5.2.1 does not cause any significant increase in
size. Below is comparison:
perus@vbub:/Openwrt/trunk$ ls -l bin/ar71xx/packages/luci-app-s*
bin/ar71xx/packages/collectd*
58007 collectd_4.10.8-2_ar71xx.ipk
2289 collectd-mod-conntrack_4.10.8-2_ar71xx.ipk
2820 collectd-mod-cpu_4.10.8-2_ar71xx.ipk
2658 collectd-mod-interface_4.10.8-2_ar71xx.ipk
3209 collectd-mod-iwinfo_4.10.8-2_ar71xx.ipk
2370 collectd-mod-load_4.10.8-2_ar71xx.ipk
2870 collectd-mod-memory_4.10.8-2_ar71xx.ipk
13579 collectd-mod-network_4.10.8-2_ar71xx.ipk
5863 collectd-mod-ping_4.10.8-2_ar71xx.ipk
9521 collectd-mod-rrdtool_4.10.8-2_ar71xx.ipk
perus@ubvb:/Openwrt/trunk$ ls -l bin/ar71xx/packages/luci-app-s*
bin/ar71xx/packages/collectd*
57889 collectd_5.2.1-1_ar71xx.ipk
2313 collectd-mod-conntrack_5.2.1-1_ar71xx.ipk
2850 collectd-mod-cpu_5.2.1-1_ar71xx.ipk
2681 collectd-mod-interface_5.2.1-1_ar71xx.ipk
3239 collectd-mod-iwinfo_5.2.1-1_ar71xx.ipk
2382 collectd-mod-load_5.2.1-1_ar71xx.ipk
2879 collectd-mod-memory_5.2.1-1_ar71xx.ipk
13683 collectd-mod-network_5.2.1-1_ar71xx.ipk
5907 collectd-mod-ping_5.2.1-1_ar71xx.ipk
10043 collectd-mod-rrdtool_5.2.1-1_ar71xx.ipk
---
luci/trunk/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/conntrack.lua
(revision 9668)
+++
luci/trunk/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/conntrack.lua
(working copy)
@@ -22,7 +22,7 @@
number_format = "%5.0lf",
data = {
sources = {
- conntrack = { "entropy" }
+ conntrack = { "value" }
},
options = {
conntrack = {
---
luci/trunk/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/interface.lua
(revision 9668)
+++
luci/trunk/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/interface.lua
(working copy)
@@ -22,9 +22,9 @@
--
local traffic = {
- -- draw this diagram for each data instance
+ -- draw this diagram for each plugin instance
per_instance = true,
- title = "%H: Transfer on %di",
+ title = "%H: Transfer on %pi",
vlabel = "Bytes/s",
-- diagram data description
@@ -58,9 +58,9 @@
--
local packets = {
- -- draw this diagram for each data instance
+ -- draw this diagram for each plugin instance
per_instance = true,
- title = "%H: Packets on %di",
+ title = "%H: Packets on %pi",
vlabel = "Packets/s",
-- diagram data description
---
luci/trunk/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/ping.lua
(revision 9668)
+++
luci/trunk/applications/luci-statistics/luasrc/statistics/rrdtool/definitions/ping.lua
(working copy)
@@ -20,7 +20,7 @@
-- Ping roundtrip time
{ title = "%H: ICMP Round Trip Time", vlabel = "ms",
number_format = "%5.1lf ms", data = {
- sources = { ping = { "ping" } },
+ sources = { ping = { "value" } },
options = { ping__ping = { noarea = true, title = "%di"
} }
} },
--- trunk/feeds/packages/utils/collectd/Makefile (revision 35608)
+++ trunk/feeds/packages/utils/collectd/Makefile (working copy)
@@ -8,12 +8,12 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=collectd
-PKG_VERSION:=4.10.8
-PKG_RELEASE:=2
+PKG_VERSION:=5.2.1
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=http://collectd.org/files/
-PKG_MD5SUM:=7a60495208b9383225493c6dd6abb2f0
+PKG_MD5SUM:=350934cfea62d37e10191816744f0eb7
PKG_FIXUP:=autoreconf
PKG_REMOVE_FILES:=aclocal.m4 libltdl/aclocal.m4
@@ -22,11 +22,14 @@
PKG_BUILD_PARALLEL:=1
COLLECTD_PLUGINS_DISABLED:= \
+ amqp \
apple_sensors \
battery \
cpufreq \
curl_json \
+ curl_xml \
entropy \
+ ethstat \
genericjmx \
gmond \
hddtemp \
@@ -34,7 +37,9 @@
ipvs \
java \
libvirt \
+ lpar \
mbmon \
+ md \
memcachec \
memcached \
monitorus \
@@ -43,11 +48,13 @@
nfs \
notify_desktop \
notify_email \
+ numa \
openvz \
oracle \
perl \
pinba \
python \
+ redis \
routeros \
rrdcached \
serial \
@@ -56,6 +63,8 @@
tokyotyrant \
uuid \
vserver \
+ write_graphite \
+ write_mongodb \
xmms \
zfs_arc \
@@ -104,11 +113,11 @@
sensors \
snmp \
syslog \
+ table \
tail \
- table \
- ted \
tcpconns \
teamspeak2 \
+ ted \
thermal \
unixsock \
uptime \
--- trunk/feeds/packages/utils/collectd/patches/003-remove-werror.patch
(revision 35608)
+++ trunk/feeds/packages/utils/collectd/patches/003-remove-werror.patch
(working copy)
@@ -1,6 +1,6 @@
--- a/src/Makefile.am
+++ b/src/Makefile.am
-@@ -7,7 +7,7 @@ SUBDIRS += liboconfig
+@@ -4,7 +4,7 @@ SUBDIRS += liboconfig
endif
if COMPILER_IS_GCC
@@ -9,17 +9,6 @@
endif
AM_CPPFLAGS = -DPREFIX='"${prefix}"'
---- a/src/Makefile.in
-+++ b/src/Makefile.in
-@@ -1833,7 +1833,7 @@ top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
- SUBDIRS = libcollectdclient $(am__append_1) $(am__append_2)
--@COMPILER_IS_GCC_TRUE@AM_CFLAGS = -Wall -Werror
-+@COMPILER_IS_GCC_TRUE@AM_CFLAGS = -Wall
- AM_CPPFLAGS = -DPREFIX='"${prefix}"' \
- -DCONFIGFILE='"${sysconfdir}/${PACKAGE_NAME}.conf"' \
- -DLOCALSTATEDIR='"${localstatedir}"' \
--- a/src/libcollectdclient/Makefile.am
+++ b/src/libcollectdclient/Makefile.am
@@ -1,7 +1,7 @@
@@ -30,37 +19,4 @@
+AM_CFLAGS = -Wall
endif
- pkginclude_HEADERS = client.h lcc_features.h
---- a/src/libcollectdclient/Makefile.in
-+++ b/src/libcollectdclient/Makefile.in
-@@ -327,7 +327,7 @@ top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
- AUTOMAKE_OPTIONS = foreign no-dependencies
--@COMPILER_IS_GCC_TRUE@AM_CFLAGS = -Wall -Werror
-+@COMPILER_IS_GCC_TRUE@AM_CFLAGS = -Wall
- pkginclude_HEADERS = client.h lcc_features.h
- lib_LTLIBRARIES = libcollectdclient.la
- nodist_pkgconfig_DATA = libcollectdclient.pc
---- a/src/owniptc/Makefile.am
-+++ b/src/owniptc/Makefile.am
-@@ -3,7 +3,7 @@ AUTOMAKE_OPTIONS = foreign no-dependenci
- EXTRA_DIST = libiptc.c README.collectd
-
- if COMPILER_IS_GCC
--AM_CFLAGS = -Wall -Werror
-+AM_CFLAGS = -Wall
- endif
-
- noinst_LTLIBRARIES = libiptc.la
---- a/src/owniptc/Makefile.in
-+++ b/src/owniptc/Makefile.in
-@@ -296,7 +296,7 @@ top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
- AUTOMAKE_OPTIONS = foreign no-dependencies
- EXTRA_DIST = libiptc.c README.collectd
--@COMPILER_IS_GCC_TRUE@AM_CFLAGS = -Wall -Werror
-+@COMPILER_IS_GCC_TRUE@AM_CFLAGS = -Wall
- noinst_LTLIBRARIES = libiptc.la
- libiptc_la_SOURCES = libip4tc.c libip6tc.c \
- ipt_kernel_headers.h libip6tc.h libiptc.h linux_list.h \
+ pkginclude_HEADERS = collectd/client.h collectd/network.h
collectd/network_buffer.h collectd/lcc_features.h
---
trunk/feeds/packages/utils/collectd/patches/100-rrdtool-add-rrasingle-option.patch
(revision 35608)
+++
trunk/feeds/packages/utils/collectd/patches/100-rrdtool-add-rrasingle-option.patch
(working copy)
@@ -17,7 +17,7 @@
/* consolidation_functions = */ NULL,
/* consolidation_functions_num = */ 0
};
-@@ -1027,6 +1030,14 @@ static int rrd_config (const char *key,
+@@ -1060,6 +1063,14 @@ static int rrd_config (const char *key,
free (value_copy);
}
@@ -34,7 +34,7 @@
double tmp = atof (value);
--- a/src/utils_rrdcreate.c
+++ b/src/utils_rrdcreate.c
-@@ -122,6 +122,9 @@ static int rra_get (char ***ret, const v
+@@ -125,6 +125,9 @@ static int rra_get (char ***ret, const v
rts_num = rra_timespans_num;
}
--- trunk/feeds/packages/utils/collectd/patches/120-fix_kernel_2.6.37.patch
(revision 35608)
+++ trunk/feeds/packages/utils/collectd/patches/120-fix_kernel_2.6.37.patch
(working copy)
@@ -1,78 +0,0 @@
---- a/src/owniptc/libiptc.c
-+++ b/src/owniptc/libiptc.c
-@@ -81,11 +81,11 @@ static const char *hooknames[] = {
- };
-
- /* Convenience structures */
--struct ipt_error_target
-+ struct ipt_error_target2
- {
- STRUCT_ENTRY_TARGET t;
- char error[TABLE_MAXNAMELEN];
--};
-+};
-
- struct chain_head;
- struct rule_head;
-@@ -1007,10 +1007,10 @@ static int parse_table(TC_HANDLE_T h)
- /* Convenience structures */
- struct iptcb_chain_start{
- STRUCT_ENTRY e;
-- struct ipt_error_target name;
-+ struct ipt_error_target2 name;
- };
- #define IPTCB_CHAIN_START_SIZE (sizeof(STRUCT_ENTRY) +
\
-- ALIGN(sizeof(struct ipt_error_target)))
-+ ALIGN(sizeof(struct ipt_error_target2)))
-
- struct iptcb_chain_foot {
- STRUCT_ENTRY e;
-@@ -1021,10 +1021,10 @@ struct iptcb_chain_foot {
-
- struct iptcb_chain_error {
- STRUCT_ENTRY entry;
-- struct ipt_error_target target;
-+ struct ipt_error_target2 target;
- };
- #define IPTCB_CHAIN_ERROR_SIZE (sizeof(STRUCT_ENTRY) +
\
-- ALIGN(sizeof(struct ipt_error_target)))
-+ ALIGN(sizeof(struct ipt_error_target2)))
-
-
-
-@@ -1069,7 +1069,7 @@ static int iptcc_compile_chain(TC_HANDLE
- head->e.next_offset = IPTCB_CHAIN_START_SIZE;
- strcpy(head->name.t.u.user.name, ERROR_TARGET);
- head->name.t.u.target_size =
-- ALIGN(sizeof(struct ipt_error_target));
-+ ALIGN(sizeof(struct ipt_error_target2));
- strcpy(head->name.error, c->name);
- } else {
- repl->hook_entry[c->hooknum-1] = c->head_offset;
-@@ -1113,7 +1113,7 @@ static int iptcc_compile_chain_offsets(T
- if (!iptcc_is_builtin(c)) {
- /* Chain has header */
- *offset += sizeof(STRUCT_ENTRY)
-- + ALIGN(sizeof(struct ipt_error_target));
-+ + ALIGN(sizeof(struct ipt_error_target2));
- (*num)++;
- }
-
-@@ -1153,7 +1153,7 @@ static int iptcc_compile_table_prep(TC_H
- /* Append one error rule at end of chain */
- num++;
- offset += sizeof(STRUCT_ENTRY)
-- + ALIGN(sizeof(struct ipt_error_target));
-+ + ALIGN(sizeof(struct ipt_error_target2));
-
- /* ruleset size is now in offset */
- *size = offset;
-@@ -1177,7 +1177,7 @@ static int iptcc_compile_table(TC_HANDLE
- error->entry.target_offset = sizeof(STRUCT_ENTRY);
- error->entry.next_offset = IPTCB_CHAIN_ERROR_SIZE;
- error->target.t.u.user.target_size =
-- ALIGN(sizeof(struct ipt_error_target));
-+ ALIGN(sizeof(struct ipt_error_target2));
- strcpy((char *)&error->target.t.u.user.name, ERROR_TARGET);
- strcpy((char *)&error->target.error, "ERROR");
-
--- trunk/feeds/packages/utils/collectd/patches/130-timeleft-max.patch
(revision 35608)
+++ trunk/feeds/packages/utils/collectd/patches/130-timeleft-max.patch
(working copy)
@@ -1,14 +0,0 @@
-Derived from uptream commit d5b09f2b: http://octo.cx/d5b09f2
-
---- a/src/types.db
-+++ b/src/types.db
-@@ -152,7 +152,7 @@ tcp_connections value:GAUGE:0:429496729
- temperature value:GAUGE:-273.15:U
- threads value:GAUGE:0:U
- time_dispersion seconds:GAUGE:-1000000:1000000
--timeleft timeleft:GAUGE:0:3600
-+timeleft timeleft:GAUGE:0:U
- time_offset seconds:GAUGE:-1000000:1000000
- total_bytes value:DERIVE:0:U
- total_requests value:DERIVE:0:U
-
--- trunk/feeds/packages/utils/collectd/patches/140-fix-fqdnlookup.patch
(revision 0)
+++ trunk/feeds/packages/utils/collectd/patches/140-fix-fqdnlookup.patch
(revision 0)
@@ -0,0 +1,11 @@
+--- a/src/configfile.c
++++ b/src/configfile.c
+@@ -97,7 +97,7 @@ static cf_global_option_t cf_global_opti
+ {"BaseDir", NULL, PKGLOCALSTATEDIR},
+ {"PIDFile", NULL, PIDFILE},
+ {"Hostname", NULL, NULL},
+- {"FQDNLookup", NULL, "true"},
++ {"FQDNLookup", NULL, "false"},
+ {"Interval", NULL, NULL},
+ {"ReadThreads", NULL, "5"},
+ {"Timeout", NULL, "2"},
---
trunk/feeds/packages/utils/collectd/patches/200-fix-git-describe-error.patch
(revision 35608)
+++
trunk/feeds/packages/utils/collectd/patches/200-fix-git-describe-error.patch
(working copy)
@@ -2,7 +2,7 @@
+++ b/version-gen.sh
@@ -2,7 +2,7 @@
- DEFAULT_VERSION="4.10.8.git"
+ DEFAULT_VERSION="5.2.1.git"
-VERSION="`git describe 2> /dev/null | sed -e 's/^collectd-//'`"
+#VERSION="`git describe 2> /dev/null | sed -e 's/^collectd-//'`"
--- trunk/feeds/packages/utils/collectd/patches/900-add-iwinfo-plugin.patch
(revision 35608)
+++ trunk/feeds/packages/utils/collectd/patches/900-add-iwinfo-plugin.patch
(working copy)
@@ -1,6 +1,6 @@
--- a/configure.in
+++ b/configure.in
-@@ -490,6 +490,9 @@ AC_CHECK_HEADERS(netinet/if_ether.h, [],
+@@ -542,6 +542,9 @@ AC_CHECK_HEADERS(net/pfvar.h, [have_net_
have_termios_h="no"
AC_CHECK_HEADERS(termios.h, [have_termios_h="yes"])
@@ -10,7 +10,7 @@
#
# Checks for typedefs, structures, and compiler characteristics.
#
-@@ -4081,6 +4084,7 @@ plugin_interface="no"
+@@ -4561,6 +4564,7 @@ plugin_interface="no"
plugin_ipmi="no"
plugin_ipvs="no"
plugin_irq="no"
@@ -18,7 +18,7 @@
plugin_libvirt="no"
plugin_load="no"
plugin_memory="no"
-@@ -4388,6 +4392,7 @@ AC_PLUGIN([ipmi], [$plugin_ipmi],
+@@ -4888,6 +4892,7 @@ AC_PLUGIN([ipmi], [$plugin_ipmi],
AC_PLUGIN([iptables], [$with_libiptc], [IPTables rule counters])
AC_PLUGIN([ipvs], [$plugin_ipvs], [IPVS connection statistics])
AC_PLUGIN([irq], [$plugin_irq], [IRQ statistics])
@@ -26,7 +26,7 @@
AC_PLUGIN([java], [$with_java], [Embed the Java Virtual
Machine])
AC_PLUGIN([libvirt], [$plugin_libvirt], [Virtual machine statistics])
AC_PLUGIN([load], [$plugin_load], [System load])
-@@ -4666,6 +4671,7 @@ Configuration:
+@@ -5180,6 +5185,7 @@ Configuration:
protobuf-c . . . . . $have_protoc_c
oracle . . . . . . . $with_oracle
python . . . . . . . $with_python
@@ -34,7 +34,7 @@
Features:
daemon mode . . . . . $enable_daemon
-@@ -4705,6 +4711,7 @@ Configuration:
+@@ -5222,6 +5228,7 @@ Configuration:
iptables . . . . . . $enable_iptables
ipvs . . . . . . . . $enable_ipvs
irq . . . . . . . . . $enable_irq
@@ -44,7 +44,7 @@
load . . . . . . . . $enable_load
--- a/src/collectd.conf.in
+++ b/src/collectd.conf.in
-@@ -82,6 +82,7 @@ FQDNLookup true
+@@ -94,6 +94,7 @@
#@BUILD_PLUGIN_IPMI_TRUE@LoadPlugin ipmi
#@BUILD_PLUGIN_IPVS_TRUE@LoadPlugin ipvs
#@BUILD_PLUGIN_IRQ_TRUE@LoadPlugin irq
@@ -52,7 +52,7 @@
#@BUILD_PLUGIN_JAVA_TRUE@LoadPlugin java
#@BUILD_PLUGIN_LIBVIRT_TRUE@LoadPlugin libvirt
@BUILD_PLUGIN_LOAD_TRUE@@BUILD_PLUGIN_LOAD_TRUE@LoadPlugin load
-@@ -376,6 +377,12 @@ FQDNLookup true
+@@ -433,6 +434,12 @@
# IgnoreSelected true
#</Plugin>
@@ -67,7 +67,7 @@
# JVMArg "-Djava.class.path=@prefix@/share/collectd/java/collectd-api.jar"
--- a/src/collectd.conf.pod
+++ b/src/collectd.conf.pod
-@@ -1478,6 +1478,27 @@ and all other interrupts are collected.
+@@ -1784,6 +1784,27 @@ and all other interrupts are collected.
=back
@@ -250,7 +250,7 @@
+}
--- a/src/Makefile.am
+++ b/src/Makefile.am
-@@ -453,6 +453,15 @@ collectd_LDADD += "-dlopen" irq.la
+@@ -508,6 +508,15 @@ collectd_LDADD += "-dlopen" irq.la
collectd_DEPENDENCIES += irq.la
endif
@@ -268,8 +268,11 @@
java_la_SOURCES = java.c
--- a/src/types.db
+++ b/src/types.db
-@@ -171,3 +171,4 @@ voltage value:GAUGE:U:U
+@@ -183,6 +183,7 @@ voltage value:GAUGE:U:U
vs_memory value:GAUGE:0:9223372036854775807
vs_processes value:GAUGE:0:65535
vs_threads value:GAUGE:0:65535
+stations value:GAUGE:0:256
+ #
+ # Legacy types
+ # (required for the v5 upgrade target)
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel