Marc Fournier [Thu, 26 Mar 2015 20:52:39 +0000 (21:52 +0100)]
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.
Marc Fournier [Wed, 25 Mar 2015 23:01:54 +0000 (00:01 +0100)]
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.
Yoga Ramalingam [Fri, 31 Oct 2014 20:03:31 +0000 (16:03 -0400)]
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.
Florian Forster [Mon, 9 Mar 2015 09:59:38 +0000 (10:59 +0100)]
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.
Yoga Ramalingam [Fri, 14 Nov 2014 14:23:13 +0000 (09:23 -0500)]
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)
Eric Sandeen [Wed, 28 Jan 2015 04:36:05 +0000 (22:36 -0600)]
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.
Vincent Bernat [Fri, 23 Jan 2015 17:55:04 +0000 (18:55 +0100)]
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.
Vincent Bernat [Fri, 23 Jan 2015 17:55:04 +0000 (18:55 +0100)]
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.
Vincent Bernat [Fri, 23 Jan 2015 10:57:03 +0000 (11:57 +0100)]
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.
Marc Fournier [Sat, 17 Jan 2015 15:10:46 +0000 (16:10 +0100)]
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.
Marc Fournier [Sat, 17 Jan 2015 15:10:46 +0000 (16:10 +0100)]
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.
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.