Bruno Prémont [Wed, 21 Mar 2012 20:34:00 +0000 (21:34 +0100)]
df plugin: when checking / do it just once
Newer system symlink /etc/mtab to /proc/mounts which makes root
filesystem seem mounted twice, once as type rootfs and once for the
real device.
When / is selected for df plugin, skip the rootfs mount-point as
real root is usually mounted right on top of it.
Not skipping it causes rrdtool to complain about two updates for the
same timestamp, the first entry for rootfs passes but rrdtool complains
when stats for the second occurrence for real filesystem is being
considered.
Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org> Signed-off-by: Florian Forster <octo@collectd.org>
Some implementations of SNMP will send a special "variable" when you're
leaving the requested subtree with type "endOfMibView" aka.
"SNMP_ENDOFMIBVIEW". Examples of such implementations are Citrix
Netscalers and IBM's General Parallel File System (GPFS). Reading past
this special variable will result in weird values being returned.
This adds an appropriate check to csnmp_check_res_left_subtree().
Thanks to "Mark" for reporting this issue and clarifying.
src/Makefile.am: Unconditionally link collectd with libm.
Under FreeBSD, running src/utils_format_json.c fails because isfinite()
cannot be resolved. The GNU manpages for isnan() and isfinite() also
advise users to link with libm and AIX has had the library being linked
in for a while. Since it's such a basic library it seems easier to just
link with it unconditionally.
Will Hawkins [Fri, 22 Jun 2012 18:45:45 +0000 (14:45 -0400)]
Fix out-of-bound index in rrdtool.c
Fix a reference to argv[1] that is (always?)
outside the bounds of the argv array. It happens
during a log statement that seems to want
to actually refer to the rrd filename.
Florian Forster [Thu, 31 May 2012 13:09:43 +0000 (15:09 +0200)]
src/utils_dns.c: Rename the "s_addr" and "d_addr" variables.
On Solaris, there is a macro called "s_addr" resulting in syntax errors
when this is used as a variable name. The variables have been renamed to
circumvent this problem. Thanks to Maciej Bliziński for reporting this
problem and helping to debug it!
Florian Forster [Fri, 23 Mar 2012 21:21:43 +0000 (22:21 +0100)]
network plugin: Do not forward received notifications.
The network plugin would send out all notifications it got through its
callback, even the ones it received itself and even when forwarding was
disabled.
With this patch the network plugin will only transmit notifications created
locally -- forwarding of notifications is not implemented due to missing
loop-detection. For loop-detection we would have to keep track of the last
timestamp of each notifications, and since each host/plugin/type/-instance
field may be empty, this is not as straight forward as with value lists. If
someone needs this, they will need to invest some work I'm afraid.
Cyril Feraudet [Mon, 19 Mar 2012 10:08:06 +0000 (11:08 +0100)]
Proposal fix for large "MaxPacketSize" use.
When we use a "MaxPacketSize" over two thousand of octets (to pass huge
message in notification for example), buffer may not be flushed for a
while.
By flushing buffer when there is about 1400 octets, we're sure there is
no data too longer in.
Clemens Lang [Sat, 10 Mar 2012 01:30:26 +0000 (02:30 +0100)]
Makefile adds dependency on $(LIBLTDL), which is valued "-lltdl"
When building on OS X, the collectd build failed, because the collectd target
has a dependency on "-lltdl", which is the value the variable $(LIBLTDL) has.
Obviously, this should be the file name instead. I am however not sure how to
specify the correct filename in this case.
Florian Forster [Sun, 11 Mar 2012 11:13:37 +0000 (12:13 +0100)]
snmp plugin: Keep track of signedness of ASN values.
Prior to this, the signed variant was used when casting to gauge_t. This caused
problems with values larger than 2^31-1, since they were casted to negative
values.
Florian Forster [Thu, 1 Mar 2012 08:56:56 +0000 (09:56 +0100)]
processes plugin: Support processes with spaces in their names.
… without replacing the space in the process name. This is done by using
an equivalent of strchr() and strrchr() to determine the boundaries of
the second "field".
Louis Opter [Tue, 28 Feb 2012 17:23:06 +0000 (18:23 +0100)]
Use parse_value in the conntrack plugin and submit the result even if it's zero
Dear collectd,
Please find attached a patch for the conntrack plugin.
The patch is about two things:
1. submit the value even if it is zero (which is a legitimate value according
to types.db);
2. use parse_value and a value_t instead of directly using a double and atof(3).
The first point was important because it meant that the metric was not created
when the initial value was zero. (It could also lead to holes in your graphs).
The parse_value return value is correctly checked, note that the parsed file
ends with a \n which mean that parse_value always complain when running in
debug/info maybe we should replace it with a \0 before handing the buffer to
parse_value() ?
Timon [Tue, 28 Feb 2012 11:10:35 +0000 (17:10 +0600)]
Fix buffer size for memcached stats answer
Typical stats answer has ~1900 bytes length.
$ memcached-tool localhost:11211 stats | wc -c
1863
But buffer for this answer was only 1024 bytes length.
Gerrie Roos [Tue, 10 Jan 2012 07:00:42 +0000 (09:00 +0200)]
exec plugin: incorrectly exited select loop on signal.
Sometimes dead modules won't be started up correctly or running ones
would not generate stats anymore. Problem manifests more often under
load and on multicore hw
Florian Forster [Mon, 30 Jan 2012 15:29:13 +0000 (16:29 +0100)]
Revert "interface plugin: Fix for bogus interfaces under Solaris."
This results in problems on aggregated interfaces, amongst other things.
I guess Solaris users will need to use the "IgnoreSelected" option to
get rid of "bogus" interfaces.
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.
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>