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).
Florian Forster [Thu, 30 May 2013 06:58:06 +0000 (08:58 +0200)]
src/configfile.c: Let errors in included files propagate up to cf_read().
cf_read_generic() returned NULL in two cases: Unable to read file and
file was empty. Since we wanted to allow empty includes, the "include
file with errors" case was not handled properly.
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
Stefan Nickl [Sat, 28 Jan 2012 18:21:10 +0000 (19:21 +0100)]
Fix modbus segfault / New strategy for connecting
The previous implementation had a reconnection loop which should not
really be necessary. Idea tried here is to check if connection is alive,
and establish it if not. Change was begun because previously connection
would only be attempted as a retry, so on first pass a NULL was handed to
libmodbus which caused segmentation faults reproducibly.
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.
Marc Fournier [Fri, 17 May 2013 11:13:43 +0000 (13:13 +0200)]
varnish: hint about missing <Instance> block
The warning when the Collect* configuration options where used outside
of an <Instance> block was confusing. This patch warns the user the same
way the apache plugin does.
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: