varnish: monitor 2 purge-relatad metrics added in V4
varnish: add a couple of metrics available both in V3 & V4
varnish: adapt to metrics renames & deprecations in varnish4
Summary of changes:
- connections: "accepted" & "dropped" are now found in the session section
- dirdns: doesn't exist in varnish 4 anymore
- objects: "n_obj*" were removed from varnish 4
- ban: "obj", "req" & "completed" bans were added. As a lot of new
"tested" metrics are available, so we only collectd the overall total
now
- session: metrics from "connections" and "threads" categories were
moved here
- struct: "n_sess*" were removed
- totals: new, more detailed *bytes metrics were made available
- threads: new metrics were made available. "queued" was moved the
session section.
Summary of changes:
- connections: "accepted" & "dropped" are now found in the session section
- dirdns: doesn't exist in varnish 4 anymore
- objects: "n_obj*" were removed from varnish 4
- ban: "obj", "req" & "completed" bans were added. As a lot of new
"tested" metrics are available, so we only collectd the overall total
now
- session: metrics from "connections" and "threads" categories were
moved here
- struct: "n_sess*" were removed
- totals: new, more detailed *bytes metrics were made available
- threads: new metrics were made available. "queued" was moved the
session section.
varnish: bare minimum changes to support varnish4
configure: add varnish4 presence detection
mysql: correct 2 data types in innodb counters
Thanks to @ekilby for spotting this mistake ! Fixes #757
Thanks to @ekilby for spotting this mistake ! Fixes #757
Merge pull request #751 from ptbrowne/prepend-sys-path
feat(python-plugin): prepend instead of append ModulePath to sys.path
feat(python-plugin): prepend instead of append ModulePath to sys.path
doc(collectd-python): update
feat(python-plugin): prepend instead of append ModulePath to sys.path
When importing a module, you expect the plugin repertory to have higher priority
than your site-packages. It will prevent hard to debug clashing module names problems.
At least, if there is a problem, it will fail more loudly than "module did not register
any config callback"
When importing a module, you expect the plugin repertory to have higher priority
than your site-packages. It will prevent hard to debug clashing module names problems.
At least, if there is a problem, it will fail more loudly than "module did not register
any config callback"
cpu plugin: Don't report empty cpu states.
src/Makefile.am: Make sure plugins only export "module_register".
While there, put the LDFLAGS shared between all plugins into a separate
variable.
While there, put the LDFLAGS shared between all plugins into a separate
variable.
Merge remote-tracking branch 'github/pr/697'
Merge remote-tracking branch 'github/pr/734'
bind plugin: split bind_xml_stats to v3 and v1_v2.
And minor change to bind_parse_generic_name_attr_value_list.
And minor change to bind_parse_generic_name_attr_value_list.
bind plugin: add support for the new XML v3 API.
Unfortunately, this new API does not provide per-zone data
any more, thus 'Zone' options like
Zone "example.com/IN"
are ignored if API version is 3.
Unfortunately, this new API does not provide per-zone data
any more, thus 'Zone' options like
Zone "example.com/IN"
are ignored if API version is 3.
COPYING: Add the MIT License and add a note about plugins being licensed individually.
Move utils_parse_option.[ch] out of the daemon/ directory.
common.[ch]: Move escape_string() to here.
Move collectd daemon files to the src/daemon/ directory.
memory: make linux slab reporting work with older kernels
memory: adjust safeguard to changes from previous commit
src/collectd.c: Set the LC_NUMERIC locale to "C".
When using ASCII protocols, such as the Graphite protocol, doubles are
converted to strings using sprintf(3) and parsed with strtod(3). If the
effective locale uses something different from a dot (".") as the
decimal separator (e.g. Portuguese, German), this breaks.
This patch sets the LC_NUMERIC locale to "C" on start-up, so that
strings are produced and parsed in a well-defined manner.
Fixes: #512
When using ASCII protocols, such as the Graphite protocol, doubles are
converted to strings using sprintf(3) and parsed with strtod(3). If the
effective locale uses something different from a dot (".") as the
decimal separator (e.g. Portuguese, German), this breaks.
This patch sets the LC_NUMERIC locale to "C" on start-up, so that
strings are produced and parsed in a well-defined manner.
Fixes: #512
write_graphite plugin: Limit number of reconnection attempts per time.
Fixes: #625
Fixes: #625
memory plugin: Add slab memory stats (linux)
Pull-Request: #560
Pull-Request: #560
virt plugin: Rename the "libvirt" plugin to "virt".
"libvirt" confused libtool and caused problems when re-building from source.
"libvirt" confused libtool and caused problems when re-building from source.
cpu plugin: Various, random fixes and improvements:
* Add Pierre-Yves to the list of copyright holders.
* Make sure the entire file is consistently indented.
* Renamed the "ReportActive" config option to "ReportByState"
(with negated logic).
* Renamed internal functions to better reflect their use.
* Let cpu_stage() (née submit()) work on individual counters / derives
rather than an array, removing logic from the cpu_read() function.
* Rename CPU_SUBMIT_* to CPU_STATE_*.
* Move legacy behavior it its own function, cpu_commit_without_aggregation().
* Add Pierre-Yves to the list of copyright holders.
* Make sure the entire file is consistently indented.
* Renamed the "ReportActive" config option to "ReportByState"
(with negated logic).
* Renamed internal functions to better reflect their use.
* Let cpu_stage() (née submit()) work on individual counters / derives
rather than an array, removing logic from the cpu_read() function.
* Rename CPU_SUBMIT_* to CPU_STATE_*.
* Move legacy behavior it its own function, cpu_commit_without_aggregation().
swap plugin: Make SwapCached optional under Linux.
OpenVZ doesn't provide the line, which caused swap collection to be
skipped entirely on these systems. Instead, "cached" should simply be
ignored, as it is on other systems. Thanks to @zerkms for reporting this
problem!
Fixes: #733
OpenVZ doesn't provide the line, which caused swap collection to be
skipped entirely on these systems. Instead, "cached" should simply be
ignored, as it is on other systems. Thanks to @zerkms for reporting this
problem!
Fixes: #733
cpu plugin: Fix parsing of SoftIRQ under Linux.
openvpn plugin: Don't signal an error when no clients are connected.
In the multi1_read() function, an error (zero) was returned when no
clients were currently connected to the OpenVPN server, because the
"read" variable was initialized to zero and the while loop exited before
it was set to one. This is not the intended behavior.
Thanks to @srix for reporting this issue!
Fixes: #731
In the multi1_read() function, an error (zero) was returned when no
clients were currently connected to the OpenVPN server, because the
"read" variable was initialized to zero and the while loop exited before
it was set to one. This is not the intended behavior.
Thanks to @srix for reporting this issue!
Fixes: #731
Add ReconnectInterval option to Network plugin
The Network plugin only performs DNS resolution at initialization. This
can be problematic when trying to performs migrations of collectd
infrastructure or when trying to create HA solutions which are dependant
on DNS.
The ReconnectInterval options forces a reconnect of all the sockets at
the defined number of seconds. By default no re-connections are attempted
if this option is not set.
The Network plugin only performs DNS resolution at initialization. This
can be problematic when trying to performs migrations of collectd
infrastructure or when trying to create HA solutions which are dependant
on DNS.
The ReconnectInterval options forces a reconnect of all the sockets at
the defined number of seconds. By default no re-connections are attempted
if this option is not set.
Move sockent_client_disconnect above sockent_client_disconnect so we can use it there
collectd.conf(5): Document the ReportDegraded" option.
battery plugin: Implement the "ReportDegraded" option.
battery plugin: Implement the ValuesPercentage option.
battery plugin: Only report "current" when actually supplied by the battery.
I think the commend in the file sums it up pretty good, read that ;)
I think the commend in the file sums it up pretty good, read that ;)
AUTHORS: Add Andy Parkins.
Fix typo in if caluse
Fixes #729
Fixes #729
battery plugin: Import code to read metrics from sysfs.
This started as a simple import of Andy Parkins' sysfsbattery plugin into
the battery plugin. Since the battery plugin is ancient and hasn't been
touched in a while, this quickly escalated to a much bigger refactoring.
Sorry!
On the other hand, this fixes a couple of bugs. For example, all metrics
were always dispatched with plugin_instance "0". This is correct for the
majority of laptops, of course, but in theory this could be wrong.
Also ACPI charging / discharging rate is reported as "current", when
modern batteries actually report "power". The sysfs code does this
correctly, ACPI still needs to be patched.
Fixes: #725
This started as a simple import of Andy Parkins' sysfsbattery plugin into
the battery plugin. Since the battery plugin is ancient and hasn't been
touched in a while, this quickly escalated to a much bigger refactoring.
Sorry!
On the other hand, this fixes a couple of bugs. For example, all metrics
were always dispatched with plugin_instance "0". This is correct for the
majority of laptops, of course, but in theory this could be wrong.
Also ACPI charging / discharging rate is reported as "current", when
modern batteries actually report "power". The sysfs code does this
correctly, ACPI still needs to be patched.
Fixes: #725
src/common.[ch]: Implement strtogauge().
src/configfile.c: Fix the default interval setting.
Also fixes a bug in global_option_get_time(): Values smaller than or
equal to zero are illegal and the default value should be returned.
Thanks to @anandkarthik for spotting this!
Fixes: #727
Also fixes a bug in global_option_get_time(): Values smaller than or
equal to zero are illegal and the default value should be returned.
Thanks to @anandkarthik for spotting this!
Fixes: #727
RPM specfile: take all new plugins and dependencies in account
Merge branch 'collectd-5.4'
RPM specfile: enable lvm plugin on RHEL7
Merge branch 'collectd-5.3' into collectd-5.4
Conflicts:
contrib/redhat/collectd.spec
Conflicts:
contrib/redhat/collectd.spec
Merge remote-tracking branch 'github/master'
processes plugin: Limit the buffer size used for command line matching.
ARG_MAX is quite big on many systems, for example >100 kByte on
GNU/Linux. This is a problem for systems with tight memory constraints,
for example embedded devices.
This patch uses at most 4 kByte for this, which out to be enough for the
vast majority of users. Users with specific requirements can compile
with "CMDLINE_BUFFER_SIZE=${LOTS}" in their CPPFLAGS to override this
default.
Fixes: #652
ARG_MAX is quite big on many systems, for example >100 kByte on
GNU/Linux. This is a problem for systems with tight memory constraints,
for example embedded devices.
This patch uses at most 4 kByte for this, which out to be enough for the
vast majority of users. Users with specific requirements can compile
with "CMDLINE_BUFFER_SIZE=${LOTS}" in their CPPFLAGS to override this
default.
Fixes: #652
RPM specfile: enable netlink plugin on RHEL > 5
RPM specfile: fix bogus dates
modern rpmbuild versions appear to be more strict on this point.
modern rpmbuild versions appear to be more strict on this point.
RPM specfile: support for RHEL7
RPM specfile: remove define accidentally re-added when handling merge conflict
RPM specfile: remove macro accidentally re-added when handling merge conflict
RPM specfile: remove duplicate modbus block
improve CollectInternalStats's documentation
Merge remote-tracking branch 'origin/pr/691'
Merge branch 'pr-713'
src/plugin.c: Parse "MaxReadInterval" with global_option_get_time().
src/configfile.[ch]: Implement global_option_get_time().
src/configfile.c: Use cf_util_get_cdtime() to parse the "Interval" settings.
set target: Simplify config parsing.
disk plugin: Add metric for pending I/O operations.
This is only supported on Linux right now.
Fixes: #705
This is only supported on Linux right now.
Fixes: #705
Merge branch 'collectd-5.4'
Merge branch 'collectd-5.3' into collectd-5.4
Conflicts:
src/curl.c
Conflicts:
src/curl.c
network plugin: Improve client connecting behavior.
This moves the socket creation logic so it's called from
networt_send_buffer_plain(). This allows us to recover after network
failures or when collectd was started before the network was available.
Fixes: #627
This moves the socket creation logic so it's called from
networt_send_buffer_plain(). This allows us to recover after network
failures or when collectd was started before the network was available.
Fixes: #627
network plugin: Improve "Buffer too small" error message.
References: #724
References: #724
write_http plugin: Don't compare pointer with numeric literal.
Not even zero. Not even once.
References: #722
Not even zero. Not even once.
References: #722
collectd.conf(5): s/metircs/metrics/
collectd.conf(5): Improve markup of the write_kafka documentation.
write_http plugin: Implement the "BufferSize" option.
Fixes: #722
Fixes: #722
src/utils_match.[ch]: Implement match_value_reset().
This is called from the curl and memcachec plugins. Previously, gauge
average, minimum and maximum values were calculated since the start of
the daemon, rather than per-interval. This is not the documented
functionality.
Fixes: #663
This is called from the curl and memcachec plugins. Previously, gauge
average, minimum and maximum values were calculated since the start of
the daemon, rather than per-interval. This is not the documented
functionality.
Fixes: #663
curl plugin: Use the utility functions for config handling.
Merge remote-tracking branch 'github/collectd-5.3' into collectd-5.3
src/meta_data.c: If the meta_data_t is empty, avoid calling malloc(0).
src/utils_format_json.c: Handle empty meta_data_t gracefully.
Previously, `meta != NULL` and `keys_num == 0` was possible and would
result in "{}", which is not valid JSON.
Fixes: 716
Previously, `meta != NULL` and `keys_num == 0` was possible and would
result in "{}", which is not valid JSON.
Fixes: 716
python plugin: Don't create empty meta_data_t objects.
Fixes: #716
Fixes: #716
src/utils_rrdcreate.c: Free "args".
Thanks to Yves Mettier for pointing this out!
Fixes: #661
Thanks to Yves Mettier for pointing this out!
Fixes: #661
Merge pull request #695 from mfournier/curlopt_username-fixups
Allow curl digest feature to build against older libcurl versions
Allow curl digest feature to build against older libcurl versions
parse option MaxReadInterval in the plugin_init_all()
apache plugin: Remove custom string/bool config functions.
Merge branch 'collectd-5.3' into collectd-5.4
Conflicts:
contrib/redhat/collectd.spec
Conflicts:
contrib/redhat/collectd.spec
RPM specfile: update changelog without incrementing release number
src/collectd.h: Enable __attribute__() for clang, too.
GenericJMXConfConnection: Remove unused imports.
java plugin: Make sure cjni_thread_detach() is called on all paths.
Each call to cjni_thread_attach() much be accompanied by
a call to cjni_thread_detach(). Some error handling cases were missing
the call, potentially locking the plugin up.
Each call to cjni_thread_attach() much be accompanied by
a call to cjni_thread_detach(). Some error handling cases were missing
the call, potentially locking the plugin up.
collectd.conf(5): Improve AutoLoadPlugin documentation.
Make it clear that plugins without a <Plugin /> block will still need a
LoadPlugin line.
References: #715
Make it clear that plugins without a <Plugin /> block will still need a
LoadPlugin line.
References: #715
collectd.conf(5): Improve documentation of LoadPlugin.
Mention AutoLoadPlugin in the relevant places. Add a <Plugin /> block
for the "df" plugin to make it easier to spot that it is preceded by a
<LoadPlugin /> *block*.
Fixes: #715
Mention AutoLoadPlugin in the relevant places. Add a <Plugin /> block
for the "df" plugin to make it easier to spot that it is preceded by a
<LoadPlugin /> *block*.
Fixes: #715
renamed the option to CollectInternalStats; renamed 'internal' to 'collectd'; no more lock when not recording internal stats
document MaxReadInterval option
nb_values missing in types.db; renaming as cache_size
rename option MaxEffectiveInterval -> MaxReadInterval
Merge branch 'feature/ZOL'
Conflicts:
configure.ac
Conflicts:
configure.ac
EL <6 provide perl-ExtUtils-Embed with base perl
Conflicts:
contrib/redhat/collectd.spec
Conflicts:
contrib/redhat/collectd.spec
allow to configure the maximum effective interval between attempts to read data by plugins
Merge remote-tracking branch 'github/pr/706'
Conflicts:
src/write_riemann.c
Conflicts:
src/write_riemann.c
Small naming conventions fixes, let the user to choose its delimiter
s/appended/used/ according to PR 706
Statsd: support samplerate field in timing metric types
Fixes "Unable to parse line" bug, often seen receiving stats from
OpenStack Swift. Should fix GH issue #461
Fixes "Unable to parse line" bug, often seen receiving stats from
OpenStack Swift. Should fix GH issue #461
Merge remote-tracking branch 'github/pr/711'
Merge pull request #712 from tas50/master
Fix spelling and split words where appropriate in readme / authors
Fix spelling and split words where appropriate in readme / authors
Fix spelling and split words where appropriate in readme / authors