handle comments from @octo
Add ReportByCpu and ValuesPercentage for cpu plugin
ReportByCpu defaults to true, ValuesPercentage to false
This enables the following use cases:
- ReportByCpu false: emits normalized percentage values
- ValuesPercentage true: emits percentage values
- default: send per core ticks, as previously
ReportByCpu defaults to true, ValuesPercentage to false
This enables the following use cases:
- ReportByCpu false: emits normalized percentage values
- ValuesPercentage true: emits percentage values
- default: send per core ticks, as previously
Merge branch 'katzj/swap'
swap plugin: Remove the swap_submit() function.
This function was used only by swap_submit_derive(), which was declared
conditionally. This resulted in "defined but not used" warnings, e.g. on
FreeBSD.
This function was used only by swap_submit_derive(), which was declared
conditionally. This resulted in "defined but not used" warnings, e.g. on
FreeBSD.
src/common.[ch]: Rewrite the escape_slashes() function.
Cleaner and slightly more efficient (3.8% faster) version of escape_slashes().
This function is quite hot with, depending on the configuration, between 1.2%
and 2.6% of total CPU time spent here.
Cleaner and slightly more efficient (3.8% faster) version of escape_slashes().
This function is quite hot with, depending on the configuration, between 1.2%
and 2.6% of total CPU time spent here.
src/utils_cache.c: Very minor performance improvement.
cache_compare() is one of the hottest functions in collectd. Depending how many
metrics collectd handles (how deep the tree is) it gets called an order of
magnitude or two more often than the number of metrics handled. With 100k
metrics, about 6.6% of the CPU time were spent within cache_compare(), with
this commit this reduces to 6.3% (that's, uhm, 4.7% faster?).
cache_compare() is one of the hottest functions in collectd. Depending how many
metrics collectd handles (how deep the tree is) it gets called an order of
magnitude or two more often than the number of metrics handled. With 100k
metrics, about 6.6% of the CPU time were spent within cache_compare(), with
this commit this reduces to 6.3% (that's, uhm, 4.7% faster?).
swap plugin: Use the "complex" configuration.
It's actually shorter and handles non-boolean arguments more intelligently.
It's actually shorter and handles non-boolean arguments more intelligently.
swap plugin: Remove left-over debugging message.
swap plugin: Switch to the new plugin_dispatch_multivalue() interface.
src/plugin.[ch]: Implement plugin_dispatch_multivalue().
swap plugin: Improvements for the percent code:
* Don't rely on the left-to-right evaluation order, i.e. move the
division to the right.
* Avoid casting by making many of the internally used variables gauge_t.
They were derive_t in many cases for historical reasons that no longer
apply.
* Change the naming: Don't use the "swap" type for percentages (putting
the information that it *is* a percentage into the type instance) and
use "percent" instead.
* Don't rely on the left-to-right evaluation order, i.e. move the
division to the right.
* Avoid casting by making many of the internally used variables gauge_t.
They were derive_t in many cases for historical reasons that no longer
apply.
* Change the naming: Don't use the "swap" type for percentages (putting
the information that it *is* a percentage into the type instance) and
use "percent" instead.
collectd.conf(5): Document "Values{Absolute,Percentage} for the swap plugin.
Add support for ReportAbsolute and ReportPercentage in swap plugin
Add ReportAbsolute and ReportPercentage options to the swap plugin
so that values can be converted to percentages much like in the
df plugin
Signed-off-by: Florian Forster <octo@collectd.org>
Add ReportAbsolute and ReportPercentage options to the swap plugin
so that values can be converted to percentages much like in the
df plugin
Signed-off-by: Florian Forster <octo@collectd.org>
write_riemann plugin: Coding style fixes.
Merge branch 'collectd-5.4'
Conflicts:
src/write_graphite.c
Conflicts:
src/write_graphite.c
Merge branch 'collectd-5.3' into collectd-5.4
Conflicts:
src/zfs_arc.c
Conflicts:
src/zfs_arc.c
Merge branch 'collectd-4.10' into collectd-5.3
Revert "curl_xml.c: avoid using uninitalized variable in error message"
This reverts commit bbbf37d55a3959951604c4be482e9a705a0f86d9.
A different fix for this problem was commited to the collectd-5.4 branch
(8327ee64) and conflicts with this patch. Also, initializing url the
same way as 8327ee64 does it, to avoid a merge conflict.
This reverts commit bbbf37d55a3959951604c4be482e9a705a0f86d9.
A different fix for this problem was commited to the collectd-5.4 branch
(8327ee64) and conflicts with this patch. Also, initializing url the
same way as 8327ee64 does it, to avoid a merge conflict.
interface.c: FreeBSD-10 support
Quoting @trtrmitya in github issue #506 : "[...] it is broken on
FreeBSD-10, in which getifaddrs() returns not only link level stats for
a particular interface, but also entries for each IP configured on that
interface. As a result if_submit() is called several times for each
interface, which results in incorrect data being logged.
I am attaching a patch which fixes a problem on FreeBSD (9/10), but it
should work for every *BSD because [...] the getifaddrs implementation
first appeared in BSDi BSD/OS."
Many thanks to @trtrmitya for providing the patch !
Quoting @trtrmitya in github issue #506 : "[...] it is broken on
FreeBSD-10, in which getifaddrs() returns not only link level stats for
a particular interface, but also entries for each IP configured on that
interface. As a result if_submit() is called several times for each
interface, which results in incorrect data being logged.
I am attaching a patch which fixes a problem on FreeBSD (9/10), but it
should work for every *BSD because [...] the getifaddrs implementation
first appeared in BSDi BSD/OS."
Many thanks to @trtrmitya for providing the patch !
curl_xml.c: avoid using uninitalized variable in error message
Thanks to @trtrmitya for reporting this. Fixes GH#507
Thanks to @trtrmitya for reporting this. Fixes GH#507
fix wg_send_buffer to reconnect tcp sockets on failure
Conflicts:
src/write_graphite.c
Conflicts:
src/write_graphite.c
curl plugin: Fixed a segfault when using <Match> without an Instance.
Thanks to Alexander Golovko for reporting this in
http://bugs.debian.org/732701
Thanks to Alexander Golovko for reporting this in
http://bugs.debian.org/732701
Merge pull request #502 from rtkmhart/write_graphite_issue_430
Fix issue #430 where write_graphite fails to reconnect
Fix issue #430 where write_graphite fails to reconnect
Merge pull request #414 from kri5/master
Adds Blacklist/Whitelist support to snmp plugin
Adds Blacklist/Whitelist support to snmp plugin
fix wg_send_buffer to reconnect tcp sockets on failure
Adds Blacklist/Whitelist support to snmp plugin
Adds two options to snmp plugin Data Section:
- Ignore -> A List of string containing patterns to blacklist
- InvertMatch -> A Boolean value to tell if using blacklist or
whitelist (true is whitelist, false (default) is blacklist)
Signed-off-by: Christophe Courtaut <christophe.courtaut@gmail.com>
Adds two options to snmp plugin Data Section:
- Ignore -> A List of string containing patterns to blacklist
- InvertMatch -> A Boolean value to tell if using blacklist or
whitelist (true is whitelist, false (default) is blacklist)
Signed-off-by: Christophe Courtaut <christophe.courtaut@gmail.com>
Merge pull request #499 from pyr/feature-cpu-active
Report a CPU "active" value, summing non-idle values
Report a CPU "active" value, summing non-idle values
Merge pull request #498 from pyr/feature-relative-load
Feature relative load
Feature relative load
Merge pull request #362 from mikepilat/add-snmpv3
Add SNMPv3 authentication and encryption support
Add SNMPv3 authentication and encryption support
Report a CPU "active" value, summing non-idle values
This small change provides a per-core aggregate of non-idle
values for CPUs. This is a good indicator to apply a threshold
on (especially if aggregated by means of the aggregation plugin).
This small change provides a per-core aggregate of non-idle
values for CPUs. This is a good indicator to apply a threshold
on (especially if aggregated by means of the aggregation plugin).
Document changes, mostly taken from @vbartoni's original work
Adapt to @octo's comments for PR #344
Merge remote-tracking branch 'github/master'
Merge pull request #495 from abhinav-upadhyay/fix-readme
Remove 'the' from in front of collectd.
Remove 'the' from in front of collectd.
Remove 'the' from in front of collectd.
collection3: Fix data source names
Data sources were renamed in 6c1415d, but the data source names for some
of these entries still referenced the old data sources.
Data sources were renamed in 6c1415d, but the data source names for some
of these entries still referenced the old data sources.
Merge branch 'collection3-data-sources' of git://github.com/raimue/collectd
Merge branch 'netlinkfix' of git://github.com/marekbecka/collectd
Merge branch 'ff/network'
Link to IOKit using -framework
The libIOKit.dylib symlink no longer exists in OS X 10.9 Mavericks, we
now have to link using -framework. This should also work in all previous
versions of OS X.
Signed-off-by: Florian Forster <octo@collectd.org>
The libIOKit.dylib symlink no longer exists in OS X 10.9 Mavericks, we
now have to link using -framework. This should also work in all previous
versions of OS X.
Signed-off-by: Florian Forster <octo@collectd.org>
src/types.db: Remove maximum value on "cache_size".
Fixes #466. Thanks to @dlacko for pointing this out!
Fixes #466. Thanks to @dlacko for pointing this out!
curl_json, curl_xml: Fix unitialized variable
The variable url is used unintialized here. The code used to be the same
in both plugins, but diverged in 19808b44. The solution applied there
does not work correctly as the effective URL can only be queried after
performing the request. Instead, just use the original request URL.
Signed-off-by: Florian Forster <octo@collectd.org>
The variable url is used unintialized here. The code used to be the same
in both plugins, but diverged in 19808b44. The solution applied there
does not work correctly as the effective URL can only be queried after
performing the request. Instead, just use the original request URL.
Signed-off-by: Florian Forster <octo@collectd.org>
collection3: Fix data source names
Data sources were renamed in 6c1415d, but the data source names for some
of these entries still referenced the old data sources.
Data sources were renamed in 6c1415d, but the data source names for some
of these entries still referenced the old data sources.
Merge pull request #459 from pyr/feature-riemann-attributes
Add support for custom attributes.
Add support for custom attributes.
Ignore more build artifacts
This hides:
- vl_utils_lookup_test
- junk left behind by pod2man
- the buildperl dir
This hides:
- vl_utils_lookup_test
- junk left behind by pod2man
- the buildperl dir
Add documentation bits for the new 'Attribute' directive
Add support for custom attributes.
Refactor / modernize config parsing with configfile helpers
... as requested by @octo
... as requested by @octo
Merge pull request #453 from vincentbernat/feature/parallel-dbi
Handle several databases in parallel with dbi plugin
Handle several databases in parallel with dbi plugin
Merge pull request #393 from mfournier/prevent-building-with-old-libpcap
Prevent building with old libpcap
Prevent building with old libpcap
Merge pull request #441 from katzj/localhost-sql
Fix handling of 127.0.0.1 instead of localhost for *sql plugins
Fix handling of 127.0.0.1 instead of localhost for *sql plugins
Merge pull request #452 from alexscott/master
Add a JMXProvider Class Loader to be able to load Provider using
Add a JMXProvider Class Loader to be able to load Provider using
dbi plugin: register one read callback for each database block
By using a distinct read callback for each database block, collectd
will be able to query several databases in parallel. This is useful if
the plugin should handle many queries. This lets the user split them in
chunks and speed up the retrieval.
By using a distinct read callback for each database block, collectd
will be able to query several databases in parallel. This is useful if
the plugin should handle many queries. This lets the user split them in
chunks and speed up the retrieval.
dbi plugin: fix a warning mentioning snmp plugin
Merge pull request #444 from falzm/master
Append rules/targets to existing chain.
Append rules/targets to existing chain.
Add a JMXProvider Class Loader to be able to load Provider using
getConnectorAsService from JMXConnectorFactory. The protocol remoting-jmx
using by JBOSS > 7 need that to work.
getConnectorAsService from JMXConnectorFactory. The protocol remoting-jmx
using by JBOSS > 7 need that to work.
fix error message in target_{replace,set}
Remove erroneous hint that "Type" can be altered. Also correct a small
typo. Thanks to @mjulian for pointing that out !
Fixes GH#448
Remove erroneous hint that "Type" can be altered. Also correct a small
typo. Thanks to @mjulian for pointing that out !
Fixes GH#448
Rewritten condition more clearly.
Append rules/targets to existing chain.
This patch allows appending rules/targets to an existing chain instead
of overwriting it. This way, it is possible to split filter chains
definition among several files.
This patch allows appending rules/targets to an existing chain instead
of overwriting it. This way, it is possible to split filter chains
definition among several files.
Merge pull request #417 from udoprog/udoprog/riemann
write_riemann: Add extra meta strings as attributes in notifications
write_riemann: Add extra meta strings as attributes in notifications
Merge pull request #425 from spotify/master
write_riemann plugin: Receive acknowledge message when using TCP.
write_riemann plugin: Receive acknowledge message when using TCP.
Update collectd.conf.pod
spotted by lukas227 in IRC:
23:43 < lukas227> Hi, I think I found a mistake in the threshold.conf(5) man page: the example
THRESHOLD CONFIGURATION is within <Threshold></Threshold> tags, but should
probably be within <Plugin "threshold"></Plugin> tags (doesn work with
<Threshold> for me)
Day changed to 27 Sep 2013
Signed-off-by: Florian Forster <octo@collectd.org>
spotted by lukas227 in IRC:
23:43 < lukas227> Hi, I think I found a mistake in the threshold.conf(5) man page: the example
THRESHOLD CONFIGURATION is within <Threshold></Threshold> tags, but should
probably be within <Plugin "threshold"></Plugin> tags (doesn work with
<Threshold> for me)
Day changed to 27 Sep 2013
Signed-off-by: Florian Forster <octo@collectd.org>
configure.in: Move the useragent config to a more appropriate block.
Avoid using first person in the error message
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
Fix handling of 127.0.0.1 instead of localhost for *sql plugins
The mysql and postgresql plugins have special handling if you
use localhost as your hostname. Sometimes you need to use 127.0.0.1
instead and want to not have that make changes to the hostname
for the metrics.
The mysql and postgresql plugins have special handling if you
use localhost as your hostname. Sometimes you need to use 127.0.0.1
instead and want to not have that make changes to the hostname
for the metrics.
Add support for a custom user agent at compile-time
Make it possible to specify a custom user agent at compile time
and then use on all libcurl calls instead of just going with
PACKAGE_NAME/PACKAGE_VERSION
Make it possible to specify a custom user agent at compile time
and then use on all libcurl calls instead of just going with
PACKAGE_NAME/PACKAGE_VERSION
libcollectdclient: Implement the lcc_server_set_interface() function.
Copied from the network plugin. License changed to MIT with permission
from Max Henkel, thank you very much!
Copied from the network plugin. License changed to MIT with permission
from Max Henkel, thank you very much!
Replace you with your in error message
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
fix typos
Add support for 64bit netlink counters to the netlink plugin
make build outputs more quiet
"make V=1" reverts the output to the usual verbosity level
Thanks to @jbergstroem for suggesting this !
"make V=1" reverts the output to the usual verbosity level
Thanks to @jbergstroem for suggesting this !
Autoupdate
configure.in has been deprecated for a while now
write_graphite: avoid printing out the NULL value in error messages
aquaero: Fix type names on aquaero plugin.
The percentage values are now reported as "percent" and the "flow"
type is included in the types.db list.
The percentage values are now reported as "percent" and the "flow"
type is included in the types.db list.
Display status of mic module
Merge remote-tracking branch 'origin/master'
switch default write_graphite protocol back to TCP
The *default* protocol was switched to UDP in 498a0dcd, when UDP support
was added to the plugin.
Switching this default back to TCP, because it makes the plugin break
for users upgrading to 5.4, and also because the UDP listener is disabled
in a default graphite installation (cf.
https://github.com/graphite-project/carbon/blob/0.9.x/conf/carbon.conf.example#L78)
Fixes GH#428
The *default* protocol was switched to UDP in 498a0dcd, when UDP support
was added to the plugin.
Switching this default back to TCP, because it makes the plugin break
for users upgrading to 5.4, and also because the UDP listener is disabled
in a default graphite installation (cf.
https://github.com/graphite-project/carbon/blob/0.9.x/conf/carbon.conf.example#L78)
Fixes GH#428
write_riemann plugin: Receive acknowledge message when using TCP.
Not receiving an acknowledge message when communicating with riemann over TCP
will cause the riemann instance to eventually hang for extended periods of time
because of resource exhaustion.
Took the time to reaorganize the riemann_send function to simplify locking.
Not receiving an acknowledge message when communicating with riemann over TCP
will cause the riemann instance to eventually hang for extended periods of time
because of resource exhaustion.
Took the time to reaorganize the riemann_send function to simplify locking.
collectd.conf: Added an example write_riemann TTLFactor option.
collectd.conf: Added example df plugin ValuesAbsolute/Percentage options.
collectd.conf: Added example cgroups plugin config section.
Merge remote-tracking branch 'origin/pr/409' into collectd-5.4
correct default write_graphite protocol in manpage
write_riemann: Add extra meta strings as attributes in notifications
Merge remote-tracking branch 'github/pr/413' into collectd-5.4
cgroups plugin: Use cu_mount_checkoption().
cu_mount_checkoption() behaves a bit like strstr() in that it returns a pointer
into the buffer. cu_mount_getoptionvalue() allocated memory that was never
freed, slowly leaking memory (although very little).
Github: #412
cu_mount_checkoption() behaves a bit like strstr() in that it returns a pointer
into the buffer. cu_mount_getoptionvalue() allocated memory that was never
freed, slowly leaking memory (although very little).
Github: #412
src/utils_mount.c: Fix wrong behavior in cu_mount_getoptionvalue().
Github: #412
Github: #412
correct typo
cgroups: don't fail parsing when colon not found
The format of cpuacct.stat seems to not always have a colon as separator.
It appears to *not* have the colon at least on debian's kernel 3.2.41 and
3.2.35, as well as on RHEL6 with 2.6.32. All of them have decent support for
cgroups/lxc, and the cgroups plugin fails to work with them without this patch.
Also, looking at other implementations shows that they *don't* expect a colon:
https://bitbucket.org/dotcloud/liblxcstats/src/2558b4fbbf589c609895b0badbfc7d413466d716/probes/cpuacct.c?at=default#cl-71
https://github.com/BrightcoveOS/Diamond/blob/master/src/collectors/cpuacct_cgroup/cpuacct_cgroup.py#L55
The format of cpuacct.stat seems to not always have a colon as separator.
It appears to *not* have the colon at least on debian's kernel 3.2.41 and
3.2.35, as well as on RHEL6 with 2.6.32. All of them have decent support for
cgroups/lxc, and the cgroups plugin fails to work with them without this patch.
Also, looking at other implementations shows that they *don't* expect a colon:
https://bitbucket.org/dotcloud/liblxcstats/src/2558b4fbbf589c609895b0badbfc7d413466d716/probes/cpuacct.c?at=default#cl-71
https://github.com/BrightcoveOS/Diamond/blob/master/src/collectors/cpuacct_cgroup/cpuacct_cgroup.py#L55
zfs_arc plugin: Collect "allocated" and "stolen" on FreeBSD only.
The appropriate log messages have been demoted to WARNING.
Github: #305
The appropriate log messages have been demoted to WARNING.
Github: #305
curl_json plugin: avoid accessing off the end of the avl_tree_s
It's not written this way, but really we have a union { *key; *tree; }
which is differentiated by checking for the presence a magic field
which only exists in key. This leads to accesses off the end of the
tree. Putting the magic at start of the key avoids this.
Signed-off-by: Florian Forster <octo@collectd.org>
It's not written this way, but really we have a union { *key; *tree; }
which is differentiated by checking for the presence a magic field
which only exists in key. This leads to accesses off the end of the
tree. Putting the magic at start of the key avoids this.
Signed-off-by: Florian Forster <octo@collectd.org>
curl_json plugin: avoid unlikely overrun
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
RedHat RPM spec: updates for 5.4.0
Bump version to 5.4.0; Update ChangeLog.
Merge branch 'collectd-5.3'
Conflicts:
configure.in
Conflicts:
configure.in
Merge branch 'collectd-5.2' into collectd-5.3
Merge branch 'ad/aquaero'
collectd.conf(5): Improve markup of the aquaero plugin.
README: Add dependency "aerotools-ng".