statsd plugin: Store values internally as double.
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.
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.
statsd plugin: Make metric names case-sensitive.
The StatsD by etsy is case sensitive, so we should do the same. Also, strcmp()
should have better performance than strcasecmp().
The StatsD by etsy is case sensitive, so we should do the same. Also, strcmp()
should have better performance than strcasecmp().
statsd plugin: Don't use strtok_r() to split multi-metric packets.
Profiling has shown that it is one of the bottle-necks.
Profiling has shown that it is one of the bottle-necks.
statsd plugin: Dont'a call common.c:parse_value().
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.
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: Avoid calling snprintf() in the hot path.
snprintf() is very expensive and the alternative is simple. This shaves
off about 7% of the time spent handling events.
snprintf() is very expensive and the alternative is simple. This shaves
off about 7% of the time spent handling events.
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.
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.
fix the build
statsd plugin: Implement the "TimerPercentile" configuration option.
stats plugin: Add support for sets.
statsd plugin: Allow several metrics with the same name but different types.
This more closely mimicks Etsy's implementation.
This more closely mimicks Etsy's implementation.
statsd plugin: Implement the "Delete{Counters,Timers,Gauges}" options.
statsd plugin: Add configuration for Host and Port.
statsd plugin: Initial implementation.
Fix typo
recive -> receive
recive -> receive
Merge branch 'xl/zfs'
zfs_arc plugin: Fix indentation.
zfs_arc plugin: Use a buffer with fixed size rather than allocating on the heap.
The key length is very predicable, so buffer length is not a problem.
The key length is very predicable, so buffer length is not a problem.
zfs_arc plugin: Add copyright information for Xin Li.
write_riemann plugin: Implement the "TTLFactor" option.
Github: #336
Github: #336
Merge branch 'yaccz/curl-status'
Merge branch 'vb/df'
curl plugin: Fix compiler warning.
The compiler thinks the "start" variable may be used uninitialized.
The compiler thinks the "start" variable may be used uninitialized.
collectd.conf(5): Minor fixes.
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).
* 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).
df plugin: Remove trailing whitespace.
And fix indentation.
And fix indentation.
Plugin df: ReportPercentage
Plugin df free space as percentage.
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
Implement ARC data collection on FreeBSD.
contrib/redhat/init.d-collectd: Rename variable to …PIDDIR.
Github: #298
Github: #298
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
Change-Id: I45d2de9dcc976f3b1e18cef5b6b78eeca1d270b2
Signed-off-by: Florian Forster <octo@collectd.org>
As collectdmon handles its pidfile, this would require to change
COLLECTMONPIDIR to something else than only-root writeable /var/run
Change-Id: I45d2de9dcc976f3b1e18cef5b6b78eeca1d270b2
Signed-off-by: Florian Forster <octo@collectd.org>
Merge branch 'yaccz/curl-status'
curl plugin: Use cdtime to calculate response times.
curl plugin: Don't abort when reading the response code failed.
curl plugin: Remove the curl-only auxiliary configuration functions.
curl plugin: Fix compile issue (long vs. long*).
Merge branch 'more-varnish-stats'
src/configfile.c: Add the "AutoLoadPlugin" option.
When enabled, <Plugin ...> blocks will automatically load plugins.
Thanks to Tim Bunce for suggesting this!
Github: #333
When enabled, <Plugin ...> blocks will automatically load plugins.
Thanks to Tim Bunce for suggesting this!
Github: #333
src/plugin.c: Fix a comment regarding duplicate plugin_load() calls.
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.
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.
collectd.conf(5): Document the new "LoadPlugin" behavior.
Github: #333
Github: #333
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.
Thanks to Tim Bunce for suggesting this!
Github: #333
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.
Thanks to Tim Bunce for suggesting this!
Github: #333
Merge branch 'ef/mic'
README: Document power consumption being collected by the mic plugin.
mic plugin: Fix indentation issue.
mic plugin: Change the name of the power settings …
… to reflec the names documented in the manpage.
… to reflec the names documented in the manpage.
varnish plugin: update config docs for new collectors
Drop suffixes, now that we are putting them in correct types
Do proper storage of power numbers, do conversion to base units.
Add Documentaion for Power collection in the mic plugin
mic plugin: Code for power readings.
add MeasureResponseCode refs #319
curl_xml plugin: Allow arbitrarily long callback names.
Fixes issue #286.
Fixes issue #286.
src/common.[ch]: Add the ssnprintf_alloc() function.
src/plugin.c: Allocate read-callback names on the heap.
This allows to use arbitrarily long callback names.
Prerequisite for fixing #286.
This allows to use arbitrarily long callback names.
Prerequisite for fixing #286.
collectd.conf(5): Add documentation for the MIC plugin.
configure.in: Remove the unused "plugin_mic" variable.
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.:
<host>/mic-0-cpu-1/cpu-user
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.:
<host>/mic-0-cpu-1/cpu-user
mic plugin: Some more coding style changes. Mostly breaking long lines.
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).
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).
AUTHORS, README: Add Evan and the mic plugin.
cleanup mic number initializing. Prefix Debug and error messages
Use proper values out of memory utilization
Fix input parameter
Cleanup errors from upstream review, cleanup typeographical errors.
here's some bits to fix CFLAGS to CPPFLAGS
rework dependencies for mic plugin
fix copy framework error
AUTHORS, README: Add the "cgroups" plugin.
cgroups plugin: Rename the "cgroups_cpuacct" plugin.
The new name is sufficient and much easier to type / remember.
The new name is sufficient and much easier to type / remember.
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:
dir_dns_lookups
dir_dns_failed
dir_dns_hit
dir_dns_cache_full
backend_retry
fetch_1xx
fetch_204
fetch_304
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:
dir_dns_lookups
dir_dns_failed
dir_dns_hit
dir_dns_cache_full
backend_retry
fetch_1xx
fetch_204
fetch_304
collectd.conf(5): Fixed a typo (comma vs. dot) and markup fixes.
src/types.db: Remove the unused "cpuacct" type.
cgroups_cpuacct plugin: Read file line-by-line.
Use the field name from the file as type instance when dispatching values.
Use the field name from the file as type instance when dispatching values.
varnish plugin: missing definition in default config
Add config options
add cpu stat gathering
Add Thermal gathering, and the config properly
Initial implementation of build addition, and memory gathering for the mic card
cgroups_cpuacct plugin: Re-indent read_cpuacct_root().
The rest of the file is indented using tabs.
The rest of the file is indented using tabs.
cgroups_cpuacct plugin: Use type "cpu" to submit value lists.
cgroups_cpuacct plugin: Minor style fixes.
* 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.
* 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.
src/common.[ch]: read_file_contents: Use {s,}size_t rather than int.
Add cgroups_cpuacct plugin to collect CPU user/system time per cgroup
This is handy for computers using systemd, as systemd puts each service
into a separate cgroup.
Signed-off-by: Florian Forster <octo@collectd.org>
This is handy for computers using systemd, as systemd puts each service
into a separate cgroup.
Signed-off-by: Florian Forster <octo@collectd.org>
Merge branch 'cm/lvm'
Github: #291
Signed-off-by: Florian Forster <octo@collectd.org>
Github: #291
Signed-off-by: Florian Forster <octo@collectd.org>
AUTHORS, README: Add Chad and the LVM plugin.
Changed plugin from volume to lvm
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
Removed un-needed files
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
amqp: add Graphite{SeparateInstances,AlwaysAppendDS} options
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().
* 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().
snmp plugin: Removed "mixed delaration".
This should fix this warning Fabien Wernli reported:
snmp.c:1381: warning: ISO C90 forbids mixed declarations and code
This should fix this warning Fabien Wernli reported:
snmp.c:1381: warning: ISO C90 forbids mixed declarations and code
Changed data type from vg to vol_group and lv to logical_vol to be more descriptive
changed symbol check for lvm2app
added missing comma to AC_CHECK_LIB for lvm2app
Added logical volume size metrics
src/Makefile.am: Really don't distribute *.pb-c.[ch].
src/Makefile.am: Add *.proto to EXTRA_DIST. D'oh!
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.
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.
RedHat RPM spec: updated for 5.3.0
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
configure.in: Fix libgcrypt flags on FreeBSD.
On FreeBSD, AM_PATH_LIBGCRYPT sets LIBGCRYPT_CFLAGS but not
LIBGCRYPT_CPPFLAGS. Use both variables to be on the save side.
On FreeBSD, AM_PATH_LIBGCRYPT sets LIBGCRYPT_CFLAGS but not
LIBGCRYPT_CPPFLAGS. Use both variables to be on the save side.
Bump version to 5.3.0; Update ChangeLog.