Florian Forster [Tue, 22 Jan 2013 11:01:46 +0000 (12:01 +0100)]
src/plugin.c: Make the context cloning a bit more implicit.
The plugin_set_ctx() call has been moved into the plugin_write_dequeue()
function. Comments describing the unavailability of the context have
been updated.
Florian Forster [Thu, 17 Jan 2013 12:37:09 +0000 (13:37 +0100)]
write_riemann plugin: Unify the plugin's configuration semantic.
The "write_mongodb" and "write_redis" plugins follow the same general
config schema, i.e. <Node /> blocks with "Host" and "Port" options.
Adapt the same style for "write_riemann".
Florian Forster [Wed, 16 Jan 2013 20:50:37 +0000 (21:50 +0100)]
riemann plugin: Clean up the riemann_connect() function.
Don't warn when connecting to some address fails. The system could, for
example, not have any IPv6 connectivity but the address record also
includes an IPv6 address. In this case a connect(2) call will fail but
this is not a problem.
Due to the new locking one of the concurrency checks was made redundant.
Florian Forster [Fri, 11 Jan 2013 18:45:43 +0000 (19:45 +0100)]
ethstat plugin: Fix the map lookup.
Previously, a pointer into the configuration structure was used to look
up the mappings. Because the configuration structure is freed or
otherwise modified, this does not work as intended (and may actually
lead to a segmentation fault when unlucky).
For completeness sake, a shutdown callback was added to free the used
memory on exit.
Florian Forster [Fri, 11 Jan 2013 10:30:14 +0000 (11:30 +0100)]
riemann plugin: Fix a double-free issue with the shared structure.
The reference to the riemann_host structure is shared between the write
and the notification callback. Upon exit, riemann_free() is called twice,
via the user_data_t structure passed to the register functions. Previously
this would have caused a double-free, which is unacceptable.
This patch introduces a reference counter and will only free the structure
(and close the socket) when the last reference is freed.
The locking has been moved out of the riemann_connect() function and into
the riemann_send() function. It is unlikely, but not impossible that two
threads interfere with each other when writing to the socket.
Florian Forster [Fri, 11 Jan 2013 09:33:36 +0000 (10:33 +0100)]
riemann plugin: Add support for service names.
I.e. you can not define a "riemann" service in /etc/services and then use
«Port "riemann"» in the configuration. Also add support for arbitrarily
long host names.
First implementation of a riemann plugin.
This is basic for now and only support
sending to a UDP target, later work will
include notification support and service
rewriting.
Sebastian Harl [Wed, 28 Nov 2012 08:32:43 +0000 (09:32 +0100)]
config: Implemented include filter pattern as sub-option in a <Include> block.
This has the advantage of being more easy to read/understand and also being
more flexible. E.g. multiple filters and other options may be specified in the
future.
Sebastian Harl [Sat, 24 Nov 2012 09:26:20 +0000 (10:26 +0100)]
config: Added support for specifying include filter patterns.
An optional second argument may now be passed to the "Include" configuration
option. If specified (and if the fnmatch() function was available at build
time), only files matching this pattern will be included. For example, the
following will include all files matching "*.conf" in any subdirectory of
/etc/collectd.d/:
Include "/etc/collectd.d" "*.conf"
This is useful, e.g. for distributions in order to include a possibly empty
directory in the default configuration including all subdirectories but also
making it possible to ship further documents like README files.
Florian Forster [Mon, 19 Nov 2012 21:37:18 +0000 (22:37 +0100)]
src/utils_vl_lookup.[ch]: Support selecting values by regex.
The name generated by the Aggregation plugin currently includes the
regular expression, which is suboptimal. We need to come up with something
clever there I guess.
Ed Schouten [Sat, 17 Nov 2012 09:47:07 +0000 (10:47 +0100)]
src/libcollectdclient/network.c: Fix the build on FreeBSD.
On FreeBSD, we have to include <netinet/in.h> to get IN_MULTICAST(). We
don't need to include anything extra, as according to POSIX,
<netinet/in.h> also exposes htonl(). There is no need to include
<arpa/inet.h>.
Ed Schouten [Sat, 17 Nov 2012 09:44:48 +0000 (10:44 +0100)]
src/libcollectdclient/network_buffer.c: Fix gcrypt build on FreeBSD.
As with src/network.c, we need to ensure that we define
GCRYPT_NO_DEPRECATED on FreeBSD to get rid of the compiler warnings
emitted by the header file.
Ed Schouten [Fri, 16 Nov 2012 20:58:46 +0000 (21:58 +0100)]
src/network.c: Fix the build on FreeBSD.
<gcrypt.h> accepts a definition called GCRYPT_NO_DEPRECATED to disable
deprecated functionality. Unfortunately, this definition is not
sufficient to suppress all warnings. However, FreeBSD's version of
libgcrypt has been fixed to properly remove all deprecated features.
Sebastian Harl [Thu, 15 Nov 2012 12:42:29 +0000 (13:42 +0100)]
postgresql plugin: Simplified transaction handling a bit.
Don't set any next commit time after committing a transaction but only when
starting a new transaction. This way, db->next_commit == 0 always means that
we're outside of a transaction. Also, this removes the need to restart a
transaction right away. Rather, the write callback will take care of that the
next time it gets any data.