Marc Fournier [Wed, 29 Apr 2015 22:15:19 +0000 (00:15 +0200)]
write_sensu: fix format-string portability problem
Casting counters, derives and abolutes to int64_t was incorrect, as they
are respectively `unsigned long long`, `int64_t` and `uint64_t`.
Apart from potentially loosing precision, the `%ld` format-string made
clang choke on the 32bit architecture (follow-up to 78340212).
Marc Fournier [Tue, 14 Apr 2015 16:48:07 +0000 (18:48 +0200)]
write_sensu: fix 2 format-related details
The default CC on freebsd-10 (clang 3.4) spotted these issues:
write_sensu.c:494:38: error: format specifies type 'long long' but the argument has type 'int64_t' (aka 'long') [-Werror,-Wformat]
write_sensu.c:494:45: error: data argument not used by format string [-Werror,-Wformat-extra-args]
Tim Laszlo [Fri, 20 Jun 2014 14:00:43 +0000 (09:00 -0500)]
network: set ttl before opening server sockets
If TimeToLive is defined in collectd.conf after Server options, the
net_config_ttl value is updated after network_config_add_server and
the desired ttl is not used.
openvpn plugin: Don't signal an error when no clients are connected.
In the multi1_read() function, an error (zero) was returned when no
clients were currently connected to the OpenVPN server, because the
"read" variable was initialized to zero and the while loop exited before
it was set to one. This is not the intended behavior.
Jan Kundrát [Wed, 25 Mar 2015 17:06:50 +0000 (18:06 +0100)]
curl_json: Add support for specifying a connection timeout
There's apparently no need to init the config values in the `db` struct;
memset() is used earlier in the process. This patch doesn't change this
convention.
Peter Wu [Tue, 31 Mar 2015 21:17:32 +0000 (23:17 +0200)]
battery: do not report sysfs ENODEV failure
Linux reports ENODEV if the reported battery values are equal to
ACPI_BATTERY_VALUE_UNKNOWN. This can be observed for an unpatched Clevo
B7130 laptop while reading the "Battery Present Charge" attribute.
Since this is a non-fatal, non-recoverable event, do not report such
errors. Also change the error message to report the filename triggering
this error to ease hunting down the error.
Peter Wu [Mon, 30 Mar 2015 16:48:06 +0000 (18:48 +0200)]
battery: report current if known
The power field is not always available (take my Clevo B7130 laptop for
example). The current is reported though via "current_now".
According to the ACPI spec v5.0, sect. 10.2.2.6 _BST (Battery Status),
the reported field is "battery present rate" which is always positive
(its direction depends on the charging state).
Contents of /sys/class/power_supply/BAT0/uevent for my laptop:
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)