contrib/collectd_unix_sock.rb: Ruby class which abstracts the plain text protocol.
Used to talk to the unixsock plugin.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
Used to talk to the unixsock plugin.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
iptables plugin: Support the new libiptc API.
When libiptc has been officially made available as a shared library, the API
and ABI have been changed slightly. By checking for the existance of a type
that has been removed in that course, configure now checks which version is
available. This is quite error prone (the type might be re-introduced any
time), so this should be improved some time - currently, I do not have an idea
how to do so, though :-/
When libiptc has been officially made available as a shared library, the API
and ABI have been changed slightly. By checking for the existance of a type
that has been removed in that course, configure now checks which version is
available. This is quite error prone (the type might be re-introduced any
time), so this should be improved some time - currently, I do not have an idea
how to do so, though :-/
configure: Replaced src/libiptc/ with src/owniptc/.
src/owniptc: Moved the “src/libiptc” directory to “src/owniptc” to avoid build issues.
If there is a system-wide version of this library available, the “-I.”
argument (added automatically by automake :() will lead to the shipped
header files being used. Later, the binary is linked with the
system-wide library, which leads to severe problems when API/ABI
incompatibilities have been introduced in other versions.
If there is a system-wide version of this library available, the “-I.”
argument (added automatically by automake :() will lead to the shipped
header files being used. Later, the binary is linked with the
system-wide library, which leads to severe problems when API/ABI
incompatibilities have been introduced in other versions.
contrib/collection3: Allow numbers in type names.
When converting the on-disk type name to the displayed name,
do not strip numbers out.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
When converting the on-disk type name to the displayed name,
do not strip numbers out.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
contrib/collection3: GenericStacked: Use stacking by default.
contrib/collection3: Option to turn stacking off in GenericStacking
CDEFs are not stacked and AREAs are not added when "Stacking" is set to off.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
CDEFs are not stacked and AREAs are not added when "Stacking" is set to off.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
contrib/collection.cgi: Fix spam_check graph for email plugin.
Corrects DS name to fix email plugin's spam_check graph.
Signed-off-by: Brad Fritz <brad@fewerhassles.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Corrects DS name to fix email plugin's spam_check graph.
Signed-off-by: Brad Fritz <brad@fewerhassles.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
collection3: Add a module for the “java_memory” type.
collection3: Add the possibility to scale generic graphs.
contrib/cussh.pl: Add synopsis for specific commands.
You can now do
HELP FLUSH
to get information about the FLUSH command.
You can now do
HELP FLUSH
to get information about the FLUSH command.
contrib/cussh.pl: Fix a typo in the `FLUSH' command.
contrib/collection3: Common.pm: Sort identifiers by filename.
df plugin: Check ignorelists before stat'ing the filesystem.
→ See also: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=542859
→ See also: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=542859
powerdns plugin: Fix handling of the “LocalSocket” config option.
→ See also: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=535787
→ See also: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=535787
powerdns plugin: Set a timeout for the datagram socket.
→ See also: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=535787
→ See also: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=535787
Plugins using libcurl: Enable the ‘CURLOPT_FOLLOWLOCATION’ option.
This hopefully fixes Debian#541953.
This hopefully fixes Debian#541953.
Removed remaining traces of the "main" chain.
The chains are called "PreCache" and "PostCache" now.
The chains are called "PreCache" and "PostCache" now.
contrib/fedora/init.d-collectd: Fix condrestart.
on upgrade collectd is not restarted
https://bugzilla.redhat.com/show_bug.cgi?id=516273
Signed-off-by: Alan Pevec <apevec@redhat.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
on upgrade collectd is not restarted
https://bugzilla.redhat.com/show_bug.cgi?id=516273
Signed-off-by: Alan Pevec <apevec@redhat.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
src/utils_cache.c: Update GETVAL output when missing state.
Hi
I think that I've found a bug when use unixsock plugin. The problem is
releate with missing state, when no value is received by daemon for a
while in the cache is marked as MISSING, but the last value is still
showing even when machine is not reporting in a GETVAL and LISTVAL
commands. Some utlities like collectd-nagios does not work correctly,
and report an OKAY value when host is not reporting from a long time.
I attach a patch with check the state value of an cache entry in
uc_get_names and in uc_get_rate_by_name. This patch works for me, but
it's not very tested yet, and I not very sure about if it's a good way
to check the problem. The patch is tested on 4.7.2 release version.
BTW a GETSTATE command will be an useful feature too :P
Regards,
Andres
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Hi
I think that I've found a bug when use unixsock plugin. The problem is
releate with missing state, when no value is received by daemon for a
while in the cache is marked as MISSING, but the last value is still
showing even when machine is not reporting in a GETVAL and LISTVAL
commands. Some utlities like collectd-nagios does not work correctly,
and report an OKAY value when host is not reporting from a long time.
I attach a patch with check the state value of an cache entry in
uc_get_names and in uc_get_rate_by_name. This patch works for me, but
it's not very tested yet, and I not very sure about if it's a good way
to check the problem. The patch is tested on 4.7.2 release version.
BTW a GETSTATE command will be an useful feature too :P
Regards,
Andres
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
libvirt plugin: Further improve the connection handling.
Use the complaint mechanism for failed connection attempts and handle multiple
`Connection' configuration options like other options in other plugins (i. e.
later options overwrite earlier settings of the same name).
Use the complaint mechanism for failed connection attempts and handle multiple
`Connection' configuration options like other options in other plugins (i. e.
later options overwrite earlier settings of the same name).
libvirt plugin: Re-connect to libvirtd if connecting fails.
https://bugzilla.redhat.com/show_bug.cgi?id=480997
Signed-off-by: Alan Pevec <apevec@redhat.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
https://bugzilla.redhat.com/show_bug.cgi?id=480997
Signed-off-by: Alan Pevec <apevec@redhat.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
src/meta_data.c: Fix a typo.
collectd.conf(5): Fix two minor typos.
Merge remote branch 'tokkee/sh/collectd-4.6' into collectd-4.6
contrib/collection3: Don't use SI prefix for number of processes
I, at least, don't normally measure processes in "milliprocesses".
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
I, at least, don't normally measure processes in "milliprocesses".
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
collection3/etc/collection.conf: Reencoded in UTF-8.
Depending on the locale settings, RRDtool might fail to handle "special
characters" correctly. Using UTF-8 is a way to work around that issue.
Thanks to Daniel Danner for reporting and testing this.
Depending on the locale settings, RRDtool might fail to handle "special
characters" correctly. Using UTF-8 is a way to work around that issue.
Thanks to Daniel Danner for reporting and testing this.
src/utils_cache.c: Make really sure to free the right cache entry.
Make sure we do not try to free a (possibly some random) cache entry after
removing it from the AVL tree. Potentially, this might have caused invalid
free()s in some rare situations.
Make sure we do not try to free a (possibly some random) cache entry after
removing it from the AVL tree. Potentially, this might have caused invalid
free()s in some rare situations.
ChangeLog: Fix a typo.
Bumped version to 4.6.4; Updated ChangeLog.
src/configfile.c: Warn if an unexpected block is found.
If the `snmp' plugin isn't loaded (but a configuration exists), no
warning is printed because there are only blocks in the SNMP
configuration..
If the `snmp' plugin isn't loaded (but a configuration exists), no
warning is printed because there are only blocks in the SNMP
configuration..
build.sh, version-gen.sh: Remove bashisms.
Thanks to Peter Bray for pointing them out.
Thanks to Peter Bray for pointing them out.
src/utils_cache.c: `ce' *is* written to in `c_avl_remove'.
Therefore we should definitely free it.
Therefore we should definitely free it.
src/utils_cache.c: uc_check_timeout: Don't free a `ce' from the previous iteration.
This may habe been a cause of the reported assertion failure, too.
This may habe been a cause of the reported assertion failure, too.
src/utils_cache.c: Add a missing `continue'.
tokkee on IRC & I think we found a bug with utils_cache.c. The uc_check_timeout
function is missing a continue after the "uninteresting" service check, that
causes a key to be null.
This probably caused an assertion failure in cache_compare as reported by
Mariusz.
tokkee on IRC & I think we found a bug with utils_cache.c. The uc_check_timeout
function is missing a continue after the "uninteresting" service check, that
causes a key to be null.
This probably caused an assertion failure in cache_compare as reported by
Mariusz.
cpu plugin: Fix a typo.
memcached plugin: Pass `ai_hints' to `getaddrinfo'.
collectd2html.pl: Added --recursive command line option.
This option may be used to recursively scan the specified directory for RRD
files. This way, the script works reasonably well with collectd 4.
Thanks to 'ABL <abl@xxx.lt>' for providing an initial patch in Debian bug
#482185.
This option may be used to recursively scan the specified directory for RRD
files. This way, the script works reasonably well with collectd 4.
Thanks to 'ABL <abl@xxx.lt>' for providing an initial patch in Debian bug
#482185.
collectd2html.pl: Allow for --imgformat to be passed to rrdtool.
This was reported as Debian bug #482185.
Signed-off-by: Sebastian Harl <sh@tokkee.org>
This was reported as Debian bug #482185.
Signed-off-by: Sebastian Harl <sh@tokkee.org>
src/common.c: More reliable error reporting in `parse_values'.
src/utils_cache.c: Try to improve code readability.
Unfortunately, there is quite some magic going on there :/
Unfortunately, there is quite some magic going on there :/
src/utils_cache.c: Fix OKAY notifications for missing values.
dns plugin: Improve debug message.
libcollectdclient/client.c: Made sstrerror() static.
This is a private helper function only.
This is a private helper function only.
Bumped version to 4.6.3; Updated ChangeLog.
ChangeLog: Fixed sorting of entries.
configfile.c: Fixed Include'ing empty files.
When including empty files, a typo prevented that the "Include" child (of the
config parse tree) was removed correctly, leaving behind garbage which in turn
led to a segfault if the Include option was not the last element of the config
file.
Also, another Include option following the inclusion of an empty file used to
be ignored. This has been fixed as well.
When including empty files, a typo prevented that the "Include" child (of the
config parse tree) was removed correctly, leaving behind garbage which in turn
led to a segfault if the Include option was not the last element of the config
file.
Also, another Include option following the inclusion of an empty file used to
be ignored. This has been fixed as well.
collectd.conf(5): Fixed alphabetic sorting of plugins.
collectd.conf(5): Mark {Min,Max}PGVersion as deprecated.
Instead, document the {Min,Max}Version options.
Instead, document the {Min,Max}Version options.
collectd.conf: Added a sample ipmi config block.
rrdtool plugin: If `flush' cannot find the requested file, issue an `INFO'.
... and not a `WARNING' - this may happen under perfectly fine conditions.
(I. e. file exists but isn't updated anymore.)
... and not a `WARNING' - this may happen under perfectly fine conditions.
(I. e. file exists but isn't updated anymore.)
src/utils_cache.c: Fix incorrect checking of persistent thresholds.
I attached a patch to solve a problem related with notifications. When a value
is missing for a while (2 intervals), a FAILURE notification is raised, and if
Persist is false, the notification is repeated each interval, but man page
says:
If set to false (the default) then a notification is only generated if a
value is out of range but the previous value was okay.
So, I think that is a bug, if not I'm sorry for the noise :)
Regards,
Andres
P.S.: The problem is only a mixing in if conditions into uc_check_timeout
function.
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
I attached a patch to solve a problem related with notifications. When a value
is missing for a while (2 intervals), a FAILURE notification is raised, and if
Persist is false, the notification is repeated each interval, but man page
says:
If set to false (the default) then a notification is only generated if a
value is out of range but the previous value was okay.
So, I think that is a bug, if not I'm sorry for the noise :)
Regards,
Andres
P.S.: The problem is only a mixing in if conditions into uc_check_timeout
function.
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Disable LFS flags to avoid 32-bit solaris sys/swap.h error
build system: (Hopefully) added support for libtool 1.5 _and_ 2.2.
The macro LT_PACKAGE_VERSION (which appeared in libtool 2.2) is used to check
weather we're using libtool 2.2.
The macro LT_PACKAGE_VERSION (which appeared in libtool 2.2) is used to check
weather we're using libtool 2.2.
rrdtool plugin: Make sure the initialization is run only once.
Thanks to Amit Gupta for reporting this bug!
Thanks to Amit Gupta for reporting this bug!
src/plugin.c: Initiate the threshold checking again.
Hi,
I have the same problem in my instalation, exactly the same scenario, I found a
possible explanation in the plugin.c module. While in the 4.5 branch exists a
callback to function ut_check_threshold (defined in utils_threshold.c), in the
4.6.2 (and also in 4.6.1, I think), the callback is missing, so threshold
checking never runs.
In fact, a grep -r ut_check_threshold over src dir, only show the definition of
the function in ut_check_threshold module.
I'm not sure if it's really a bug, but when I patched my code, it works fine
for me :) I'm using the 4.6.2 version from tar.gz.
Best regards,
Andrés
The regression was introduced in 65954d9b.
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Hi,
I have the same problem in my instalation, exactly the same scenario, I found a
possible explanation in the plugin.c module. While in the 4.5 branch exists a
callback to function ut_check_threshold (defined in utils_threshold.c), in the
4.6.2 (and also in 4.6.1, I think), the callback is missing, so threshold
checking never runs.
In fact, a grep -r ut_check_threshold over src dir, only show the definition of
the function in ut_check_threshold module.
I'm not sure if it's really a bug, but when I patched my code, it works fine
for me :) I'm using the 4.6.2 version from tar.gz.
Best regards,
Andrés
The regression was introduced in 65954d9b.
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
configure.in: Be more verbose if libperl exists but doesn't support ithreads.
Merge branch 'collectd-4.5' into collectd-4.6
Conflicts:
ChangeLog
version-gen.sh
Conflicts:
ChangeLog
version-gen.sh
Bumped version to 4.5.4; Updated ChangeLog.
Merge branch 'collectd-4.5' into collectd-4.6
configure.in: Hint towards the CFLAGS instead of using $CC.
configure.in: Add hint for building solaris 64-bit binary.
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
swap module: Include <vm/anon.h> on Solaris.
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
configure.in: Check for `mysql_get_server_version' in libmyql.
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
configure.in: Use AC_HEADER_STDBOOL
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Merge branch 'collectd-4.5' into collectd-4.6
Conflicts:
src/Makefile.am
Conflicts:
src/Makefile.am
Build system: Straighten up building of the DF plugin.
In rare cases, e. g. Solaris, getmntent is available but neither the one nor
the two argument version could be recognized. This lead to `cu_mount_getlist'
returning NULL without an error, leading to the df plugin fail without notice.
While at it I re-implemented the dependency checking of the DF plugin to match
the proprocessor logic in utils_mount.c.
In rare cases, e. g. Solaris, getmntent is available but neither the one nor
the two argument version could be recognized. This lead to `cu_mount_getlist'
returning NULL without an error, leading to the df plugin fail without notice.
While at it I re-implemented the dependency checking of the DF plugin to match
the proprocessor logic in utils_mount.c.
Merge branch 'collectd-4.5' into collectd-4.6
uuid plugin: Pass `int' to `isxdigit'.
Fixes compilation on NetBSD and possibly other systems.
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Fixes compilation on NetBSD and possibly other systems.
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
tcpconns plugin: Compilation fixes for NetBSD.
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
libcollectdclient: Copy `sstrerror' from src/common.c.
I don't want to simply include common.h, since that pulls in a lot of
other daemon-related headers..
I don't want to simply include common.h, since that pulls in a lot of
other daemon-related headers..
Set process vmem_size and stack_size on FreeBSD
Fixes:
processes.c: In function 'ps_read':
processes.c:328: warning: 'pse.vmem_size' is used uninitialized in this function
processes.c:1300: note: 'pse.vmem_size' was declared here
processes.c:330: warning: 'pse.stack_size' is used uninitialized in this function
processes.c:1300: note: 'pse.stack_size' was declared here
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Cherry-picked *again* because the initial commit to the collectd-4.5
branch was incorrect. collectd-4.6 is the branch this should be in.
Conflicts:
src/processes.c
Fixes:
processes.c: In function 'ps_read':
processes.c:328: warning: 'pse.vmem_size' is used uninitialized in this function
processes.c:1300: note: 'pse.vmem_size' was declared here
processes.c:330: warning: 'pse.stack_size' is used uninitialized in this function
processes.c:1300: note: 'pse.stack_size' was declared here
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Cherry-picked *again* because the initial commit to the collectd-4.5
branch was incorrect. collectd-4.6 is the branch this should be in.
Conflicts:
src/processes.c
Merge branch 'collectd-4.5' into collectd-4.6
processes plugin: Fix compilation issues under OpenBSD.
Unfortunately OpenBSD support is non-trivial to add, so we'll keep that for
later.
Unfortunately OpenBSD support is non-trivial to add, so we'll keep that for
later.
Merge branch 'collectd-4.5' into collectd-4.6
rrdtool plugin: Make absolutely sure two local variables are initialized.
To make the compiler happy.
To make the compiler happy.
bind plugin: Fixes for FreeBSD 7.1
X/Open is needed for strptime,
sys/select.h is needed for some libcurl versions, and
mktime is the POSIX variant of timegm (+ localization).
X/Open is needed for strptime,
sys/select.h is needed for some libcurl versions, and
mktime is the POSIX variant of timegm (+ localization).
Various: Remove strict standards compliance defines.
ntpd plugin: Fix dereference of type-punned pointer.
Merge branch 'collectd-4.5' into collectd-4.6
processes plugin: Comment out nonexistent struct members.
We should reintroduce those values eventually.
We should reintroduce those values eventually.
memory plugin: Fix a formatstring error.
email plugin: Don't assume `pthread_t' is a `unsigned long'.
Merge branch 'collectd-4.5' into collectd-4.6
irq plugin: Force 32bit wrap-around.
battery plugin: Fix a typo.
src/libcollectdclient/: Specify _XOPEN_SOURCE=600.
irq plugin: Parse interrupt counters as unsigned long long.
Hello,
attached patch fixes accounting of most frequent interrupts (like NICs
on routers). E.g. in my case:
213: 76266 76357 76250 76397 2408617852 2411844062 2411642538 2411814531 PCI-MSI-edge eth1
214: 2621368360 2621463385 2621343444 2621386931 2349184 28 35 32 PCI-MSI-edge eth0
Here LONG_MAX (2147483647L) overflows in 10 days uptime and strtol()
returns the same value.
As all the values (including counter_t) are unsigned long long int, the
fix is trivial (for now there's no need to check for irq_value overflow;>).
--
Tomasz Pala <gotar@pld-linux.org>
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
Hello,
attached patch fixes accounting of most frequent interrupts (like NICs
on routers). E.g. in my case:
213: 76266 76357 76250 76397 2408617852 2411844062 2411642538 2411814531 PCI-MSI-edge eth1
214: 2621368360 2621463385 2621343444 2621386931 2349184 28 35 32 PCI-MSI-edge eth0
Here LONG_MAX (2147483647L) overflows in 10 days uptime and strtol()
returns the same value.
As all the values (including counter_t) are unsigned long long int, the
fix is trivial (for now there's no need to check for irq_value overflow;>).
--
Tomasz Pala <gotar@pld-linux.org>
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
csv plugin: Update copyright information.
Various plugins: Update copyright information.
Merge branch 'collectd-4.5' into collectd-4.6
Conflicts:
src/cpu.c
Conflicts:
src/cpu.c
src/libcollectdclient/: Check if EILSEQ is defined.
And fall back to EPROTO or EINVAL if it is not, e. g. under FreeBSD.
And fall back to EPROTO or EINVAL if it is not, e. g. under FreeBSD.
interface, memory, ping plugins: Update copyright information.
openvpn plugin: Correct copyright information.
cpu plugin: Updated copyright information.
mysql plugin: Fix a typo in my previous patch.
D'oh!
D'oh!
mysql plugin: Updated copyright information.
Set process vmem_size and stack_size on FreeBSD
Fixes:
processes.c: In function 'ps_read':
processes.c:328: warning: 'pse.vmem_size' is used uninitialized in this function
processes.c:1300: note: 'pse.vmem_size' was declared here
processes.c:330: warning: 'pse.stack_size' is used uninitialized in this function
processes.c:1300: note: 'pse.stack_size' was declared here
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Fixes:
processes.c: In function 'ps_read':
processes.c:328: warning: 'pse.vmem_size' is used uninitialized in this function
processes.c:1300: note: 'pse.vmem_size' was declared here
processes.c:330: warning: 'pse.stack_size' is used uninitialized in this function
processes.c:1300: note: 'pse.stack_size' was declared here
Signed-off-by: Doug MacEachern <dougm@hyperic.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
battery plugin: Don't complain about missing /proc/acpi/battery each interval.
Instead, complain once when the read callback is called for the first time.
Instead, complain once when the read callback is called for the first time.
Merge branch 'collectd-4.5' into collectd-4.6