Florian Forster [Sun, 10 Feb 2008 15:40:58 +0000 (16:40 +0100)]
contrib/exec-nagios.px: Added a Perl script which handles Nagios plugins.
It handles most of the Nagios plugin API, including multi-line output (a
Nagios 3 feature) and performance data. It's basic on purpose so that easy
stuff is possible but complex stuff is about as hard as rewriting the plugin ;)
Sebastian Harl [Tue, 5 Feb 2008 23:00:49 +0000 (00:00 +0100)]
configure: Correctly handle all cases when using AC_ARG_WITH().
In a lot of cases only "$withval" != "yes" and "no" had been handled when the
option had been given. Therefore, the option had been ignored if no argument
had been passed to the option, making --with-<option> and / or
--without-<option> a no-op. This patch fixes this issue.
Signed-off-by: Sebastian Harl <sh@tokkee.org> Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Florian Forster [Sat, 9 Feb 2008 16:44:34 +0000 (17:44 +0100)]
src/configfile.c: Extend the `Include' statement to handle directories, too.
Directories are included recursively. Files and directories begnning with a dot
are ignored. Symlinks are followed. You can crash collectd by looping the
symlinks.
Sebastian Harl [Tue, 29 Jan 2008 01:14:33 +0000 (02:14 +0100)]
plugin.c: Use an AVL tree to store the data sets.
The list of data sets is queried quite frequently but hardly ever modified.
Using an AVL tree instead of a linked list improves the search time from O(n)
to O(log n).
Signed-off-by: Sebastian Harl <sh@tokkee.org> Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Sebastian Harl [Mon, 28 Jan 2008 11:23:10 +0000 (12:23 +0100)]
perl plugin: Exported plugin_dispatch_notification() to Perl.
This adds the following function to collectd's Perl API:
Collectd::plugin_dispatch_notification:
submit a notification to collectd's notification mechanism
arguments:
notif - notification
A notification is a reference to a hash with the following members:
severity => $severity (default: NOTIF_FAILURE)
time => $time (default: time (NULL))
message => $msg
host => $host (default: hostname_g)
plugin => $plugin
type => $type
plugin_instance => $instance
type_instance => $type_instance
The severity should be any of the Collectd::NOTIF_* constants.
Signed-off-by: Sebastian Harl <sh@tokkee.org> Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Florian Forster [Wed, 23 Jan 2008 19:30:06 +0000 (20:30 +0100)]
network plugin: Have two different threads for handling incoming packets.
One that only receives and enqueues packets and one which parses the packets
and dispatches them to the daemon. This should solve problems with (too) short
socket buffers and (very) heavy load.
Florian Forster [Wed, 23 Jan 2008 11:40:24 +0000 (12:40 +0100)]
network plugin: Added support for sending and receiving notifications.
Notifications are sent ``out of band'', i. e. each notification is one packet
and they are not mixed with performance data values.
Right now there is no configuration option to prevent listening sockets from
receiving notifications nor to prevent sending sockets from sending
notifications. This may be an option for the future, though.
Florian Forster [Wed, 23 Jan 2008 09:40:14 +0000 (10:40 +0100)]
collectd: Added ``associative'' members to the notification_t structure.
A notification does not need to be related to any performance data collected by
collectd, but now it *may* be related. This is used in the threshold stuff
already and passed via ExecNotification in the exec plugin, too.
The new `notification_init' function in `src/common.c' and the
`NOTIFICATION_INIT_VL' macro simplify the initialization of these new fields.
Sebastian Harl [Tue, 22 Jan 2008 18:11:00 +0000 (19:11 +0100)]
Fixed some compiler warnings identified by gcc's -Wextra option.
The following issues have been addressed:
* comparison between signed and unsigned - this was found in several places
throughout the code and has been fixed in various ways
* missing initializer - an incomplete initializer has been used for two
struct instances in perl.c
* unused parameter - when applicable, the parameter has been removed; in
thirteen cases the parameter is required by different library API's and in
two cases the parameter was left in place to retain a consistent interface
within the affected modules; as __attribute__((unused)) is a GNU extension,
it has not been used to document those exceptions
Signed-off-by: Sebastian Harl <sh@tokkee.org> Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Florian Forster [Tue, 22 Jan 2008 10:06:15 +0000 (11:06 +0100)]
apache plugin: Improved some error messages and fixed-buffer string copying.
Return an error when initialization fails. This includes the case when no URL
is configured. The user is informed about this as clear as possible.
Also, `strncpy' and `snprintf' now are followed by a forced NULL-termination of
the strings to be on the save side. This also changes the plugin to look more
like the other plugins which mostly do this already.
Sebastian Harl [Sun, 20 Jan 2008 21:14:23 +0000 (22:14 +0100)]
Added support for more than one TypesDB file.
The "TypesDB" config option now accepts more than one filename. Each file will
be read in the specified order. If no filename has been given, the default
file will _not_ be read (I doubt this is a useful feature but it's imho the
most reasonable behavior).
This may, for example, be used to specify an additional file containing custom
data-set definitions. See the thread "Thought about exec and types.db" on the
mailing-list ([1]).
Richard Jones [Thu, 10 Jan 2008 08:43:32 +0000 (09:43 +0100)]
libvirt plugin: Fix the HostnameFormat option.
The attached patch fixes HostnameFormat in libvirt driver.
The intended use for this was:
HostnameFormat "name"
generating hostnames like "<guestname>" (the default case), and:
HostnameFormat "hostname name"
generating hostnames like "<hostname>:<guestname>".
Somewhere along the way, however, that code got broken so it always adds a ":"
before the name, and doesn't concatenate any more, so you'd get weird hostnames
appearing like ":guest" which was supposed to be "hostname:guest".