Merge branch 'collectd-5.7'
Merge branch 'collectd-5.6' into collectd-5.7
Reformat gRPC plugin.
I guess this was missed because the file uses a .cc suffix.
I guess this was missed because the file uses a .cc suffix.
Merge remote-tracking branch 'github/pr/2080'
Merge remote-tracking branch 'github/pr/2081' into collectd-5.7
smart plugin: Refactor, demote warnings to debug.
Fixes: #2062
Fixes: #2062
Fix configure on RHEL6
Older versions of autoconf really don't like empty action-if-not-found
sections.
Older versions of autoconf really don't like empty action-if-not-found
sections.
perl plugin: Include <stdbool.h> unconditionally.
With the autoconf work in dcb67fd746e550f73f4db4db2e2b24ff9788f209,
HAVE_STDBOOL_H will no longer be defined. Since we depend on C99, we can
include this header unconditionally.
With the autoconf work in dcb67fd746e550f73f4db4db2e2b24ff9788f209,
HAVE_STDBOOL_H will no longer be defined. Since we depend on C99, we can
include this header unconditionally.
src/utils_cmd_*.[ch]: Remove unused and redundant includes.
src/Makefile.am: Fix linking with libcmds.la.
Issue: #2067
Issue: #2067
turbostat plugin: don't depend on capabilities
The plugin builds fine without them. Fixes build on RHEL6.
The plugin builds fine without them. Fixes build on RHEL6.
uuid plugin: remove support for HAL
HAL has been deprecated for a long time.
HAL has been deprecated for a long time.
Merge branch 'contrib-docker-cleanup'
Treewide: remove vim modelines from C code files
They often conflict with the formatting we do with clang-format.
And while we're at it, remove blank lines for end of files too.
They often conflict with the formatting we do with clang-format.
And while we're at it, remove blank lines for end of files too.
More autoconf work
Fix some automake warnings
src/Makefile.am:1286: warning: variable 'test_plugin_virt_SOURCES' is defined but no program or
src/Makefile.am:1286: library has 'test_plugin_virt' as canonical name (possible typo)
src/Makefile.am:1290: warning: variable 'test_plugin_virt_LDADD' is defined but no program or
src/Makefile.am:1290: library has 'test_plugin_virt' as canonical name (possible typo)
src/Makefile.am:1289: warning: variable 'test_plugin_virt_LDFLAGS' is defined but no program or
src/Makefile.am:1289: library has 'test_plugin_virt' as canonical name (possible typo)
autoreconf: Leaving directory `.'
src/Makefile.am:1286: warning: variable 'test_plugin_virt_SOURCES' is defined but no program or
src/Makefile.am:1286: library has 'test_plugin_virt' as canonical name (possible typo)
src/Makefile.am:1290: warning: variable 'test_plugin_virt_LDADD' is defined but no program or
src/Makefile.am:1290: library has 'test_plugin_virt' as canonical name (possible typo)
src/Makefile.am:1289: warning: variable 'test_plugin_virt_LDFLAGS' is defined but no program or
src/Makefile.am:1289: library has 'test_plugin_virt' as canonical name (possible typo)
autoreconf: Leaving directory `.'
Fix autoreconf error on Mac OS
autoreconf: running: /usr/local/Cellar/autoconf/2.69/bin/autoconf --force
configure.ac:39: error: possibly undefined macro: AC_DISABLE_STATIC
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
autoreconf: /usr/local/Cellar/autoconf/2.69/bin/autoconf failed with exit status: 1
autoreconf: running: /usr/local/Cellar/autoconf/2.69/bin/autoconf --force
configure.ac:39: error: possibly undefined macro: AC_DISABLE_STATIC
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
autoreconf: /usr/local/Cellar/autoconf/2.69/bin/autoconf failed with exit status: 1
Merge pull request #2048 from mojaves/pr-virt-domain-tag
Add support for virt domain tags
Add support for virt domain tags
Add rootfs_prefix.so to .gitignore
Address review comments
Merge branch 'collectd-5.7'
dpdkstats: fix detection of local libdpdk
- Fix typo.
Change-Id: I7cfb6dff4e1c2728650cd1d44aaaa36169880809
Signed-off-by: Mytnyk, VolodymyrX <volodymyrx.mytnyk@intel.com>
- Fix typo.
Change-Id: I7cfb6dff4e1c2728650cd1d44aaaa36169880809
Signed-off-by: Mytnyk, VolodymyrX <volodymyrx.mytnyk@intel.com>
write_kafka plugin: Use 32bit random number when formatting a random key.
Previously, negative numbers would be truncated to "ffffffff" by the
buffer length on architectures where longs are 64 bit.
Fixes: #2074
Previously, negative numbers would be truncated to "ffffffff" by the
buffer length on architectures where longs are 64 bit.
Fixes: #2074
src/daemon/utils_random.[ch]: Implement cdrand_u().
utils_format_graphite_test.c: fix build warnings
battery_statefs: fix a few build warnings
battery_statefs.c:95:8: warning: initializing 'char *' with an expression of type 'const char [38]' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
{STATEFS_ROOT "Current", "current", NULL, 1e-6}, // from uA to A
^~~~~~~~~~~~~~~~~~~~~~
battery_statefs.c:95:8: warning: initializing 'char *' with an expression of type 'const char [38]' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
{STATEFS_ROOT "Current", "current", NULL, 1e-6}, // from uA to A
^~~~~~~~~~~~~~~~~~~~~~
meta_data.c: fix a build warning
make[3]: Entering directory '/home/ruben/src/collectd/src/daemon'
CC meta_data.lo
meta_data.c:728:12: warning: assigning to 'char *' from 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
actual = e->value.mv_boolean ? "true" : "false";
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
CCLD libmetadata.la
CC collectd-meta_data.o
meta_data.c:728:12: warning: assigning to 'char *' from 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
actual = e->value.mv_boolean ? "true" : "false";
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
make[3]: Entering directory '/home/ruben/src/collectd/src/daemon'
CC meta_data.lo
meta_data.c:728:12: warning: assigning to 'char *' from 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
actual = e->value.mv_boolean ? "true" : "false";
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
CCLD libmetadata.la
CC collectd-meta_data.o
meta_data.c:728:12: warning: assigning to 'char *' from 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
actual = e->value.mv_boolean ? "true" : "false";
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
Merge branch 'collectd-5.7'
Merge pull request #2069 from octo/issue/2067
src/Makefile.am: Fix dependencies for the "tail" and "match" utilities.
src/Makefile.am: Fix dependencies for the "tail" and "match" utilities.
src/Makefile.am: Fix dependencies for the "tail" and "match" utilities.
Since being pulled out of the core daemon, the daemon no longer provides
all the required symbols for these shared objects. The "tail", "match"
and "tail_match" utils need to be compiled in explicitly. Also, we need
to link with the liblatency.la convenience library for the
"Distribution" handling in the "match" util.
Issue: #2067
Since being pulled out of the core daemon, the daemon no longer provides
all the required symbols for these shared objects. The "tail", "match"
and "tail_match" utils need to be compiled in explicitly. Also, we need
to link with the liblatency.la convenience library for the
"Distribution" handling in the "match" util.
Issue: #2067
virt plugin: Document the partition/tag support
document the tag schema, and explain one use case
and rationale for it.
document the tag schema, and explain one use case
and rationale for it.
virt plugin: Properly reset the lists
If all the libvirt domains are shutdown between two refresh cycles,
the code failed to clean the lists.
Thus, the last detected libvirt domains are kept forever, leading
to failures in the data collection.
This leads to messages like
Nov 24 15:34:57 benji.rokugan.lan collectd[15083]: libvirt: QEMU Driver
error : Domain not found: no domain with matching uuid
'bc324fee-5707-4ac6-a650-6037562d4632' (nano_C010)
In the logs.
This bug was also present in collectd 5.6.1.
Signed-off-by: Francesco Romani <fromani@redhat.com>
If all the libvirt domains are shutdown between two refresh cycles,
the code failed to clean the lists.
Thus, the last detected libvirt domains are kept forever, leading
to failures in the data collection.
This leads to messages like
Nov 24 15:34:57 benji.rokugan.lan collectd[15083]: libvirt: QEMU Driver
error : Domain not found: no domain with matching uuid
'bc324fee-5707-4ac6-a650-6037562d4632' (nano_C010)
In the logs.
This bug was also present in collectd 5.6.1.
Signed-off-by: Francesco Romani <fromani@redhat.com>
virt plugin: Disable tests momentarily
Old libvirts (<= 0.10.z, such as the version shipped on debian wheezy)
depend on libnl-1. There is a small memory leak caused by the
initialization of the library, and we have no means to avoid it.
This causes valgrind to complain in the tests, creating a false
positive.
Anyway, libvirt switched to libnl-3, which should also fix this leak.
The simplest solution is just to disable those tests until we
can depend on libnl-3 enabled libvirt.
Old libvirts (<= 0.10.z, such as the version shipped on debian wheezy)
depend on libnl-1. There is a small memory leak caused by the
initialization of the library, and we have no means to avoid it.
This causes valgrind to complain in the tests, creating a false
positive.
Anyway, libvirt switched to libnl-3, which should also fix this leak.
The simplest solution is just to disable those tests until we
can depend on libnl-3 enabled libvirt.
virt plugin: Add tests for the domain tags
Bootstrap the unit tests for the virt plugin, starting with
the newly-added partition/tag support.
Signed-off-by: Francesco Romani <fromani@redhat.com>
Bootstrap the unit tests for the virt plugin, starting with
the newly-added partition/tag support.
Signed-off-by: Francesco Romani <fromani@redhat.com>
virt plugin: Minor fixes
- avoid double registration with useless lv_read callback (will do
nothing now without userdata)
- fix configuration parsing
- improve and reformat logging
- avoid unitialized memory in partition tag buffer
- refactor and improve finalization, and ensure deregistration of
namespaces to improve cleanup.
Signed-off-by: Francesco Romani <fromani@redhat.com>
- avoid double registration with useless lv_read callback (will do
nothing now without userdata)
- fix configuration parsing
- improve and reformat logging
- avoid unitialized memory in partition tag buffer
- refactor and improve finalization, and ensure deregistration of
namespaces to improve cleanup.
Signed-off-by: Francesco Romani <fromani@redhat.com>
virt plugin: Use int, for the number of instances
One 'int' is big enough, and we check the boundaries anyway
in lv_config.
Signed-off-by: Francesco Romani <fromani@redhat.com>
One 'int' is big enough, and we check the boundaries anyway
in lv_config.
Signed-off-by: Francesco Romani <fromani@redhat.com>
virt plugin: Avoid NULL pointer deference
As per pull request review. Moving the variable assignement after
the check avoid any potential issues in the future.
Signed-off-by: Francesco Romani <fromani@redhat.com>
As per pull request review. Moving the variable assignement after
the check avoid any potential issues in the future.
Signed-off-by: Francesco Romani <fromani@redhat.com>
virt plugin: Add support for domain tags
One "domain tag" is one custom attribute in the libvirt domain
metadata section. This patch enhances the virt plugin to partition
the domains to sample into reader instances according to tags.
One reader instance will only query the domains with attached
a macthing tag.
The special-purpose reader instance #0, guaranteed to be always present,
(since <0 instances are not allowed), will query all the domains
with missing or unrecognized tag, so no domain will ever left
out.
It's up to one external entity, like a management application,
to properly tag domains however it sees fit; how tags are picked
is completely transparent to the plugin
Tagging could be used by management application to evenly spread the
load among the reader threads, or to pin on the same threads all
the libvirt domains which use the same shared storage, to minimize
the disruption in presence of storage outages.
Signed-off-by: Francesco Romani <fromani@redhat.com>
One "domain tag" is one custom attribute in the libvirt domain
metadata section. This patch enhances the virt plugin to partition
the domains to sample into reader instances according to tags.
One reader instance will only query the domains with attached
a macthing tag.
The special-purpose reader instance #0, guaranteed to be always present,
(since <0 instances are not allowed), will query all the domains
with missing or unrecognized tag, so no domain will ever left
out.
It's up to one external entity, like a management application,
to properly tag domains however it sees fit; how tags are picked
is completely transparent to the plugin
Tagging could be used by management application to evenly spread the
load among the reader threads, or to pin on the same threads all
the libvirt domains which use the same shared storage, to minimize
the disruption in presence of storage outages.
Signed-off-by: Francesco Romani <fromani@redhat.com>
virt plugin: Support for multiple read callbacks
Add support to register more than one read callbacks in the
reader thread pool.
The default configuration is to use just one read callback,
for backward compatibility. No user-visible changes are expected
in this scenario.
Signed-off-by: Francesco Romani <fromani@redhat.com>
Add support to register more than one read callbacks in the
reader thread pool.
The default configuration is to use just one read callback,
for backward compatibility. No user-visible changes are expected
in this scenario.
Signed-off-by: Francesco Romani <fromani@redhat.com>
virt plugin: Factor the read state into a struct
The lv_read function needs some bookkeeping data to track which
domain, block interface and network interface should be polled
for new data.
This patch factors out this data, previously scattered as module
globals, in a new struct. This makes the code a little tidier
and more reusable.
Signed-off-by: Francesco Romani <fromani@redhat.com>
The lv_read function needs some bookkeeping data to track which
domain, block interface and network interface should be polled
for new data.
This patch factors out this data, previously scattered as module
globals, in a new struct. This makes the code a little tidier
and more reusable.
Signed-off-by: Francesco Romani <fromani@redhat.com>
Bump version to 5.6.1; Update ChangeLog.
Merge pull request #1898 from rubenk/remove-libltdl-support
Replace libltdl with plain dlopen.
Replace libltdl with plain dlopen.
contrib/docker: cleanup wrapper a bit
- No need to declare errno
- Remove one level of indentation
- No need to declare errno
- Remove one level of indentation
Drop support for libtool version 1
The only distro that we still support that uses libtool version 1
is RHEL5, but that will be EOL in a few months.
The only distro that we still support that uses libtool version 1
is RHEL5, but that will be EOL in a few months.
src/utils_format_graphite.[ch]: Test correct null termination.
Issue: #2063
Issue: #2063
Merge branch 'collectd-5.7'
Merge pull request #2064 from rubenk/fix-make-distcheck
Fix make distcheck
Fix make distcheck
Collected podtypo
Merge branch 'collectd-5.7'
Merge branch 'collectd-5.6' into collectd-5.7
Conflicts:
contrib/redhat/collectd.spec
Conflicts:
contrib/redhat/collectd.spec
collectd.spec: also disable write_redis on EL6
This plugin also depends on the hiredis library, which was retired from
EPEL6.
This plugin also depends on the hiredis library, which was retired from
EPEL6.
Merge branch 'collectd-5.5' into collectd-5.6
Conflicts:
contrib/redhat/collectd.spec
Conflicts:
contrib/redhat/collectd.spec
contrib: clang-format rootfs_prefix.c
collectd.spec: disable redis plugin on EL6
hiredis has been retired from EPEL6
hiredis has been retired from EPEL6
collectd.spec: disable redis plugin on EL6
Merge pull request #2041 from mfournier/contrib-docker
Add sample Dockerfile & LD_PRELOAD wrapper to contrib
Add sample Dockerfile & LD_PRELOAD wrapper to contrib
Even more renormalization.
Merge branch 'collectd-5.6'
More reformatting.
No idea why the previous round missed these files.
No idea why the previous round missed these files.
Merge branch 'collectd-5.6'
Tree wide: Reformat with clang-format.
Tree wide: Reformat with clang-format.
Merge branch 'collectd-5.5' into collectd-5.6
Bump version to 5.5.3; Update ChangeLog.
Merge branch 'pr/2056'
collectd.conf(5): Improve documentation of the turbostat plugin.
Updated to actually honor the boolean and clarified documentation per request
collectd.conf(5): Add missing blank line.
src/utils_latency_config.c: Avoid nested compound literals.
So GCC 4.6 doesn't crash.
So GCC 4.6 doesn't crash.
src/daemon/utils_match.[ch]: Rename UTILS_MATCH_CF_GAUGE_LATENCY to UTILS_MATCH_CF_GAUGE_DIST.
tail plugin: Rename DSType from Latency to Distribution.
This is a more flexible naming owing to the fact that percentiles and other
distribution parameters are interesting for a variety of metrics, not just
latencies.
The config handling is now completely in src/utils_latency_config.c so
that other plugins, such as the cURL plugin, can easily reuse the module
with consistent config handling.
This is a more flexible naming owing to the fact that percentiles and other
distribution parameters are interesting for a variety of metrics, not just
latencies.
The config handling is now completely in src/utils_latency_config.c so
that other plugins, such as the cURL plugin, can easily reuse the module
with consistent config handling.
src/utils_latency{,_config}.[ch]: Reformat new code with clang-format.
collectd.conf(5): Update the "LatencyRate" option.
src/utils_latency.[ch]: get_rate(): Make lower bound exclusive.
This has a bunch of benefits:
* You can easily iterate over a range of latencies without counting
latencies twice. This was previously tricky because both borders were
considered to be inclusive.
* When lower equals upper, the returned value is now zero.
Previously, it was a value very close to zero, but not zero. The exact
value depended on the bucket width, an information not easily
available to the caller.
This has a bunch of benefits:
* You can easily iterate over a range of latencies without counting
latencies twice. This was previously tricky because both borders were
considered to be inclusive.
* When lower equals upper, the returned value is now zero.
Previously, it was a value very close to zero, but not zero. The exact
value depended on the bucket width, an information not easily
available to the caller.
src/utils_latency.[ch]: Remove latency_counter_get_start_time().
src/utils_latency.[ch]: Improve accuracy, update unit test.
DSType latency: Improved after PR code review
+ liblatency: Added utils_latency_config code
+ tail plugin: DSType Latency added
+ tail plugin: DSType Latency added
+ utils_latency: Cleaned latency_counter_get_rate() from debugging
+ utils_latency: Added latency_counter_get_rate()
+ User_data destroy callback added to match_create_callback() in utils_match
Merge remote-tracking branch 'github/pr/2058'
amqp, write_graphite and write_kafka plugins: Implement the "[Graphite]PreserveSeparator" option.
Fixes: #419
Fixes: #419
src/utils_format_graphite.[ch]: Implement the GRAPHITE_PRESERVE_SEPARATOR flag.
Add config boolean for logical CPU naming for turbostat plugin
Merge remote-tracking branch 'github/pr/2052'
Merge remote-tracking branch 'github/pr/2054'
src/utils_format_graphite.[ch]: Add unit test.
First step towards fixing issue #419.
First step towards fixing issue #419.
collectd.spec: enable write_prometheus
use deterministic time values in MockDaemon
recognize seconds with and without fractional part
pass fractional seconds upwards as floats
allow fractional seconds in listval_filter()
update MockDaemon to report fractional seconds
fix indentation (consistently use tabs)
Merge pull request #2046 from rubenk/cleanup-dpdk-detection
Cleanup dpdk detection
Cleanup dpdk detection
Merge remote-tracking branch 'github/pr/2040'
Fix Lua header detection
checking lua.h usability... yes
checking lua.h presence... no
configure: WARNING: lua.h: accepted by the compiler, rejected by the
preprocessor!
configure: WARNING: lua.h: proceeding with the compiler's result
checking for lua.h... yes
checking lauxlib.h usability... yes
checking lauxlib.h presence... no
configure: WARNING: lauxlib.h: accepted by the compiler, rejected by the
preprocessor!
configure: WARNING: lauxlib.h: proceeding with the compiler's result
checking for lauxlib.h... yes
checking lualib.h usability... yes
checking lualib.h presence... no
configure: WARNING: lualib.h: accepted by the compiler, rejected by the
preprocessor!
configure: WARNING: lualib.h: proceeding with the compiler's result
checking for lualib.h... yes
AC_CHECK_HEADERS uses the preprocessor directly, which doesn't use
CFLAGS. Fixes detection of the lua-5.1 compat libs on Fedora Rawhide.
checking lua.h usability... yes
checking lua.h presence... no
configure: WARNING: lua.h: accepted by the compiler, rejected by the
preprocessor!
configure: WARNING: lua.h: proceeding with the compiler's result
checking for lua.h... yes
checking lauxlib.h usability... yes
checking lauxlib.h presence... no
configure: WARNING: lauxlib.h: accepted by the compiler, rejected by the
preprocessor!
configure: WARNING: lauxlib.h: proceeding with the compiler's result
checking for lauxlib.h... yes
checking lualib.h usability... yes
checking lualib.h presence... no
configure: WARNING: lualib.h: accepted by the compiler, rejected by the
preprocessor!
configure: WARNING: lualib.h: proceeding with the compiler's result
checking for lualib.h... yes
AC_CHECK_HEADERS uses the preprocessor directly, which doesn't use
CFLAGS. Fixes detection of the lua-5.1 compat libs on Fedora Rawhide.
src/daemon/plugin.c: Address review comments.