write_http: control rate using only one parameter
- do not enable the feature with an on/off switch. Enable it by setting
a positive value to the parameter instead. Therefore drop the
arbitrary default value used previously.
- rename LowLimitBytesPerSec to LowSpeedLimit.
- make LowSpeedLimit refer to bytes per second rather than bytes per
Interval.
- do not enable the feature with an on/off switch. Enable it by setting
a positive value to the parameter instead. Therefore drop the
arbitrary default value used previously.
- rename LowLimitBytesPerSec to LowSpeedLimit.
- make LowSpeedLimit refer to bytes per second rather than bytes per
Interval.
write_http: adapt the behaviour of Timeout option
- rename PostTimeoutSec parameter to Timeout
- change Timeout to take milliseconds rather than seconds, for the sake
of consistency: collectd allow working at the sub-second scale if need
be, so it's a shame to restrain this here.
- do *not* set the default timeout to the value of Interval. Rationale:
what matters here is that each POST request completes before the send
buffer fills up again. How fast the send buffer fills up completely
depends on how much data is collected. Interval is unrelated to this,
and unlike read plugins, I don't think it makes a good value to use as
the default timeout.
- rename PostTimeoutSec parameter to Timeout
- change Timeout to take milliseconds rather than seconds, for the sake
of consistency: collectd allow working at the sub-second scale if need
be, so it's a shame to restrain this here.
- do *not* set the default timeout to the value of Interval. Rationale:
what matters here is that each POST request completes before the send
buffer fills up again. How fast the send buffer fills up completely
depends on how much data is collected. Interval is unrelated to this,
and unlike read plugins, I don't think it makes a good value to use as
the default timeout.
Merge remote-tracking branch 'origin/pr/752' into wh_low_speed_limit
Conflicts:
src/write_http.c
Also slipped in a couple of conding-style consistentcy related changes.
Conflicts:
src/write_http.c
Also slipped in a couple of conding-style consistentcy related changes.
log_logstash: adapt JSON format to logstash 1.2+
Fixes #974
Fixes #974
Merge branch 'collectd-5.4'
Conflicts:
configure.ac
src/dbi.c
src/utils_latency.c
Conflicts:
configure.ac
src/dbi.c
src/utils_latency.c
Revert "add a conditional for the new dbi reentrant driver interface"
This reverts commit f1907a6d0775bc2ed9f2de79bd82b05e06e3e214.
With @pyr's acknowledgement, thanks !
Fixes #962
This reverts commit f1907a6d0775bc2ed9f2de79bd82b05e06e3e214.
With @pyr's acknowledgement, thanks !
Fixes #962
Merge pull request #947 from mfournier/avoid_using_curlopt_userpwd
avoid using CURLOPT_USERPWD when possible
avoid using CURLOPT_USERPWD when possible
amqp: add documentation bits for ConnectionRetryDelay feature
amqp: disable reconnection delaying feature by default
amqp: coding-style consistency
AMQP connection failure leads collectd to use 100%CPU
Summary:
Issue : https://ipm.bloomberg.com/jira/browse/SS-103
Solution : When amqp connection fails, it retries for every message, added a fix to retry only after a delay. A new configuration "ConnectionRetryDelay" has been introduced with default value as 60 seconds.
Test Plan:
1. Tested without the new configuration
2. Tested with the new configuration
In both the cases, verified connection is retried only after the delay and made sure collectd is not taking 100% cpu.
Reviewers: skhajamo
Reviewed By: skhajamo
CC: arcyd
Differential Revision: https://all.phab.dev.bloomberg.com/D149956
Conflicts:
src/amqp.c
Summary:
Issue : https://ipm.bloomberg.com/jira/browse/SS-103
Solution : When amqp connection fails, it retries for every message, added a fix to retry only after a delay. A new configuration "ConnectionRetryDelay" has been introduced with default value as 60 seconds.
Test Plan:
1. Tested without the new configuration
2. Tested with the new configuration
In both the cases, verified connection is retried only after the delay and made sure collectd is not taking 100% cpu.
Reviewers: skhajamo
Reviewed By: skhajamo
CC: arcyd
Differential Revision: https://all.phab.dev.bloomberg.com/D149956
Conflicts:
src/amqp.c
Merge pull request #965 from rubenk/powerdns-update-auth-stats
powerdns: update plugin with stats for pdns 3.4.3
powerdns: update plugin with stats for pdns 3.4.3
Merge pull request #959 from rubenk/fix-ceph-plugin
Ceph: do not define _BSD_SOURCE
Ceph: do not define _BSD_SOURCE
write_tsdb plugin: Fix name generation even more.
There were more cases in which "type" or "type_instance" were omitted.
Fixes: #945
There were more cases in which "type" or "type_instance" were omitted.
Fixes: #945
write_tsdb plugin: Add type and type_instance to the metric name in any case.
Previously, the generated names were wrong, especially when no
plugin instance was used for a metric.
Fixes: #945
Signed-off-by: Florian Forster <octo@collectd.org>
Previously, the generated names were wrong, especially when no
plugin instance was used for a metric.
Fixes: #945
Signed-off-by: Florian Forster <octo@collectd.org>
Makefile.am: s/INCLUDES/AM_CPPFLAGS/
Fixes the following warning:
Makefile.am:5: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
Fixes the following warning:
Makefile.am:5: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
powerdns: update plugin with stats for pdns 3.4.3
write_mongodb plugin: Fix BSON memory handling even further.
According to the mongo-c-driver 0.8.1 documentation, each call to
bson_alloc() needs to be matched by a call to bson_dealloc() and each
call to bson_init() needs to be matched by a call to bson_destroy().
Additionally, this patch adds macros for mongo-c-driver < 0.8.0 to map
the new bson_alloc() and bson_deallow() names to the old bson_create()
and bson_dispose() symbol names.
Tested with mongo-c-driver 0.8.1 and 0.7.1.
Fixes: #331, #956
According to the mongo-c-driver 0.8.1 documentation, each call to
bson_alloc() needs to be matched by a call to bson_dealloc() and each
call to bson_init() needs to be matched by a call to bson_destroy().
Additionally, this patch adds macros for mongo-c-driver < 0.8.0 to map
the new bson_alloc() and bson_deallow() names to the old bson_create()
and bson_dispose() symbol names.
Tested with mongo-c-driver 0.8.1 and 0.7.1.
Fixes: #331, #956
write_mongodb plugin: s/bson_dispose/bson_destroy/
Thanks to @eremenko for providing the initial patch!
Fixes: #331, #956
Thanks to @eremenko for providing the initial patch!
Fixes: #331, #956
Ceph: define _DEFAULT_SOURCE next to _BSD_SOURCE
Fixes:
make[3]: Entering directory '/home/ruben/src/collectd/src'
CC ceph_la-ceph.lo
In file included from /usr/include/stdio.h:27:0,
from ./daemon/collectd.h:34,
from ceph.c:26:
/usr/include/features.h:148:3: error: #warning "_BSD_SOURCE and
_SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Werror=cpp]
# warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use
# _DEFAULT_SOURCE"
^
cc1: all warnings being treated as errors
Makefile:4120: recipe for target 'ceph_la-ceph.lo' failed
make[3]: *** [ceph_la-ceph.lo] Error 1
make[3]: Leaving directory '/home/ruben/src/collectd/src'
Makefile:5096: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/home/ruben/src/collectd/src'
Makefile:3142: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/ruben/src/collectd/src'
Makefile:551: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1
Fixes:
make[3]: Entering directory '/home/ruben/src/collectd/src'
CC ceph_la-ceph.lo
In file included from /usr/include/stdio.h:27:0,
from ./daemon/collectd.h:34,
from ceph.c:26:
/usr/include/features.h:148:3: error: #warning "_BSD_SOURCE and
_SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Werror=cpp]
# warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use
# _DEFAULT_SOURCE"
^
cc1: all warnings being treated as errors
Makefile:4120: recipe for target 'ceph_la-ceph.lo' failed
make[3]: *** [ceph_la-ceph.lo] Error 1
make[3]: Leaving directory '/home/ruben/src/collectd/src'
Makefile:5096: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/home/ruben/src/collectd/src'
Makefile:3142: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/ruben/src/collectd/src'
Makefile:551: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1
Statsd: avoid doing a division by zero when calculating the percentile with an empty histogram.
Statsd: avoid doing a division by zero when calculating the average if we didn't get any values.
utils_latency: use portable format string
statsd histogram to support more than 1 second
Summary:
Problem: Collectd/Statsd supports configurable percentiles for timers but it limits the value to be 1 to 1000ms. If the timer value is more than 1000ms, it uses for min, max, average,... and drops it for percentile computation.
Solution: Added support for increasing bin width when the value is above histogram's range.
Test Plan: Tested by sending metrics within range and out-of-range (ie above 1000 ms)
Reviewers: skhajamo, shalstea
Reviewed By: skhajamo
CC: arcyd
Differential Revision: https://all.phab.dev.bloomberg.com/D156454
Summary:
Problem: Collectd/Statsd supports configurable percentiles for timers but it limits the value to be 1 to 1000ms. If the timer value is more than 1000ms, it uses for min, max, average,... and drops it for percentile computation.
Solution: Added support for increasing bin width when the value is above histogram's range.
Test Plan: Tested by sending metrics within range and out-of-range (ie above 1000 ms)
Reviewers: skhajamo, shalstea
Reviewed By: skhajamo
CC: arcyd
Differential Revision: https://all.phab.dev.bloomberg.com/D156454
Merge pull request #838 from yogeswaran/histogram
statsd histogram to support more than 1 second
statsd histogram to support more than 1 second
configure: add liblvm2app to summary output
Merge branch 'collectd-5.3' into collectd-5.4
Conflicts:
configure.ac
Conflicts:
configure.ac
configure: add missing entries in summary output
... and reorder alphabetically.
... and reorder alphabetically.
Merge pull request #951 from tokkee/sh/debian-patches
plugin: Use strcasecmp rather than strncasecmp to find a plugin.
plugin: Use strcasecmp rather than strncasecmp to find a plugin.
Merge pull request #953 from rubenk/powerdns-do-not-look-past-the-end-of-array
Powerdns plugin: fix logging on failed lookup
Powerdns plugin: fix logging on failed lookup
Powerdns plugin: fix logging on failed lookup
Don't look past the end of the array but check the boundary first.
Don't look past the end of the array but check the boundary first.
Merge pull request #954 from rubenk/remove-outdated-advice
Setting Globals to true is not needed anymore
Setting Globals to true is not needed anymore
clean.sh: take new 'src/daemon' dir in account
snmp plugin: add hostname to "csnmp_value_list_to_value" error message
Fixes #952
Fixes #952
RPM specfile: add ceph plugin
README/AUTHORS: mention ceph plugin
Merge remote-tracking branch 'origin/pr/598'
Conflicts:
src/collectd.conf.in
src/types.db
Conflicts:
src/collectd.conf.in
src/types.db
Remove superfluous debug statements
Powerdns plugin: fix logging on failed lookup
Don't look past the end of the array but check the boundary first.
Don't look past the end of the array but check the boundary first.
plugin: Use strcasecmp rather than strncasecmp to find a plugin.
This makes collectd resistant against vulnerable copies of libltdl
(CVE-2009-3736). See <http://bugs.debian.org/559801#15> for further
details.
This makes collectd resistant against vulnerable copies of libltdl
(CVE-2009-3736). See <http://bugs.debian.org/559801#15> for further
details.
Bump version to 5.4.2; Update ChangeLog.
Merge branch 'collectd-5.3' into collectd-5.4
ChangeLog: Add libdbi fix.
dbi plugin: Switch to libdbi's thread-safe interface.
Macros are in place to make buliding with libdbi <0.9.0 possible.
Fixes: #950
Macros are in place to make buliding with libdbi <0.9.0 possible.
Fixes: #950
Bump version to 5.3.2; Update ChangeLog.
collectd-exec(5): Clarify the format of the Time: header.
Revert "Plugin exec: change notification time to integer."
This was working as intended.
This reverts commit 07e4683f7f985668641d79137b64d148bc18ba8a.
This was working as intended.
This reverts commit 07e4683f7f985668641d79137b64d148bc18ba8a.
snmp plugin: add hostname to "csnmp_instance_list_add" error message
Fixes #939
Fixes #939
avoid using CURLOPT_USERPWD when possible
CURLOPT_USERPWD chokes on colons inside usernames or passwords, so use
CURLOPT_USERNAME and CURLOPT_PASSWORD if curl 7.19.1 or newer is found.
Follow-up to 0af75dc13 for the rest of the plugins based on libcurl.
CURLOPT_USERPWD chokes on colons inside usernames or passwords, so use
CURLOPT_USERNAME and CURLOPT_PASSWORD if curl 7.19.1 or newer is found.
Follow-up to 0af75dc13 for the rest of the plugins based on libcurl.
Merge branch 'collectd-5.4'
Conflicts:
src/Makefile.am
src/write_http.c
Conflicts:
src/Makefile.am
src/write_http.c
Merge branch 'collectd-5.3' into collectd-5.4
Merge branch 'collectd-4.10' into collectd-5.3
Conflicts:
src/collectd.conf.pod
Conflicts:
src/collectd.conf.pod
Merge pull request #890 from trenkel/master
Fix compiler warnings with Python3.
Fix compiler warnings with Python3.
perl plugin: plugins are linked with *_LIBADD and LIBS not *_LIBS and LIBS
Conflicts:
src/Makefile.am
Conflicts:
src/Makefile.am
libperl's ldopts include libaries and therefore should go in LIBS not LDFLAGS
Without this configure fails compile its libperl test program because
-lperl comes before the test program on the compiler command line.
Conflicts:
src/Makefile.am
Without this configure fails compile its libperl test program because
-lperl comes before the test program on the compiler command line.
Conflicts:
src/Makefile.am
Merge pull request #390 from radford/libperl-ldopts
libperl's ldopts include libaries and therefore should go in LIBS not LDFLAGS
libperl's ldopts include libaries and therefore should go in LIBS not LDFLAGS
modbus: rename register types once more
As I was looking over my config files again, ModbusRegisterType
kind of stuck out like a sore thumb.
Modbus does talk about "read holding" and "read input" as "commands";
perhaps renaming it as this patch does is more intuitive, so that all
of the Modbus register configurations start with Register.
I'm not wedded to it, but if you like it & agree, here you go.
Thanks,
-Eric
As I was looking over my config files again, ModbusRegisterType
kind of stuck out like a sore thumb.
Modbus does talk about "read holding" and "read input" as "commands";
perhaps renaming it as this patch does is more intuitive, so that all
of the Modbus register configurations start with Register.
I'm not wedded to it, but if you like it & agree, here you go.
Thanks,
-Eric
Merge pull request #908 from vincentbernat/fix/libstatgrab4
libstatgrab: fix detection of libstatgrab >= 0.90
libstatgrab: fix detection of libstatgrab >= 0.90
Merge pull request #902 from mfournier/write_http-node-blocks
write_http: deprecate <URL> blocks in favor of <Node>
write_http: deprecate <URL> blocks in favor of <Node>
Merge pull request #899 from mfournier/write_http-multiple-destionations
write_http: make callback names context-dependent
write_http: make callback names context-dependent
RPM specfile: doc clarification
ipmi: use SIGIO instead of SIGUSR2 to avoid conflict with JVM
Java uses SIGUSR2 to suspend/resume threads. The OpenIPMI plugins also
need a signal to resume its event loop when setting a timer. They can't
both use the same signal. We ask OpenIPMI to use SIGIO instead.
This should fix #114.
Java uses SIGUSR2 to suspend/resume threads. The OpenIPMI plugins also
need a signal to resume its event loop when setting a timer. They can't
both use the same signal. We ask OpenIPMI to use SIGIO instead.
This should fix #114.
write_kafka plugin: Topic property not being set
Merge pull request #910 from vincentbernat/fix/ipmi-dont-use-sigusr2
ipmi: use SIGIO instead of SIGUSR2 to avoid conflict with JVM
ipmi: use SIGIO instead of SIGUSR2 to avoid conflict with JVM
ipmi: use SIGIO instead of SIGUSR2 to avoid conflict with JVM
Java uses SIGUSR2 to suspend/resume threads. The OpenIPMI plugins also
need a signal to resume its event loop when setting a timer. They can't
both use the same signal. We ask OpenIPMI to use SIGIO instead.
This should fix #114.
Java uses SIGUSR2 to suspend/resume threads. The OpenIPMI plugins also
need a signal to resume its event loop when setting a timer. They can't
both use the same signal. We ask OpenIPMI to use SIGIO instead.
This should fix #114.
Merge pull request #906 from obazoud/patch-1
Wording automake
Wording automake
added doc CollectStatistics to section rrdcached
Fixes #907
Conflicts:
src/collectd.conf.pod
Fixes #907
Conflicts:
src/collectd.conf.pod
mysql: document defaults to boolean config options
libstatgrab: fix detection of libstatgrab >= 0.90
Ensure linking is done after compilation of the test program, otherwise
symbols cannot be found. `LDFLAGS` and `CFLAGS` are placed before the
test program on gcc command line while `LIBS` is placed after. Even if
in our case, `LDFLAGS` also contain the lib, being put before the
program while the linking phase is done with the same command leads to
`sg_init()` never found which is misinterpreted as requiring an
argument.
Ensure linking is done after compilation of the test program, otherwise
symbols cannot be found. `LDFLAGS` and `CFLAGS` are placed before the
test program on gcc command line while `LIBS` is placed after. Even if
in our case, `LDFLAGS` also contain the lib, being put before the
program while the linking phase is done with the same command leads to
`sg_init()` never found which is misinterpreted as requiring an
argument.
Wording automake
write_http: consistent multi-instance support
This makes the plugin use `<Node>` blocks liks most other write plugins,
while maintaining backwards compatibility with `<URL>` blocks.
It's a follow up to #899, which was merely a fix for the release
branches.
This makes the plugin use `<Node>` blocks liks most other write plugins,
while maintaining backwards compatibility with `<URL>` blocks.
It's a follow up to #899, which was merely a fix for the release
branches.
write_http: make callback names context-dependent
This allows multiple destinations to work again (fixes #821), using the
same logic as other write plugins.
The callback name would now be something like:
`write_http/http://example.com/endpoint`
which is not very nice.
The next step would be to change this plugin to use `<Node>` blocks
like many others, and pass the URL as a parameter inside each instance
block. So I see this patch as the minimum required to let 5.3 and 5.4
users use this plugin with multiple destinations.
Conflicts:
src/write_http.c
This allows multiple destinations to work again (fixes #821), using the
same logic as other write plugins.
The callback name would now be something like:
`write_http/http://example.com/endpoint`
which is not very nice.
The next step would be to change this plugin to use `<Node>` blocks
like many others, and pass the URL as a parameter inside each instance
block. So I see this patch as the minimum required to let 5.3 and 5.4
users use this plugin with multiple destinations.
Conflicts:
src/write_http.c
write_http: make callback names context-dependent
This allows multiple destinations to work again (fixes #821), using the
same logic as other write plugins.
The callback name would now be something like:
`write_http/http://example.com/endpoint`
which is not very nice.
The next step would be to change this plugin to use `<Node>` blocks
like many others, and pass the URL as a parameter inside each instance
block. So I see this patch as the minimum required to let 5.3 and 5.4
users use this plugin with multiple destinations.
This allows multiple destinations to work again (fixes #821), using the
same logic as other write plugins.
The callback name would now be something like:
`write_http/http://example.com/endpoint`
which is not very nice.
The next step would be to change this plugin to use `<Node>` blocks
like many others, and pass the URL as a parameter inside each instance
block. So I see this patch as the minimum required to let 5.3 and 5.4
users use this plugin with multiple destinations.
ensure all curl-based plugins follow HTTP redirects
For the sake of consistency.
For the sake of consistency.
add Modbus/RTU support to modbus plugin
This allows access to a local RS-485 serial port
via the modbus plugin by specifying i.e.
Device "/dev/ttyUSB0"
Baudrate 38400
in a <Host> block.
For now it assumes 8N1; adding another config option
to support other configurations could be done later.
Lightly tested on my local setup.
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
This allows access to a local RS-485 serial port
via the modbus plugin by specifying i.e.
Device "/dev/ttyUSB0"
Baudrate 38400
in a <Host> block.
For now it assumes 8N1; adding another config option
to support other configurations could be done later.
Lightly tested on my local setup.
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
RPM specfile: misc improvements related to perl files
Avoids installing some files in two different packages & locations. Also
avoid unnecessary dependencies on -perl and -contrib packages.
Supersedes #896.
Thanks to @faxm0dem for helping work things out !
Avoids installing some files in two different packages & locations. Also
avoid unnecessary dependencies on -perl and -contrib packages.
Supersedes #896.
Thanks to @faxm0dem for helping work things out !
write_riemann: defaults to use TCP and batching
Fixes #891
Fixes #891
RPM specfile: install client tools to a dedicated package
Avoids the package containing the daemon to depend on libcollectdclient.
Fixes #879
Avoids the package containing the daemon to depend on libcollectdclient.
Fixes #879
RPM specfile: handle new write_log plugin
Merge remote-tracking branch 'origin/pr/835'
perl plugin: plugins are linked with *_LIBADD and LIBS not *_LIBS and LIBS
libperl's ldopts include libaries and therefore should go in LIBS not LDFLAGS
Without this configure fails compile its libperl test program because
-lperl comes before the test program on the compiler command line.
Without this configure fails compile its libperl test program because
-lperl comes before the test program on the compiler command line.
Merge pull request #886 from pyr/feature/write_log
Add a write_log output plugin which logs values.
Add a write_log output plugin which logs values.
Do not mention plugins with no options.
mention write_log in the README
change license
python: Properly init the empty string with Python3.
Fix compiler warnings with Python3.
https://github.com/collectd/collectd/issues/505
https://github.com/collectd/collectd/issues/505
Add a write_log output plugin which logs values.
I find this to be useful when developping new input plugins,
it allows creating a very simple configuration and combined
with `-f` can be used for a very simple workflow.
I'm proposing this, since I think it could be useful for
people wanting to debug their config on local agents as well.
I find this to be useful when developping new input plugins,
it allows creating a very simple configuration and combined
with `-f` can be used for a very simple workflow.
I'm proposing this, since I think it could be useful for
people wanting to debug their config on local agents as well.
Merge pull request #870 from ifesdjeen/bugfix/absolute-in-multivalue-dispatch
Change "plugin_dispatch_multivalue" to accept any metric type.
Change "plugin_dispatch_multivalue" to accept any metric type.
Merge branch 'collectd-5.4'
Merge branch 'collectd-5.3' into collectd-5.4
Merge branch 'collectd-4.10' into collectd-5.3
Fix check for htonll in configure.ac
Move last_poll_data to inside ceph_daemon struct
Also add backup search for last poll data
Also add backup search for last poll data
Merge pull request #847 from mihu/bind_zone_fix
bind-plugin: fix zones iteratation upper limit
bind-plugin: fix zones iteratation upper limit
types_list: fix carriage return sign
Many thanks to @NsLib for mentioning this !
Many thanks to @NsLib for mentioning this !
RPM specfile: avoid packaging some files twice
Fixes #874
Fixes #874