Florian Forster [Fri, 21 Aug 2015 11:34:49 +0000 (13:34 +0200)]
src/daemon/utils_time_test.c: Test ms conversion.
The CDTIME_T_TO_MS() macro is used by all plugins using the cURL library,
so we should properly test this macro, too.
Florian Forster [Fri, 21 Aug 2015 10:49:04 +0000 (12:49 +0200)]
src/daemon/utils_time.h: Don't cast input to time_t.
The CDTIME_T_TO_TIME_T() macro used to cast its input to time_t, which is
a 32bit type on (some?) 32bit architectures.
This is a regression introduced in
db1391aaa66b8b8fad82219494f61f3452441f62
and not found in any released version of collectd. Phew!
Florian Forster [Fri, 21 Aug 2015 09:56:57 +0000 (11:56 +0200)]
src/daemon/utils_time.h: Treat nanoseconds as 64bit integer.
The assumed type was "long", because that is what struct timespec is
using. However, struct timespec only stores the fraction of a second in
the approrpiate field and therefore only cares about values up to 10^9.
We, on the other hand, assume a UNIX epoch in ns precision, so we
require the entire 64bits.
This patch changes the [MUN]S_TO_CDTIME_T() macros to assume a uint64_t
input and moves the casting to the appropriate data type for struct
time{val,spec} to the CDTIME_T_TO_TIME{VAL,SPEC}() macros. Appropriate
casts are added to the cURL based plugins which need to pass a "long" to
cURL when specifying timeouts.
It also fixes the unit test, which assigned large (> 32 bit) literals to
a "long" field, which breaks on 32 bit architectures.
Florian Forster [Wed, 19 Aug 2015 12:26:24 +0000 (14:26 +0200)]
src/daemon/utils_time.h: Improve precision of conversion macros.
This patch also adds test cases for most conversions. It is inspired by
collectd/go-collectd#5 and uses some of the same test cases.
Marc Fournier [Thu, 13 Aug 2015 21:36:19 +0000 (23:36 +0200)]
Merge remote-tracking branch 'origin/pr/1216'
Marc Fournier [Thu, 13 Aug 2015 21:35:57 +0000 (23:35 +0200)]
Merge remote-tracking branch 'origin/pr/1188'
Brad Davis [Tue, 11 Aug 2015 13:49:04 +0000 (07:49 -0600)]
Use the devstat struct directly instead of using devstat_compute_statistics().
Ruben Kerkhof [Mon, 10 Aug 2015 20:29:07 +0000 (22:29 +0200)]
powerdns: update recursor stats to 3.7.3
Fixes #555
Marc Fournier [Fri, 7 Aug 2015 08:14:59 +0000 (10:14 +0200)]
Merge branch 'collectd-5.5'
Marc Fournier [Fri, 7 Aug 2015 08:14:17 +0000 (10:14 +0200)]
Merge branch 'collectd-5.4' into collectd-5.5
Marc Fournier [Wed, 5 Aug 2015 16:05:02 +0000 (18:05 +0200)]
routeros: fix a small build error pointed out by clang
routeros.c:334:35: error: 'memset' call operates on objects of type 'cr_data_t' (aka 'struct cr_data_s') while the size is based on a different type 'cr_data_t *' (aka 'struct cr_data_s *') [-Werror,-Wsizeof-pointer-memaccess]
memset (router_data, 0, sizeof (router_data));
~~~~~~~~~~~ ^~~~~~~~~~~
routeros.c:334:35: note: did you mean to dereference the argument to 'sizeof' (and multiply it by the number of elements)?
memset (router_data, 0, sizeof (router_data));
^~~~~~~~~~~
Pierre-Yves Ritschard [Wed, 5 Aug 2015 09:08:22 +0000 (11:08 +0200)]
Merge pull request #1153 from mbethke/fix-unixsock
Fix Unixsock.pm
Pierre-Yves Ritschard [Wed, 5 Aug 2015 09:07:27 +0000 (11:07 +0200)]
Merge pull request #1178 from rubenk/fix-libmodbus-compilation-on-freebsd
core: include <sys/socket.h> in collectd.h
Natanael Copa [Wed, 5 Aug 2015 06:48:08 +0000 (08:48 +0200)]
ipc: enable _GNU_SOURCE to fix build with musl libc
This fixes compile the compile error:
> ipc.c:154:49: error: 'struct shm_info' has no member named 'used_ids'
> ipc_submit_g("shm", "segments", NULL, shm_info.used_ids);
> ^
Fixes #1147
Marc Fournier [Tue, 4 Aug 2015 16:39:33 +0000 (18:39 +0200)]
Revert "amqp: look for librabbitmq in /usr/local as well"
This reverts commit
c1c5087fd5d9e66427cee8c98c523519d578bee6.
... as a follow-up to the discussion which took place in #1201
Ruben Kerkhof [Tue, 4 Aug 2015 09:21:19 +0000 (11:21 +0200)]
fhcount: this plugin only works on Linux
Pierre-Yves Ritschard [Tue, 4 Aug 2015 10:39:45 +0000 (12:39 +0200)]
Merge pull request #1196 from rubenk/travis
Travis
Ruben Kerkhof [Tue, 4 Aug 2015 08:33:39 +0000 (10:33 +0200)]
Travis: add some whitelisted packages
The list is at https://github.com/travis-ci/apt-package-whitelist/blob/master/ubuntu-precise
Ruben Kerkhof [Tue, 4 Aug 2015 08:20:50 +0000 (10:20 +0200)]
Travis: test with both gcc and clang
Travis does this in parallel so the build doesn't become
twice as long.
Ruben Kerkhof [Tue, 4 Aug 2015 08:18:36 +0000 (10:18 +0200)]
Travis: run make distcheck
This way we test if we can successfully build from tarball,
and we didn't leave out any files or forgot to clean something up.
Ruben Kerkhof [Sun, 2 Aug 2015 12:05:17 +0000 (14:05 +0200)]
disk: no need to link with kvm, bsdxml, sbuf
Ruben Kerkhof [Sun, 2 Aug 2015 11:57:05 +0000 (13:57 +0200)]
disk: rename snap_present to snap
There's only one of them now
Ruben Kerkhof [Sun, 2 Aug 2015 11:47:18 +0000 (13:47 +0200)]
disk: gather statistics since boot on FreeBSD
disk_octets and disk_ops are derives, so we don't want rates
but absolute values.
I tested this with fio with a constant IO rate and confirmed
that the values are correct for disk_octets and disk_ops.
disk_time is a different matter and I need some help with that.
devstat_compute_statistics returns a long double and it didn't
seem to increase much on my system, but that might be because I
tested this with a fast SSD.
Xin Li [Tue, 4 Jun 2013 21:44:34 +0000 (14:44 -0700)]
Make disk plugin compatible with FreeBSD.
Marc Fournier [Mon, 3 Aug 2015 21:29:16 +0000 (23:29 +0200)]
Merge branch 'collectd-5.5'
Marc Fournier [Mon, 3 Aug 2015 21:28:39 +0000 (23:28 +0200)]
systemd.collectd.service: take debian/ubuntu's env file in account too
Marc Fournier [Mon, 3 Aug 2015 21:27:10 +0000 (23:27 +0200)]
Merge remote-tracking branch 'origin/pr/1191'
Marc Fournier [Mon, 3 Aug 2015 21:26:55 +0000 (23:26 +0200)]
Merge remote-tracking branch 'origin/pr/1181'
Marc Fournier [Mon, 3 Aug 2015 21:26:21 +0000 (23:26 +0200)]
Merge remote-tracking branch 'origin/pr/1175'
Marc Fournier [Mon, 3 Aug 2015 21:26:05 +0000 (23:26 +0200)]
Merge remote-tracking branch 'origin/pr/1164'
Marc Fournier [Mon, 3 Aug 2015 21:23:37 +0000 (23:23 +0200)]
Merge branch 'collectd-5.4' into collectd-5.5
Vincent Bernat [Mon, 3 Aug 2015 08:06:30 +0000 (10:06 +0200)]
logstash: initialize conf struct to 0
With YAJL 1 (at least on Ubuntu Precise), if `conf.indentString` is not
initialized correctly, we would get a segfault even when `conf.beautify`
is set to 0. We avoid this case by initializing the whole structure to
0. `conf.beautify = 0` is kept for explicitness.
Ruben Kerkhof [Sat, 1 Aug 2015 09:46:45 +0000 (11:46 +0200)]
Fix libmodbus detection on FreeBSD
We look for modbus/modbus.h in /usr/local/include/modbus
but we should look for modbus.h
This is only an issue on FreeBSD since /usr/local/include is not
in the default search path.
Ruben Kerkhof [Sat, 1 Aug 2015 11:01:30 +0000 (13:01 +0200)]
amqp: look for librabbitmq in /usr/local as well
This detects it automatically on FreeBSD.
Ideally we should just use pkg-config but that is
left as an exercise for the reader ;)
Ruben Kerkhof [Sat, 1 Aug 2015 11:22:07 +0000 (13:22 +0200)]
Fix varnish detection on FreeBSD
We look for varnish/vapi/vsc.h in /usr/include/varnish
but we should look for vapi/vsc.h
This is only an issue on FreeBSD since /usr/local/include is not
in the default search path.
Ruben Kerkhof [Sun, 2 Aug 2015 18:54:51 +0000 (20:54 +0200)]
irq: skip FIQ line in /proc/interrupts
/proc/interrupts on my Raspberry PI contains:
FIQ: usb_fiq
This line doesn't contain any per cpu counters
but we try to parse it anyway, resulting in:
parse_value: Failed to parse string as derive: usb_fiq.
Fixes #971
Ruben Kerkhof [Sat, 1 Aug 2015 18:18:51 +0000 (20:18 +0200)]
configure.ac: remove some redundant x'es
Ruben Kerkhof [Sat, 1 Aug 2015 18:21:41 +0000 (20:21 +0200)]
configure.ac: fix indentation
Ruben Kerkhof [Sat, 25 Jul 2015 10:32:06 +0000 (12:32 +0200)]
Fix a memory leak on shutdown
Fabien Wernli [Mon, 3 Aug 2015 08:15:56 +0000 (10:15 +0200)]
Use environmental variables from /etc/sysconfig/collectd
Change-Id: I948ce3d7a3071cc1ac26a24b059a5ee4aacba0d9
Pierre-Yves Ritschard [Sun, 2 Aug 2015 08:40:07 +0000 (10:40 +0200)]
travis: make check as well
Ruben Kerkhof [Sat, 1 Aug 2015 11:13:40 +0000 (13:13 +0200)]
Add more test stuff to .gitignore
Ruben Kerkhof [Sat, 1 Aug 2015 10:19:58 +0000 (12:19 +0200)]
core: include <sys/socket.h> in collectd.h
Fixes #1127
Marc Fournier [Sat, 1 Aug 2015 07:34:28 +0000 (09:34 +0200)]
Merge branch 'collectd-5.5'
Marc Fournier [Sat, 1 Aug 2015 07:30:22 +0000 (09:30 +0200)]
Merge branch 'collectd-5.4' into collectd-5.5
Shahul Hameed [Mon, 20 Jul 2015 17:06:23 +0000 (13:06 -0400)]
Add utils_parse_option.c/h to amqp plugin source files list
Ruben Kerkhof [Sat, 25 Jul 2015 09:57:12 +0000 (11:57 +0200)]
collectd -T: fix memory leak
Ruben Kerkhof [Sat, 25 Jul 2015 17:17:07 +0000 (19:17 +0200)]
Fix some small leaks on error paths
Ruben Kerkhof [Sat, 25 Jul 2015 19:29:50 +0000 (21:29 +0200)]
liboconfig: really fix lex warnings
Flex has two options to disable input and unput.
Turn them on.
Wojtek Bocer [Mon, 27 Jul 2015 08:16:46 +0000 (09:16 +0100)]
Add remark about length of HostnameFormat string in virt plugin
Marc Fournier [Sat, 1 Aug 2015 07:09:03 +0000 (09:09 +0200)]
Merge remote-tracking branch 'origin/pr/1168'
Shahul Hameed [Wed, 29 Jul 2015 15:06:50 +0000 (11:06 -0400)]
Use standard ints in write_kafka plugin for portability
Pierre-Yves Ritschard [Fri, 31 Jul 2015 15:02:03 +0000 (17:02 +0200)]
travis: move to new infra
Pierre-Yves Ritschard [Fri, 31 Jul 2015 15:01:19 +0000 (17:01 +0200)]
travis: update script
Pierre-Yves Ritschard [Fri, 31 Jul 2015 14:59:11 +0000 (16:59 +0200)]
travis: enable ci
Florian Forster [Tue, 14 Jul 2015 06:42:15 +0000 (08:42 +0200)]
src/utils_latency.c: Fix format string error.
Florian Forster [Tue, 14 Jul 2015 06:34:52 +0000 (08:34 +0200)]
src/utils_latency.c: Ensure that LLONG_MAX is defined.
EPEL5 doesn't have it in <limits.h> apparently.
Marc Fournier [Wed, 29 Jul 2015 09:29:42 +0000 (11:29 +0200)]
RPM specfile: take mqtt plugin in account
Ruben Kerkhof [Tue, 28 Jul 2015 09:59:35 +0000 (11:59 +0200)]
write_redis: fix a few typos in manpage
Also correct the maximum length of the node name.
The callback name is "write_redis/%s" so the maximum
length of a node name is DATA_MAX_NAME_LEN - strlen("write_redis") -1.
Ruben Kerkhof [Fri, 24 Jul 2015 20:57:19 +0000 (22:57 +0200)]
write_graphite: set service at config time
Ruben Kerkhof [Fri, 24 Jul 2015 20:40:11 +0000 (22:40 +0200)]
write_graphite: set service at config time
This fixes the (null) I saw in an error message:
write_graphite plugin: send to localhost:(null) (udp) failed with status -1 (Connection refused)
Ruben Kerkhof [Fri, 24 Jul 2015 20:37:36 +0000 (22:37 +0200)]
write_graphite: set default node at config time
Ruben Kerkhof [Fri, 24 Jul 2015 20:02:24 +0000 (22:02 +0200)]
write_graphite: remove #ifndefs
If these are defined somewhere else to a different value,
we'd like to know about it.
Matthias Bethke [Tue, 21 Jul 2015 08:02:16 +0000 (15:02 +0700)]
make _escape_argument() readonly-safe on older Perls
Matthias Bethke [Tue, 21 Jul 2015 08:00:49 +0000 (15:00 +0700)]
fix evil autoderef
Florian Forster [Thu, 16 Jul 2015 07:17:55 +0000 (09:17 +0200)]
src/utils_latency_test.c: Disable the "-1" test for now.
Issue: #1139
Florian Forster [Wed, 15 Jul 2015 08:30:25 +0000 (10:30 +0200)]
src/utils_latency_test.c: Assure that large latency values also work.
The cdtime_t representation of 99s doesn't fit into 32bit anymore, thereby
assuring that cdtime_t is actually 64bit on platforms that currently
don't pass the test, i.e. EPEL {5,6} on i386.
Issue: #1139
Florian Forster [Wed, 15 Jul 2015 07:57:41 +0000 (09:57 +0200)]
src/utils_latency_test.c: Log result of DOUBLE_TO_CDTIME_T() conversion.
The test fails on some i386 architectures. Time for some printf debugging.
Florian Forster [Tue, 14 Jul 2015 07:15:51 +0000 (09:15 +0200)]
src/daemon/utils_time_mock.c: Mark static return value as "ULL".
Build on i386 squeeze fails with:
utils_time_mock.c:31: error: integer constant is too large for 'long' type
Florian Forster [Tue, 14 Jul 2015 07:00:49 +0000 (09:00 +0200)]
Link libcommon.la with $(COMMON_LIBS).
This hopefully fixes link errors on Solaris:
CCLD test_utils_vl_lookup
Undefined first referenced
symbol in file
kstat_data_lookup daemon/.libs/libcommon.a(common.o)
kstat_lookup daemon/.libs/libcommon.a(common.o)
kstat_read daemon/.libs/libcommon.a(common.o)
getaddrinfo daemon/.libs/libcommon.a(common.o)
freeaddrinfo daemon/.libs/libcommon.a(common.o)
gai_strerror daemon/.libs/libcommon.a(common.o)
ld: fatal: symbol referencing errors. No output written to test_utils_vl_lookup
collect2: error: ld returned 1 exit status
Florian Forster [Tue, 14 Jul 2015 06:42:15 +0000 (08:42 +0200)]
src/utils_latency.c: Fix format string error.
Florian Forster [Tue, 14 Jul 2015 06:34:52 +0000 (08:34 +0200)]
src/utils_latency.c: Ensure that LLONG_MAX is defined.
EPEL5 doesn't have it in <limits.h> apparently.
Florian Forster [Tue, 14 Jul 2015 06:22:18 +0000 (08:22 +0200)]
plugin_mock.c: Declare "kc".
This hopefully fixes "make check" on Solaris, which currently fails
with:
CC common_test.o
CCLD test_common
Undefined first referenced
symbol in file
kc ./.libs/libcommon.a(common.o)
ld: fatal: symbol referencing errors. No output written to test_common
collect2: error: ld returned 1 exit status
Florian Forster [Tue, 14 Jul 2015 06:19:38 +0000 (08:19 +0200)]
Merge remote-tracking branch 'github/pr/1124'
Florian Forster [Mon, 13 Jul 2015 10:20:54 +0000 (12:20 +0200)]
Merge remote-tracking branch 'github/pr/1130'
Florian Forster [Mon, 13 Jul 2015 09:30:16 +0000 (11:30 +0200)]
src/utils_latency.c: Add unit test.
This test successfully reproduces the crash reported in #1131 by calling
latency_counter_add (l, DOUBLE_TO_CDTIME_T (-1.0));
Florian Forster [Mon, 13 Jul 2015 10:09:55 +0000 (12:09 +0200)]
Merge branch 'collectd-5.5'
Florian Forster [Mon, 13 Jul 2015 09:53:58 +0000 (11:53 +0200)]
src/utils_latency.c: Store "bin_width" as cdtime_t.
This solves the integer overflow when passing huge latency values to
latency_counter_add(). In addition to fixing the overflow the function
will now ignore values that are larger than LLONG_MAX, i.e. the longest
possible latency is 272 years. As a nice side-effect, the precission of
latency_counter_get_percentile() is improved.
Issue: #1131
Florian Forster [Sun, 12 Jul 2015 10:58:20 +0000 (12:58 +0200)]
src/utils_latency.c: Fix change_bin_width().
A missing cast when calculating "width_change_ratio" caused all metrics to
be moved to bucket #0.
Sebastian Pfahl [Fri, 10 Jul 2015 11:33:11 +0000 (11:33 +0000)]
Added option to choose redis database to use
Florian Forster [Fri, 10 Jul 2015 11:14:43 +0000 (13:14 +0200)]
Testing: Return failure from OK1() and other fixes.
* The tests for common and meta_data logged "not ok" but didn't signal
failure because OK1() didn't include a return(-1) line. Adding this line
caused some restructuring of the utils_vl_lookup test, because it used
that macro in non-int functions.
* Fix DBLEQ() to work correctly with an expected NaN. Previously, the
if condition would fall through to the "expect != actual" part, which
is true for "NaN != NaN".
* Let the mock cdtime() return a non-zero value, as the (invalid) zero
value is used in parse_values() to detect whether the time has been
parsed already. This lead to the "N:..." tests failing.
* Correct the expected behavior of meta_data_add_*() when keys already
exist: they're replaced rather than causing an error.
Ruben Kerkhof [Sat, 4 Jul 2015 20:49:49 +0000 (22:49 +0200)]
varnish: fix leak on read
Since VSM_Close doesn't free the object we leak a few bytes
every interval
Florian Forster [Fri, 10 Jul 2015 09:29:45 +0000 (11:29 +0200)]
Revert "fix leak on exit"
This reverts commit
35e6b9d366016300178a55b163ac0173d7be5874.
Ruben Kerkhof [Sat, 4 Jul 2015 21:04:30 +0000 (23:04 +0200)]
varnish: fix some leaks in error paths
Ruben Kerkhof [Sat, 4 Jul 2015 18:02:57 +0000 (20:02 +0200)]
fix leak on exit
Ruben Kerkhof [Sat, 4 Jul 2015 17:56:20 +0000 (19:56 +0200)]
plugin.c: plug leak on error
Ruben Kerkhof [Sat, 4 Jul 2015 17:54:49 +0000 (19:54 +0200)]
memcached: plug leak
Ruben Kerkhof [Sat, 4 Jul 2015 15:35:03 +0000 (17:35 +0200)]
gmond: plug a small leak on exit
Florian Forster [Fri, 10 Jul 2015 08:56:58 +0000 (10:56 +0200)]
src/daemon/meta_data.[ch]: Add unit test.
Florian Forster [Thu, 9 Jul 2015 07:37:41 +0000 (09:37 +0200)]
src/Makefile.am: Remove BUILD_WITH_LIBMOSQUITTO_CFLAGS.
This substitution is undefined.
Florian Forster [Thu, 9 Jul 2015 07:35:08 +0000 (09:35 +0200)]
Merge branch 'pr/36' into mqtt
Marc Fournier [Wed, 8 Jul 2015 22:24:21 +0000 (00:24 +0200)]
mqtt plugin: properly set CPPFLAGS in Makefile
This fixes the build when the --with-libmosquitto option is used.
Marc Fournier [Wed, 8 Jul 2015 22:07:36 +0000 (00:07 +0200)]
collectd.conf.pod: correct a tiny typo
Florian Forster [Wed, 8 Jul 2015 11:09:26 +0000 (13:09 +0200)]
mqtt plugin: Add support for libmosquitto, major version >0.
Florian Forster [Wed, 8 Jul 2015 10:41:04 +0000 (12:41 +0200)]
network plugin: Fix function name in error output.
Florian Forster [Wed, 8 Jul 2015 10:40:48 +0000 (12:40 +0200)]
daemon: Fix -Wunused-parameter warnings.
Florian Forster [Wed, 8 Jul 2015 10:39:56 +0000 (12:39 +0200)]
oconfig: Fix -Wshadow and -Wsign-compare warnings.
Also re-indent oconfig_clone().
Florian Forster [Wed, 8 Jul 2015 10:39:03 +0000 (12:39 +0200)]
Fix -Wshorten-64-to-32 warnings.
Florian Forster [Wed, 8 Jul 2015 10:36:35 +0000 (12:36 +0200)]
Fix -Wsign-conversion warnings.
Florian Forster [Wed, 8 Jul 2015 09:57:35 +0000 (11:57 +0200)]
daemon: Clean up the Upstart and Systemd notification code.
Document the use of "Linux abstract namespace sockets" and use sendto(2)
instead of sendmsg(2) to avoid having to initialize struct msghdr
and struct iovec. Removes the non-portable bzero() calls.