Jonathan Nieder [Mon, 9 Jan 2012 18:01:50 +0000 (19:01 +0100)]
common: check_create_dir(): Support symlinks as well.
Previously, the following situation would cause an endless look (as reported
by Michael Prokop in Debian bug #619123): the (CSV or RRD) datadir is a
symlink pointing to a non-existent target.
With this patch applied, check_create_dir() fails with "<file> exists but is
not a directory".
Sebastian Harl [Mon, 9 Jan 2012 10:16:19 +0000 (11:16 +0100)]
build system, ipvs plugin: Check for linux/ip_vs.h as well.
Also, try to find ip_vs.h without using KERNEL_CFLAGS at first. The Linux
kernel headers should not be used directly -- in current kernel versions this
generates warnings leading to build failures because of -Werror.
Toni Ylenius [Fri, 6 Jan 2012 16:13:56 +0000 (18:13 +0200)]
df: Set negative free space values to zero.
Some file systems (eg. UFS) may report negative free spave values.
Previously this caused underflow, but now it is prevented by setting
negative values to zero.
Aaron Brady [Sun, 15 Jan 2012 13:16:37 +0000 (13:16 +0000)]
Migration: Ensure destination directories exist when moving RRDs
If you have not run collectd 5 before, then when type instances
are migrated to plugin instances the destination directories
may not already exist. For example:
Florian Forster [Fri, 25 Nov 2011 09:48:22 +0000 (10:48 +0100)]
Merge "Fix file:// not working as return code is 0 and not 200, as fixed beforehand in curl_json. Remove mention of http in documention as file also works now (and ftp most likely too)" into collectd-4.10
Fabien Wernli [Fri, 4 Nov 2011 10:25:59 +0000 (11:25 +0100)]
Fix file:// not working as return code is 0 and not 200, as fixed
beforehand in curl_json.
Remove mention of http in documention as file also works now (and ftp most likely too)
interface plugin: Fix for bogus interfaces under Solaris.
Under newer versions of Solaris, the method for finding network interfaces
results in 'collectd' gathering statistics on an interface called 'mac', along
with 16 interfaces named 'wrsmd0' through 'wrsmd15' (which are for WCI Remote
Shared Memory). The 'mac' interface is especially problematic because it
occurs multiple times, which results in warnings from rrdtool about insertions
with the same timestamp.
irq plugin: Implement collection of non-numeric interrupts.
Hi all!
I've created a patch that enables collectd to collect all irqs present in
/proc/interrupts, with numeric and string names (NMI, LOC, RES, etc).
Two notices:
a) Unfortunately I was unable to build collectd from git repo (build.sh
failures), therefore I created this patch for latest stable release: 4.10.1
b) I am fairly unexperienced in C programming, so please inform me gently of my
mistakes:) But I am already using a patched version and it works fine.
Any feedback on code quality or recommendations are welcome.
Sebastian Harl [Wed, 24 Aug 2011 16:26:12 +0000 (18:26 +0200)]
processes plugin: Fixed handling of ProcessMatch regexes containing spaces.
Previously, something like 'ProcessMatch name "My Regex"' would have been
interpreted as three values. This was caused by using the old, non-complex
config interface which joins all config values using a space and passing the
resulting string to the plugin. The processes plugin used to use strsplit() to
re-gain a list of all values, obviously ignoring any quoting that might exist.
This has been fixed by using the complex config interface, which passes all
values as an array of strings and thus honoring the quoting handled by
liboconfig.
Florian Forster [Sun, 21 Aug 2011 14:40:23 +0000 (16:40 +0200)]
configure: Link with ip4tc and ip6tc, too.
This solves this problem:
octo@leeloo:/tmp $ gcc -o conftest -g -O2 conftest.c -liptc -ldl
/usr/bin/ld: /tmp/ccuJEDqP.o: undefined reference to symbol 'iptc_init'
/usr/bin/ld: note: 'iptc_init' is defined in DSO /lib64/libip4tc.so.0 so try adding it to the linker command line
/lib64/libip4tc.so.0: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
Why the iptables plugin compiles without this is beyond me.
When generating arguments for rrd_create, the previous
format string "%.1f", was rounding up the value too aggressively.
ex: for xff==0.9999 the result would be -> 1.0 (invalid value for xff!)
The new format string is "%.10f", which lead up to 10 digits after the
dot, enough to be close to the double type limit, and so handling
correctly the previous example.
The CSV plugin formerly used a relatively small output buffer. If you
had a large dataset, you would always get error -1 because the line
length was be too long. This patch extends the buffer.
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com> Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Bruno Prémont [Fri, 18 Mar 2011 07:24:40 +0000 (08:24 +0100)]
Fix compilation error with plugin_register_shutdown
Compiling collectd-4.10.2 on an OpenSuSE 11.3 system causes the
following error:
snmp.c: In function ‘module_register’:
snmp.c:1620:3: error: passing argument 1 of ‘plugin_register_shutdown’ discards qualifiers from pointer target type
plugin.h:275:5: note: expected ‘char *’ but argument is of type ‘const char *’
Convert plugin_register_shutdown's name argument from 'char *' to
'const char *' in order to match the other plugin_register_*
functions.
Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org> Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Gregory Szorc [Sat, 5 Mar 2011 06:25:45 +0000 (22:25 -0800)]
dispatch proper values in Python write plugin
Fixes the Python write callback so the appropriate value is dispatched to
Python. Previously, the code only looked at the first element of a data set
to determine which value type (GAUGE, COUNTER, etc) to dispatch. If your data
set consisted of multiple values of different types, then the Python write
plugin was receiving bad values for the elements at position n > 0 whose type
was not the same as that at position 0.
Andres J. Diaz [Tue, 1 Mar 2011 16:25:22 +0000 (17:25 +0100)]
Removed bogus checking in ut_config.
Since threshold is a plugin, the main config block (<Plugin "threshold">)
cannot contain only one keyword (as was mandatory in previous versions),
so checking must be removed.
Signed-off-by: Andres J. Diaz <ajdiaz@connectical.com> Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Andres J. Diaz [Tue, 1 Mar 2011 16:25:21 +0000 (17:25 +0100)]
Fix buffer length in parse_identifier_vl function.
In parse_identifier_vl function (common.c), the value passed to
sstrncpy as buffer length is the sizeof a char pointer, which
is 4bytes for 32bit arch and 8bytes for 64 bit ones.
This patch fix the length and truncate the buffer to the same size as
destination buffer.
Signed-off-by: Andres J. Diaz <ajdiaz@connectical.com> Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Florian Forster [Wed, 9 Feb 2011 06:28:03 +0000 (07:28 +0100)]
src/plugin.c: Print a more verbose error message if lt_dlopen() fails.
Since the Debian package doesn't depend on the libraries used by the
collectd plugins, some plugins may fail to load. ltdl reports this with
the very confusing error message "file not found". Since the plugin is
in fact available, many users don't realize a dependency is missing and
assume collectd is looking in the wrong directory -- and they are hardly
to blame for this.
This commit introduces a lengthy error message which hopefully points
users into the right direction.