write_graphite plugin: config should fail on error
This is the preferred way of handling config, as it can be seen in snmp.c. It's
important to fail on a config error to simplify code in other callbacks.
write_graphite plugin: Adding LogSendErrors boolean flag
Sometimes we don't want to hog the syslog with errors that are produced
when the graphite server is down.
Especially for UDP, we want to be able to truly fire-and-forget
(remember to monitor UDP packet receipt failures though :) and having
errors written to the syslog is a burden that should be avoided.
Florian Forster [Sat, 1 Jun 2013 07:19:07 +0000 (09:19 +0200)]
df plugin: Rename the percent metrics.
* Change type to "percent".
* Use "<disk>-bytes" and "<disk>-inodes" as plugin instance. This way we're
able to use "percent" for both.
* Remove one level of indentation.
* Make casting more explicit (e.g. don't divide a float by a size_t).
allow for non-root user to run script.
As collectdmon handles its pidfile, this would require to change
COLLECTMONPIDIR to something else than only-root writeable /var/run
Florian Forster [Sat, 25 May 2013 08:31:54 +0000 (10:31 +0200)]
src/plugin.c: Move the perl and python "global" magic to plugin_load().
The config file handling is really not the best place to have this. Also,
the feature I'm working on would have to copy this magic if left in the
config code, and I *really* don't want that.
Florian Forster [Sat, 25 May 2013 07:46:36 +0000 (09:46 +0200)]
src/plugin.c: Make plugin_load() idempotent, i.e. don't load plugins twice.
Previously, multiple 'LoadPlugin "foo"' lines would dlopen the same .so file
twice and call its module_register function twice. This would eventually result
in complaints about callbacks with the same name being registered. With this
patch each plugin is only loaded only once, allowing people to write "self
contained" configuration segments.
Florian Forster [Sat, 11 May 2013 07:55:09 +0000 (09:55 +0200)]
mic plugin: Use the "core number" as plugin instance.
Previously, per-core CPU statistics would be dispatched as (e.g.):
<host>/mic-0/cpu-1-user
This makes graping hard, because it required to parse the type instance to
seperate out different graphs. The core number has therefore been moved to the
plugin instance, so the "mic" plugin behaves more like the "cpu" plugin, e.g.:
Florian Forster [Sat, 11 May 2013 07:40:05 +0000 (09:40 +0200)]
mic plugin: Remove the NUM_THERMS define.
Also some coding style changes: Limit line length, move temporary variables
to an innter scope, print the temperature name in an error message (rather
than its ID).
Nick Stenning [Tue, 7 May 2013 09:30:35 +0000 (10:30 +0100)]
varnish plugin: add missing fields
This commit adds a large number of fields exported by the varnish stats
interface which have not previously been collected. A number are still missing,
as it is not immediately obvious which stat group they should go in:
accept_fail
client_drop_late
and, from Varnish 3.X:
vmods
n_gzip
n_gunzip
In addition, there are a number of fields which were added at the end of the 2.X
series, but in the absence of a way of detecting whether we're compiling against
2.0.X or 2.1.X, are necessarily disabled when compiling against 2.X:
* Avoid mixed declarations.
* Use parse_value() rather than atoll().
* Comment static arguments to walk_directory().
* Return an error if the read() function can't locate the cgroup
mount point.
volume plugin: Fix a couple of issues from the code review.
* Use df_complex as data type.
* Submit LV sizes and "free", but not "total" and "used".
* Fix error handling; don't use variable if it is NULL, remove calls to
exit().
Build system: Don't ship the generated *.pb-c.[ch] files.
They depend on specific versions of the protobuf-c.h header file, so
shipping this will cause problems for people having a different version
of protoc-c installed. This reverts some of the work done in #269, but
distcheck should still work. Meh.
write_riemann plugin: Use the "Attributes" of an Event rather than abuse the "Tags".
Riemann 0.2.0 provides "Attributes", which are key-value pairs. Since
the plugin previously basically abused the tag system for adding this
kind of data, switch to the new and shiny thing :)