stats plugin: Don't check the value of '(value_t).derive'.
statsd_parse_value() will write to (value_t).gauge, so don't read from another
member of the union. This also fixes problems with counter values being zero,
for whatever that is supposed to be useful for.
While the documentation states that "values should generally be integers", this
"should" is not taken in the strict RFC meaning. For compatibility with Etsy's
statsd, handle everything as a double up until the last possible moment.
parse_value() is doing a strdup() do it can remove trailing whitespace.
We don't need that for the statsd protocol, so we just call strtoull()
instead, improving performance but a couple of percent again.
statsd plugin: Remove the prefix in the counter and gauge handlers.
The prefix is added in statsd_metric_lookup_unsafe(), so we don't need
to do this here anymore. Since snprintf() is expensive, this increases
performance considerably.
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.