Patrick Mooney [Mon, 10 Feb 2014 16:00:15 +0000 (10:00 -0600)]
disk: Add udev-based device renaming on Linux
On systems with large collections of allocated disk resources, the
kernel provided names can be difficult to use to logically group or
compare collected values. To grant users the ability to assign custom
instance names for disk devices, collectd can query for a specified udev
attribute. If the attribute is present, its value is subsituted for the
kernel name when submitting the data points.
A different fix for this problem was commited to the collectd-5.4 branch
(8327ee64) and conflicts with this patch. Also, initializing url the
same way as 8327ee64 does it, to avoid a merge conflict.
Marc Fournier [Tue, 7 Jan 2014 15:06:10 +0000 (16:06 +0100)]
interface.c: FreeBSD-10 support
Quoting @trtrmitya in github issue #506 : "[...] it is broken on
FreeBSD-10, in which getifaddrs() returns not only link level stats for
a particular interface, but also entries for each IP configured on that
interface. As a result if_submit() is called several times for each
interface, which results in incorrect data being logged.
I am attaching a patch which fixes a problem on FreeBSD (9/10), but it
should work for every *BSD because [...] the getifaddrs implementation
first appeared in BSDi BSD/OS."
Many thanks to @trtrmitya for providing the patch !
Rainer Müller [Sun, 10 Nov 2013 02:51:40 +0000 (03:51 +0100)]
Link to IOKit using -framework
The libIOKit.dylib symlink no longer exists in OS X 10.9 Mavericks, we
now have to link using -framework. This should also work in all previous
versions of OS X.
Rainer Müller [Sun, 10 Nov 2013 02:39:22 +0000 (03:39 +0100)]
curl_json, curl_xml: Fix unitialized variable
The variable url is used unintialized here. The code used to be the same
in both plugins, but diverged in 19808b44. The solution applied there
does not work correctly as the effective URL can only be queried after
performing the request. Instead, just use the original request URL.
spotted by lukas227 in IRC:
23:43 < lukas227> Hi, I think I found a mistake in the threshold.conf(5) man page: the example
THRESHOLD CONFIGURATION is within <Threshold></Threshold> tags, but should
probably be within <Plugin "threshold"></Plugin> tags (doesn work with
<Threshold> for me)
Day changed to 27 Sep 2013
Marc Fournier [Thu, 19 Sep 2013 21:27:02 +0000 (23:27 +0200)]
switch default write_graphite protocol back to TCP
The *default* protocol was switched to UDP in 498a0dcd, when UDP support
was added to the plugin.
Switching this default back to TCP, because it makes the plugin break
for users upgrading to 5.4, and also because the UDP listener is disabled
in a default graphite installation (cf.
https://github.com/graphite-project/carbon/blob/0.9.x/conf/carbon.conf.example#L78)
Florian Forster [Wed, 28 Aug 2013 13:19:48 +0000 (15:19 +0200)]
cgroups plugin: Use cu_mount_checkoption().
cu_mount_checkoption() behaves a bit like strstr() in that it returns a pointer
into the buffer. cu_mount_getoptionvalue() allocated memory that was never
freed, slowly leaking memory (although very little).
Marc Fournier [Wed, 21 Aug 2013 14:22:32 +0000 (16:22 +0200)]
cgroups: don't fail parsing when colon not found
The format of cpuacct.stat seems to not always have a colon as separator.
It appears to *not* have the colon at least on debian's kernel 3.2.41 and
3.2.35, as well as on RHEL6 with 2.6.32. All of them have decent support for
cgroups/lxc, and the cgroups plugin fails to work with them without this patch.
Also, looking at other implementations shows that they *don't* expect a colon:
https://bitbucket.org/dotcloud/liblxcstats/src/2558b4fbbf589c609895b0badbfc7d413466d716/probes/cpuacct.c?at=default#cl-71
https://github.com/BrightcoveOS/Diamond/blob/master/src/collectors/cpuacct_cgroup/cpuacct_cgroup.py#L55
Jim Radford [Sat, 10 Aug 2013 16:14:27 +0000 (09:14 -0700)]
curl_json plugin: avoid accessing off the end of the avl_tree_s
It's not written this way, but really we have a union { *key; *tree; }
which is differentiated by checking for the presence a magic field
which only exists in key. This leads to accesses off the end of the
tree. Putting the magic at start of the key avoids this.
Florian Forster [Sun, 18 Aug 2013 08:55:38 +0000 (10:55 +0200)]
aquaero plugin: Some coding style fixes.
* Break long lines.
* Rename temperatures. The type instances are now "sensor", "virtual",
"software" and "other".
* Rename "flow-flow" to "flow-sensor".
Florian Forster [Sun, 18 Aug 2013 07:58:13 +0000 (09:58 +0200)]
curl_json plugin: Random minor improvements.
I did these changes while wrapping my head around the new array code.
* Added a comment to explain the cj_cb_map_key() function.
* Renamed some variabled and the arguments of the cj_cb_map_key() function.
* Renamed the "ignore" argument to "update_key" (inversing its meaning).
Marc Fournier [Fri, 9 Aug 2013 15:23:48 +0000 (17:23 +0200)]
disable fields not available in varnish 2.0.x
Several fields were added in commit 8775392. 3 of them make the build
fail when varnish 2.0.x is used. This patch makes them available only
when using varnish 3.x.
The commit message of 8775392 gives more detail on the rationale behind
this way of doing.
Florian Forster [Wed, 7 Aug 2013 06:33:13 +0000 (08:33 +0200)]
sigrok plugin: Ensure consistent logging prefix.
* Make sure all logging is using the "sigrok plugin: " prefix.
* Improved logging when handling the "LogLevel" option.
* Renamed free_drvopts() to sigrok_free_drvopts(). All functions now use the
"sigrok_" prefix.
* Don't abort parsing a "Device" block when encountering an incorrect number of
arguments. The cf_util_* functions will complain about that.
Replace the value_list_to_string() function with a version which is optimized
for data sets with a single data source. The original function is still used
for data sets with multiple data sources. This allows to reduce the number of
calls to snprintf() in this (very common) case, resulting in ~2% speedup.