curl_json plugin: avoid cache aliasing by using all fields instead of the final two
The following two keys
Key workers/*/requests
Key workers/*/apps/*/requests
can both lead to type_instance's of say
0-requests
which would alias in the cache. If, instead of just the final two key
name components, we use all of them it would lead to these
Key workers-0-requests
Key workers-0-apps-0-requests
which would not overlap.
The following two keys
Key workers/*/requests
Key workers/*/apps/*/requests
can both lead to type_instance's of say
0-requests
which would alias in the cache. If, instead of just the final two key
name components, we use all of them it would lead to these
Key workers-0-requests
Key workers-0-apps-0-requests
which would not overlap.
src/types.db: Remove the maximum value for "latency".
Github: #400
Github: #400
Merge remote-tracking branch 'github/master'
Merge remote-tracking branch 'github/pr/404'
Update clean.sh
statsd plugin: add TimerCount option
The "count" name was chosen over "num" to match the naming scheme
used by the node.js implementation.
The "count" name was chosen over "num" to match the naming scheme
used by the node.js implementation.
statsd plugin: add TimerSum option
statsd plugin: add TimerLower and TimerUpper options
The "lower" and "upper" names were chosen over "min" and "max"
to match the naming scheme used by the node.js implementation.
The "lower" and "upper" names were chosen over "min" and "max"
to match the naming scheme used by the node.js implementation.
fix .gitignore of lcc_features.h
.gitignore collectd-tg
disable fields not available in varnish 2.0.x
Several fields were added in commit 8775392. 3 of them make the build
fail when varnish 2.0.x is used. This patch makes them available only
when using varnish 3.x.
The commit message of 8775392 gives more detail on the rationale behind
this way of doing.
Several fields were added in commit 8775392. 3 of them make the build
fail when varnish 2.0.x is used. This patch makes them available only
when using varnish 3.x.
The commit message of 8775392 gives more detail on the rationale behind
this way of doing.
Merge remote-tracking branch 'origin/pr/376'
update copyright and authors list
remove redundant inclusion of time.h
Add sigrok to README/AUTHORS
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
Merge branch 'ff/statsd'
Merge branch 'pr/381'
src/collectd.conf.in: Unify indentation.
sigrok plugin: Ensure consistent logging prefix.
* Make sure all logging is using the "sigrok plugin: " prefix.
* Improved logging when handling the "LogLevel" option.
* Renamed free_drvopts() to sigrok_free_drvopts(). All functions now use the
"sigrok_" prefix.
* Don't abort parsing a "Device" block when encountering an incorrect number of
arguments. The cf_util_* functions will complain about that.
* Make sure all logging is using the "sigrok plugin: " prefix.
* Improved logging when handling the "LogLevel" option.
* Renamed free_drvopts() to sigrok_free_drvopts(). All functions now use the
"sigrok_" prefix.
* Don't abort parsing a "Device" block when encountering an incorrect number of
arguments. The cf_util_* functions will complain about that.
collectd.conf(5): sigrok plugin: Improve markup.
use pkg-config to locate libmnl and configure netlink plugin
rrdtool plugin: Minor performance improvement.
Replace the value_list_to_string() function with a version which is optimized
for data sets with a single data source. The original function is still used
for data sets with multiple data sources. This allows to reduce the number of
calls to snprintf() in this (very common) case, resulting in ~2% speedup.
Replace the value_list_to_string() function with a version which is optimized
for data sets with a single data source. The original function is still used
for data sets with multiple data sources. This allows to reduce the number of
calls to snprintf() in this (very common) case, resulting in ~2% speedup.
sigrok: Update docs to reflect config keyword change
sigrok: Change 'interval' option to 'MinimumInterval', and allow 0
A MinimumInterval of 0 means whatever the device sends gets dispatched
to collectd. This is the default.
A MinimumInterval of 0 means whatever the device sends gets dispatched
to collectd. This is the default.
Fix temperature type to be unit-agnostic
The minimum value of -273.15 implies Celcius, which is not necessarily
what is used for this type.
The minimum value of -273.15 implies Celcius, which is not necessarily
what is used for this type.
add sound pressure level type
Use value types according to sigrok measured quantity
Code consistency fixes
Code cleanup
Config errors should not be fatal
Factor out device initialization
Use gcc-specific __attribute__ to mark unused parameter
sigrok plugin
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.
Github: #358
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.
Github: #358
sigrok: build system setup
Fix pointer confusion for nested attribute parsing
A reference to a pointer is passed as data,
the resulting attribute payload should be stored in
the dereferenced location to return it to the caller.
A reference to a pointer is passed as data,
the resulting attribute payload should be stored in
the dereferenced location to return it to the caller.
update build system to reflect switch to libmnl
"./configure" was previously checking for libnetlink and setting
"-lmnl" if found, which was obviously calling for trouble. With
this patch, the last references to libnetlink are dead and buried.
NB: linux/netlink.h and friends are still included here and there
though, but these are not related to libnetlink.
"./configure" was previously checking for libnetlink and setting
"-lmnl" if found, which was obviously calling for trouble. With
this patch, the last references to libnetlink are dead and buried.
NB: linux/netlink.h and friends are still included here and there
though, but these are not related to libnetlink.
update README to mention libmnl dependency
netlink: __attribute__ usage clarification
As requested by @octo in GitHub#376.
As requested by @octo in GitHub#376.
netlink: comments & cleanup
netlink: indentation & whitespace/tab consistency
Merge remote-tracking branch 'origin/pr/371'
netlink: fix segfault & make advanced options work again
A type mismatch and offset mistake was preventing the interface list
from getting iterated. This was making collectd segfault when the
"QDisc", "Class" or "Filter" options were enabled.
A type mismatch and offset mistake was preventing the interface list
from getting iterated. This was making collectd segfault when the
"QDisc", "Class" or "Filter" options were enabled.
libmnl: fix 2 mistakes preventing building with --enable-debug
More fixing of netlink build with different HAVE_...
Restructure to compile with all combos of HAVE_TCA_STATS(2)
We want to compile with all combinations of
HAVE_TCA_STATS(2) set/unset and at the same time
protect against submitting the stats twice (if both
are supported).
Introduce "stats_found" and set and attribute on it
to avoid having the compiler complain about it.
This allows us to bury the specific structs under
each HAVE_TCA_STATS(2) #if ...
We want to compile with all combinations of
HAVE_TCA_STATS(2) set/unset and at the same time
protect against submitting the stats twice (if both
are supported).
Introduce "stats_found" and set and attribute on it
to avoid having the compiler complain about it.
This allows us to bury the specific structs under
each HAVE_TCA_STATS(2) #if ...
Fix HAVE_TCA_STATS(2) checks in configure.in
Fix netlink.c to (almost) build
Update configure script to link with -lmnl
Initial libmnl porting attempt
df: remove trailing whitespaces
df: rename percentage types to a more generic name
Add support for incr/decr counts
replace nginx_{accepts,handled} DSs
reusing an existing DS is preferred. GH#227.
reusing an existing DS is preferred. GH#227.
* change nginx plugin for collectd to submit "nginx_accepts" and
* "nginx_handled"
* "nginx_handled"
add 2 missing data types for df percentages
tail plugin: Remove custom string config function.
Merge branch 'ym/limit_write_queue_length'
Merge branch 'collectd-5.3'
Conflicts:
src/plugin.c
Conflicts:
src/plugin.c
Merge branch 'collectd-5.2' into collectd-5.3
src/plugin.c: Some fixes for write limits.
* Log an error once per second.
* Coding style fixes.
* Separate function for calculating drop probability.
* Log an error once per second.
* Coding style fixes.
* Separate function for calculating drop probability.
src/configfile.c: Rename options to "WriteQueueLimit{High,Low}".
The original names are a bit long.
The original names are a bit long.
Fixed a bug with WriteQueueLengthLimitHigh is null/uninitialized
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
Fixes for code quality
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
fixed a bug in doc near new WriteQueueLengthLimit*
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
Added new WriteQueueLengthLimit (drop values when bigger)
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
src/plugin.c: Free the "data_sets" AVL tree.
This pops up every time I investigate memory leaks and it's annoying me.
This pops up every time I investigate memory leaks and it's annoying me.
write_graphite plugin: Don't call close() on invalid file descriptors.
write_graphite plugin: Don't call close() on invalid file descriptors.
write_graphite plugin: Actually check the return value of wg_send_message().
Assignment to "status" was missing.
Assignment to "status" was missing.
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.
Merge branch 'collectd-5.3'
Conflicts:
src/collectd.conf.pod
Conflicts:
src/collectd.conf.pod
Merge branch 'collectd-5.2' into collectd-5.3
rrdtool, rrdcached plugins: Re-implement value_list_to_filename().
Faster version without snprintf().
Faster version without snprintf().
csv plugin: Re-implement value_list_to_filename().
The new implementation is faster, because it doesn't use snprintf().
The new implementation is faster, because it doesn't use snprintf().
src/common.c: Reimplement format_name for performance.
This is used from uc_update(), i.e. for every value list dispatched, and was
one of the most expensive functions thanks to snprintf().
This reduces total time spent in the format_name() function from 7.78% to 1.89%
during a network stress test.
This is used from uc_update(), i.e. for every value list dispatched, and was
one of the most expensive functions thanks to snprintf().
This reduces total time spent in the format_name() function from 7.78% to 1.89%
during a network stress test.
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.
Test for end of oid tree without breaking collection loop.
Merge branch 'fix-stringio-python2.7' of git://github.com/aelse/collectd
Merge branch 'fix-dstype-ordinal-decode_network_values' of git://github.com/aelse/collectd
Merge branch 'vbartoni/df'
df plugin: Remove trailing white space.
fixes StringIO unicode handling in python 2.7
decode_network_values dstype is ordinal value of string literal
fix the build
statsd plugin: Implement the "TimerPercentile" configuration option.
collectd-threshold(5): Correct the description of the "Interesting" config option.
threshold plugin: Fix the "Interesting" configuration option.
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
Merge branch 'feature-write_graphite-udp' of git://github.com/jjmaestro/collectd
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.
write_graphite plugin: avoid flooding the log with the protocol error check
Moving the protocol error checking from `wg_callback_init` to `wg_config_node`.
This avoids flooding the log, as suggested by Florian Forster (@octo).
Moving the protocol error checking from `wg_callback_init` to `wg_config_node`.
This avoids flooding the log, as suggested by Florian Forster (@octo).
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.
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.