processes: use long for pids on linux and solaris
Up to now, we had a mix of `int`, `long` and `pid_t` to represent the
variable part of `/proc/<PID>/status` and friends. This patch
standardizes on `long` on the Linux and Solaris platforms.
The max size of `int` is smaller than the maximum number of processes
current kernels support. `pid_t` is used to ensure portability of
functions such as `getpid()`, which aren't used in this plugin, and
apparently resolves to an `int` on Solaris.
This is a follow up to bb978c1, which triggered a format string issue on
solaris 64 bit.
Up to now, we had a mix of `int`, `long` and `pid_t` to represent the
variable part of `/proc/<PID>/status` and friends. This patch
standardizes on `long` on the Linux and Solaris platforms.
The max size of `int` is smaller than the maximum number of processes
current kernels support. `pid_t` is used to ensure portability of
functions such as `getpid()`, which aren't used in this plugin, and
apparently resolves to an `int` on Solaris.
This is a follow up to bb978c1, which triggered a format string issue on
solaris 64 bit.
Merge branch 'collectd-5.5'
Merge branch 'collectd-5.4' into collectd-5.5
Merge pull request #1521 from coreykosak/factor-out-common-code
Factor out some common functionality
Factor out some common functionality
Merge pull request #1540 from mfournier/write_sensu_segfault_fix
write_sensu: avoid calling strlen() on variable set to NULL
write_sensu: avoid calling strlen() on variable set to NULL
Merge pull request #1529 from jamtur01/patch-1
Fixed typo in CounterSum documentation
Fixed typo in CounterSum documentation
RPM specfile: re-enable varnish plugin on EL7
... as the collectd-5.5 line now supports the varnish 4 API.
... as the collectd-5.5 line now supports the varnish 4 API.
write_sensu: avoid calling strlen() on variable set to NULL
This fixes a segfault when no `Tag` option is set.
This fixes a segfault when no `Tag` option is set.
Fix the addres of the Free Software Foundation
Fixed typo in CounterSum documentation
Revert "Revert "openvpn plugin: Fix "Dead assignment" warning.""
This reverts commit b40a0ef00b49cbc4d828ca2cd928c98dd27834c0.
This reverts commit b40a0ef00b49cbc4d828ca2cd928c98dd27834c0.
Merge branch 'collectd-5.4' into collectd-5.5
turbostat: fix whitespaces in log messages
Don't divide by 0 when doing percentages (e.g. with the swap plugin).
Prior to this change, if all the values being sent sum to zero, then the
calculated percentage is a division by 0 which is either Inf or NaN
depending on the numerator.
This is not a theoretical concern: it can easily happen if all the input
gauges are 0.
This change forces the output to be zero if the denominator is zero.
Prior to this change, if all the values being sent sum to zero, then the
calculated percentage is a division by 0 which is either Inf or NaN
depending on the numerator.
This is not a theoretical concern: it can easily happen if all the input
gauges are 0.
This change forces the output to be zero if the denominator is zero.
Provide a unified signature for ps_get_cmdline.
Prior to this change, ps_get_cmdline had different signatures for
KERNEL_LINUX vs. KERNEL_SOLARIS. This means that callers who want to
call this function would have to have an #if..#else that controlled which
variant of the function to call.
By giving them the same signature, callers don't have to worry about
that.
Prior to this change, ps_get_cmdline had different signatures for
KERNEL_LINUX vs. KERNEL_SOLARIS. This means that callers who want to
call this function would have to have an #if..#else that controlled which
variant of the function to call.
By giving them the same signature, callers don't have to worry about
that.
The field 're' only exists if HAVE_REGEX_H is defined (see definition at
line 194). So, consistent with all other usages, this should be protected
with an #if guard.
line 194). So, consistent with all other usages, this should be protected
with an #if guard.
Revert "openvpn plugin: Fix "Dead assignment" warning."
I cherry-picked this patch, but overlooked the fact it relates to
another change (c339d93f) only found in the collectd-5.5 branch.
Reverting, as it results in a compilation error.
This reverts commit b7f9a3c02d885e0fbe8fb7aac5c9a51b5771a9d3.
I cherry-picked this patch, but overlooked the fact it relates to
another change (c339d93f) only found in the collectd-5.5 branch.
Reverting, as it results in a compilation error.
This reverts commit b7f9a3c02d885e0fbe8fb7aac5c9a51b5771a9d3.
Factor out some common functionality in an effort to make
this code more readable.
this code more readable.
Merge branch 'collectd-5.4' into collectd-5.5
drbd plugin: improve header lines identification
Recent DRBD versions display more detailed build information in
`/proc/drbd`, which caused the header identification to fail.
Comparing the first part of each line against all known header prefixes
will hopefully make this more robust.
Fixes #1514
Signed-off-by: Florian Forster <octo@collectd.org>
Recent DRBD versions display more detailed build information in
`/proc/drbd`, which caused the header identification to fail.
Comparing the first part of each line against all known header prefixes
will hopefully make this more robust.
Fixes #1514
Signed-off-by: Florian Forster <octo@collectd.org>
df: remove legacy code skipping "rootfs" monitoring
3512bb1 added code to skip duplicate reporting of `rootfs` mounted on `/`.
f9c1c5b and f0398d0 added generic code to skip any volume mounted twice.
Depending on the order of the entries in `/etc/mtab`, reporting for `/` was
entirely skipped.
This patch basically reverts the first, non-generic patch, as it's
superseded by the 2 others.
Fixes #1402
Signed-off-by: Florian Forster <octo@collectd.org>
3512bb1 added code to skip duplicate reporting of `rootfs` mounted on `/`.
f9c1c5b and f0398d0 added generic code to skip any volume mounted twice.
Depending on the order of the entries in `/etc/mtab`, reporting for `/` was
entirely skipped.
This patch basically reverts the first, non-generic patch, as it's
superseded by the 2 others.
Fixes #1402
Signed-off-by: Florian Forster <octo@collectd.org>
ChangeLog: Fix mangled entries.
Bump version to 5.5.1; Update ChangeLog.
Merge pull request #1517 from mfournier/systemd-upstart-build-issue
systemd.collectd.service: improve systemd & capabilities explanations
systemd.collectd.service: improve systemd & capabilities explanations
docs: Add info about mode7 requirement for ntpd
Since ntpd-4.2.7p230 "mode 7" requests are ignored by default, and
that's what ntpd plugin uses currently. The ntp daemon must be
explicitly configured to enable mode7 requests.
This patch adds short information about that to collectd.conf manpage.
Related to collectd/collectd#932
Signed-off-by: Jakub Jankowski <shasta@toxcorp.com>
Since ntpd-4.2.7p230 "mode 7" requests are ignored by default, and
that's what ntpd plugin uses currently. The ntp daemon must be
explicitly configured to enable mode7 requests.
This patch adds short information about that to collectd.conf manpage.
Related to collectd/collectd#932
Signed-off-by: Jakub Jankowski <shasta@toxcorp.com>
collectdmon: Refactor the re-opening of STD{IN,OUT,ERR}.
Merge branch 'collectd-5.5'
Merge branch 'collectd-5.4' into collectd-5.5
docs: mention regexps for the interface plugin
It is very useful to collect data (or ignore) from a group of interfaces
that are similarly named - especially if the list is dynamic and it's
not feasible to update configuration each time an interface shows up or
disappears. It's possible to use regexps to specify interfaces to
collect data from (or ignore), but it's not clearly stated anywhere in
the documentation.
This is an attempt to improve documentation in this area.
Signed-off-by: Jakub Jankowski <shasta@toxcorp.com>
It is very useful to collect data (or ignore) from a group of interfaces
that are similarly named - especially if the list is dynamic and it's
not feasible to update configuration each time an interface shows up or
disappears. It's possible to use regexps to specify interfaces to
collect data from (or ignore), but it's not clearly stated anywhere in
the documentation.
This is an attempt to improve documentation in this area.
Signed-off-by: Jakub Jankowski <shasta@toxcorp.com>
systemd.collectd.service: improve systemd & capabilities explanations
Fixes #1444
Fixes #1444
exec plugin: Revert file mode to 0644.
This fixes a regression from 94e562250296b1435e3e48cd302055d89c4c702b.
This fixes a regression from 94e562250296b1435e3e48cd302055d89c4c702b.
virt plugin: make indentation explicit
Fixes this warning raised by gcc-6's new "misleading-indentation"
option:
```
virt.c: In function 'lv_init':
virt.c:331:2: error: statement is indented as if it were guarded by... [-Werror=misleading-indentation]
return 0;
^~~~~~
virt.c:328:5: note: ...this 'if' clause, but it is not
if (virInitialize () != 0)
^~
```
Fixes this warning raised by gcc-6's new "misleading-indentation"
option:
```
virt.c: In function 'lv_init':
virt.c:331:2: error: statement is indented as if it were guarded by... [-Werror=misleading-indentation]
return 0;
^~~~~~
virt.c:328:5: note: ...this 'if' clause, but it is not
if (virInitialize () != 0)
^~
```
df: remove legacy references to ReportReserved
The ReportReserved option was removed in fcb3cbf. This patch cleans up a
couple of references which got left behind.
The ReportReserved option was removed in fcb3cbf. This patch cleans up a
couple of references which got left behind.
Merge branch 'collectd-5.5'
Merge branch 'collectd-5.4'
Merge branch 'collectd-5.4' into collectd-5.5
write_redis: don't return with lock held
src/utils_latency.c: Fix format string error.
src/utils_latency.c: Ensure that LLONG_MAX is defined.
EPEL5 doesn't have it in <limits.h> apparently.
EPEL5 doesn't have it in <limits.h> apparently.
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
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
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.
A missing cast when calculating "width_change_ratio" caused all metrics to
be moved to bucket #0.
varnish: fix leak on read
Since VSM_Close doesn't free the object we leak a few bytes
every interval
Since VSM_Close doesn't free the object we leak a few bytes
every interval
openvpn plugin: Fix "Dead assignment" warning.
modbus plugin: Make sure variable is initialized.
This was introduced by the merge
(09c6a320f3cb36b5dbb2c2ce43858f33be7acf9b).
This was introduced by the merge
(09c6a320f3cb36b5dbb2c2ce43858f33be7acf9b).
tail plugin: Make sure variable is initialized.
This was introduced by the merge
(09c6a320f3cb36b5dbb2c2ce43858f33be7acf9b).
This was introduced by the merge
(09c6a320f3cb36b5dbb2c2ce43858f33be7acf9b).
Fix header condition
The dependency is either UTMPX or UTMP or Statgrab. The inclusion above hasn't statgrab.h in the elif-chain, that means compilation fails when only libstatgrab is available. The line can safely be taken out as the same condition is checked in #L120.
The dependency is either UTMPX or UTMP or Statgrab. The inclusion above hasn't statgrab.h in the elif-chain, that means compilation fails when only libstatgrab is available. The line can safely be taken out as the same condition is checked in #L120.
Fixed rrdtool sigsegv (datadir==NULL ptr dereferencing)
processes: correct a typo
Merge branch 'collectd-5.5'
Merge branch 'collectd-5.4' into collectd-5.5
write_redis: don't return with lock held
redis plugin: make sure buffer is null-terminated
CID 37938
CID 37938
perl: unlock mutex on error
CID 37970
CID 37970
openvpn: free resource on error
openvpn: fix error message
openvpn: check return value of malloc
CID 37987
CID 37987
curl_json: remove dead code
CID 37963
CID 37963
snmp plugin: don't read from uninitialized pointer
if the first snmp_pdu_create inside the loop returns an error,
we exit the loop with res uninitialized and then call snmp_free_pdu on it.
CID #38037
if the first snmp_pdu_create inside the loop returns an error,
we exit the loop with res uninitialized and then call snmp_free_pdu on it.
CID #38037
libcollectdclient: don't close socket twice
CID #38039
CID #38039
email plugin: fix check for result of malloc
CID #38010
CID #38010
Fixed rrdtool sigsegv (datadir==NULL ptr dereferencing)
openldap plugin: fix build on OSX El Capitan
OpenLDAP is deprecated in OSX El Capitan.
Apple would like us to use the OpenDirectory Framework instead.
Treat these deprecation warnings as warnings, not errors.
OpenLDAP is deprecated in OSX El Capitan.
Apple would like us to use the OpenDirectory Framework instead.
Treat these deprecation warnings as warnings, not errors.
collectd.conf.pod: mention IPv6 option to the iptables plugin
Thanks to @michaelsalmon for pointing this out !
Fix #1496
Thanks to @michaelsalmon for pointing this out !
Fix #1496
remove the addressof in the sizeof
quick fix for issue 1501?
the new warning for pointer access introduced in gcc 4.8 helped to find
this one.
quick fix for issue 1501?
the new warning for pointer access introduced in gcc 4.8 helped to find
this one.
disk plugin: Declare alt_name only when libudev is available.
Coverity whines about "output_name = alt_name" being dead code because
it sees alt_name as beeing NULL always.
CID: 48417
Coverity whines about "output_name = alt_name" being dead code because
it sees alt_name as beeing NULL always.
CID: 48417
network plugin: Coding style fixes.
This fixes a number of sizeof() operations which did not follow our best
practice of using the variable rather than its type. It also removes
unnecessary (void *) casts.
This fixes a number of sizeof() operations which did not follow our best
practice of using the variable rather than its type. It also removes
unnecessary (void *) casts.
network plugin: Check range of pkg_numval.
This is essentially the same as the check using exp_size a couple lines
earlier, but that appears to be too indirect for Coverity to understand.
This hopefully fixes the resulting "tainted_data_return" errors.
CID: 48420
This is essentially the same as the check using exp_size a couple lines
earlier, but that appears to be too indirect for Coverity to understand.
This hopefully fixes the resulting "tainted_data_return" errors.
CID: 48420
Merge branch 'collectd-5.5'
Merge branch 'collectd-5.4' into collectd-5.5
perl plugin: Check "return value" of PERL_GET_CONTEXT.
CID: 37985
CID: 37985
email plugin: Don't call type_list_incr() with type == NULL.
CID: 37988
CID: 37988
write_http plugin: Check return status of cf_util_get_*().
CID: 37949
CID: 37949
gmond plugin: Inline the plugin_dispatch_values() call.
Since version 5.3, a write queue is used. This means that the
plugin_dispatch_values() call will create a copy of the value list and
return quickly. Creating yet another copy here is therefore not as useful
anymore.
CID: 38114
Since version 5.3, a write queue is used. This means that the
plugin_dispatch_values() call will create a copy of the value list and
return quickly. Creating yet another copy here is therefore not as useful
anymore.
CID: 38114
gmond plugin: Check return value of sendto(2).
CID: 38113
CID: 38113
gmond plugin: Check return value of setsockopt(2).
CID: 38112
CID: 38112
zfs_arc plugin: Rewrite Linux parsing logic.
CID: 38028
CID: 38028
Merge branch 'collectd-5.5'
Merge branch 'collectd-5.4' into collectd-5.5
zfs_arc plugin: Plug memory leak on Linux.
CID: 42796
Signed-off-by: Florian Forster <octo@collectd.org>
CID: 42796
Signed-off-by: Florian Forster <octo@collectd.org>
configure.ac: warn when pkg-config is not installed
It hasn't been optional for a while now.
Fixes:
checking for rrd.h... no
./configure: 25157: Syntax error: word unexpected (expecting ")")
Signed-off-by: Florian Forster <octo@collectd.org>
It hasn't been optional for a while now.
Fixes:
checking for rrd.h... no
./configure: 25157: Syntax error: word unexpected (expecting ")")
Signed-off-by: Florian Forster <octo@collectd.org>
barometer plugin: cleanup whitespace
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
collectd.conf(5): Document all metrics created by CollectInternalStats.
collectd.conf(5): Improve documentation of the CollectdInternalStats option.
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
Merge branch 'pr/1469'
Merge branch 'pr/1393'
drbd plugin: no need to link with libpthread
Merge pull request #1466 from rubenk/write_riemann-remove-unneeded-include
write_riemann: remove unneeded include
write_riemann: remove unneeded include
Merge pull request #1463 from rubenk/redis-fix-build-warning
redis plugin: fix build error on NetBSD
redis plugin: fix build error on NetBSD
write_riemann: remove unneeded include
Fixes build on NetBSD:
Making all in daemon
CC write_riemann_threshold.lo
write_riemann_threshold.c:36:18: fatal error: ltdl.h: No such file or directory
#include <ltdl.h>
^
compilation terminated.
*** Error code 1
Stop.
make[3]: stopped in /home/ruben/src/collectd/src
*** Error code 1
Stop.
make[2]: stopped in /home/ruben/src/collectd/src
*** Error code 1
Stop.
make[1]: stopped in /home/ruben/src/collectd/src
*** Error code 1
Stop.
make: stopped in /home/ruben/src/collectd
Fixes build on NetBSD:
Making all in daemon
CC write_riemann_threshold.lo
write_riemann_threshold.c:36:18: fatal error: ltdl.h: No such file or directory
#include <ltdl.h>
^
compilation terminated.
*** Error code 1
Stop.
make[3]: stopped in /home/ruben/src/collectd/src
*** Error code 1
Stop.
make[2]: stopped in /home/ruben/src/collectd/src
*** Error code 1
Stop.
make[1]: stopped in /home/ruben/src/collectd/src
*** Error code 1
Stop.
make: stopped in /home/ruben/src/collectd
redis plugin: fix build error on NetBSD
Making all in daemon
CC redis_la-redis.lo
redis.c: In function 'redis_handle_info':
redis.c:307:5: error: array subscript has type 'char' [-Werror=char-subscripts]
for(i=0;(*str && (isdigit(*str) || *str == '.'));i++,str++)
^
cc1: all warnings being treated as errors
*** Error code 1
Stop.
make[3]: stopped in /home/ruben/src/collectd/src
*** Error code 1
Stop.
make[2]: stopped in /home/ruben/src/collectd/src
*** Error code 1
Stop.
make[1]: stopped in /home/ruben/src/collectd/src
*** Error code 1
Stop.
make: stopped in /home/ruben/src/collectd
Making all in daemon
CC redis_la-redis.lo
redis.c: In function 'redis_handle_info':
redis.c:307:5: error: array subscript has type 'char' [-Werror=char-subscripts]
for(i=0;(*str && (isdigit(*str) || *str == '.'));i++,str++)
^
cc1: all warnings being treated as errors
*** Error code 1
Stop.
make[3]: stopped in /home/ruben/src/collectd/src
*** Error code 1
Stop.
make[2]: stopped in /home/ruben/src/collectd/src
*** Error code 1
Stop.
make[1]: stopped in /home/ruben/src/collectd/src
*** Error code 1
Stop.
make: stopped in /home/ruben/src/collectd
Merge pull request #1462 from rubenk/email-plugin-fix-malloc-check
email plugin: fix check for result of malloc
email plugin: fix check for result of malloc
email plugin: fix check for result of malloc
CID #38010
CID #38010
Merge pull request #1461 from rubenk/fix-java-plugin-on-freebsd
java: link with libpthread on FreeBSD
java: link with libpthread on FreeBSD
java: link with libpthread on FreeBSD
Merge branch 'collectd-5.5'
Merge branch 'collectd-5.4' into collectd-5.5
Merge pull request #1460 from rubenk/mark-lvm2app-linux-only
lvm2 plugin: mark as Linux only
lvm2 plugin: mark as Linux only
Merge pull request #1459 from rubenk/remove-unneccesary-check-for-ip-compat-h
Remove check for ip_compat.h
Remove check for ip_compat.h
Merge pull request #1458 from rubenk/pthread-detection
Pthread detection
Pthread detection
Merge pull request #1457 from rubenk/java-plugin-fixups
Java plugin fixups
Java plugin fixups