fixed rebase conflicts
Signed-off-by: Krzysztof Matczak <krzysztofx.matczak@intel.com>
Signed-off-by: Krzysztof Matczak <krzysztofx.matczak@intel.com>
dpdkstat plugin: jump to the right label
virt plugin: fix a few build warnings
src/virt.c:939:13: warning: initializing 'char *' with an expression of type 'const char [34]' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
char *bd_xmlpath = "/domain/devices/disk/target[@dev]";
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/virt.c:941:20: warning: assigning to 'char *' from 'const char [34]' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
bd_xmlpath = "/domain/devices/disk/source[@dev]";
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/virt.c:939:13: warning: initializing 'char *' with an expression of type 'const char [34]' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
char *bd_xmlpath = "/domain/devices/disk/target[@dev]";
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/virt.c:941:20: warning: assigning to 'char *' from 'const char [34]' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
bd_xmlpath = "/domain/devices/disk/source[@dev]";
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Merge branch 'collectd-5.7'
Merge branch 'collectd-5.6' into collectd-5.7
src/daemon/common.c: Change swrite() to return errno if possible.
Merge pull request #2121 from octo/netapp
netapp plugin: Fix complation problems.
netapp plugin: Fix complation problems.
Merge remote-tracking branch 'github/pr/2059'
Merge pull request #2085 from rubenk/non-recursive-make
Switch to non-recursive make
Switch to non-recursive make
Switch to non-recursive make
Recursive make caused various dependency issues, mainly with linked
libraries or objects from other directories. Switch to a single Makefile
to solve this. An addded benefit is that this should speed up the build.
It also opens up the possibility to improve on our directory layout.
Recursive make caused various dependency issues, mainly with linked
libraries or objects from other directories. Switch to a single Makefile
to solve this. An addded benefit is that this should speed up the build.
It also opens up the possibility to improve on our directory layout.
netapp plugin: Fix compilation problems.
Fixes: #2120
Fixes: #2120
Auto-Merge pull request #2113 from rubenk/dpdk-double-close
Automatically merged due to "Automerge" label
Automatically merged due to "Automerge" label
Merge pull request #2114 from mfournier/dpdkstat-formatstring
dpdkstat: use portable format strings
dpdkstat: use portable format strings
dpdkstat: use portable format strings
Merge pull request #2112 from rubenk/battery-plugin-nul-terminate-buffer
Battery plugin: nul-terminate buffer
Battery plugin: nul-terminate buffer
Merge branch 'collectd-5.7'
dpdkstat: don't close already closed fd on failure
CID #158525
CID #158525
battery plugin: null-terminate buffer
We call strstripnewline on it, which expects a null-terminated string.
CID #158524
We call strstripnewline on it, which expects a null-terminated string.
CID #158524
Fix parallel build
Fixes #2110
Fixes #2110
Auto-Merge pull request #2053 from nuclearcat/master
Automatically merged due to "Automerge" label
Automatically merged due to "Automerge" label
Suggestions
More appropriate metric
Removing double reference
Adding support of drops value monitoring
Auto-Merge pull request #2111 from octo/cid/157643
Automatically merged due to "Automerge" label
Automatically merged due to "Automerge" label
src/utils_cmd_getthreshold.c: Fix formatting.
set target: Avoid casting negative int to size_t.
CID: 157643
CID: 157643
Auto-Merge pull request #2099 from tokkee/sh/booleans
Automatically merged due to "Automerge" label
Automatically merged due to "Automerge" label
update README to mention write_prometheus & support lib
Auto-Merge pull request #2096 from rubenk/target-set-plug-leak
Automatically merged due to "Automerge" label
Automatically merged due to "Automerge" label
Auto-Merge pull request #2092 from rubenk/prometheus-plug-leak
Automatically merged due to "Automerge" label
Automatically merged due to "Automerge" label
Merge pull request #2100 from mojaves/pr-virt-disconnect-on-inst0
virt plugin: handle disconnect on inst#0
virt plugin: handle disconnect on inst#0
virt plugin: Use lv_disconnect on shutdown
Avoiding duplication of the code and let's use
the new lv_disconnect() helper in the lv_shutdown() callback.
Signed-off-by: Francesco Romani <fromani@redhat.com>
Avoiding duplication of the code and let's use
the new lv_disconnect() helper in the lv_shutdown() callback.
Signed-off-by: Francesco Romani <fromani@redhat.com>
virt plugin: handle disconnect on inst#0
Only one virt reader instance should take care of connection
handling (connection/disconnection) to avoid races and plugin
data corruption, potentially crashing collectd.
This bug cannot be triggered with instances=1 (default settings).
Signed-off-by: Francesco Romani <fromani@redhat.com>
Only one virt reader instance should take care of connection
handling (connection/disconnection) to avoid races and plugin
data corruption, potentially crashing collectd.
This bug cannot be triggered with instances=1 (default settings).
Signed-off-by: Francesco Romani <fromani@redhat.com>
Merge pull request #2101 from mojaves/pr-virt-open-on-init
virt plugin: Open connection on init()
virt plugin: Open connection on init()
virt plugin: fail init with no libvirt connection
Even though we handle disconnection and reconnection
in the read() callback, we expect the libvirt connection
to be available most of the time, including the init()
stage.
Thus, let's fail init() if the connection is not available.
Signed-off-by: Francesco Romani <fromani@redhat.com>
Even though we handle disconnection and reconnection
in the read() callback, we expect the libvirt connection
to be available most of the time, including the init()
stage.
Thus, let's fail init() if the connection is not available.
Signed-off-by: Francesco Romani <fromani@redhat.com>
virt plugin: Open connection on init()
If we use more than one reader instance, we can spot errors like
this in the system logs:
Dec 12 09:59:24 $HOST collectd[19338]: reading number of
domains: invalid connection pointer in virConnectNumOfDomains
Dec 12 09:59:24 benji.rokugan.lan collectd[19338]: read-function of
plugin `virt-2' failed. Will suspend it for 20.000 seconds.
This causes unnecessary delay in the sampling of libvirt.
The reason for this is just one instance (always #0) takes care
of establishing the libvirt connection.
But this could be done safely in the plugin init callback: according
to doc, this function is called at least once before all the read
instances.
Signed-off-by: Francesco Romani <fromani@redhat.com>
If we use more than one reader instance, we can spot errors like
this in the system logs:
Dec 12 09:59:24 $HOST collectd[19338]: reading number of
domains: invalid connection pointer in virConnectNumOfDomains
Dec 12 09:59:24 benji.rokugan.lan collectd[19338]: read-function of
plugin `virt-2' failed. Will suspend it for 20.000 seconds.
This causes unnecessary delay in the sampling of libvirt.
The reason for this is just one instance (always #0) takes care
of establishing the libvirt connection.
But this could be done safely in the plugin init callback: according
to doc, this function is called at least once before all the read
instances.
Signed-off-by: Francesco Romani <fromani@redhat.com>
Align dots in ./configure output
Bump version to 5.7.0; Update ChangeLog.
utils_random.{c,h}: fix build warning
utils_random.c:53:8: warning: no previous prototype for function 'cdrand_d' [-Wmissing-prototypes]
double cdrand_d() {
^
./utils_random.h:32:8: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
double cdrand_d();
^
void
utils_random.c:64:10: warning: no previous prototype for function 'cdrand_u' [-Wmissing-prototypes]
uint32_t cdrand_u() {
^
./utils_random.h:40:10: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
uint32_t cdrand_u();
^
void
2 warnings generated.
utils_random.c:53:8: warning: no previous prototype for function 'cdrand_d' [-Wmissing-prototypes]
double cdrand_d() {
^
./utils_random.h:32:8: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
double cdrand_d();
^
void
utils_random.c:64:10: warning: no previous prototype for function 'cdrand_u' [-Wmissing-prototypes]
uint32_t cdrand_u() {
^
./utils_random.h:40:10: note: this declaration is not a prototype; add 'void' to make it a prototype for a zero-parameter function
uint32_t cdrand_u();
^
void
2 warnings generated.
configure.ac: fix indentation
configfile: Reintroduce support for boolean string config values.
For the network plugin, this was changed in ac73c75aed7 (which landed in 5.6)
which was a backward incompatible change breaking user configuration. Adding
support back in a central location ensures a more consistent behavior across
plugins. At the same time, we issue a warning message that this behavior is
deprecated.
GH #2083, #2098
For the network plugin, this was changed in ac73c75aed7 (which landed in 5.6)
which was a backward incompatible change breaking user configuration. Adding
support back in a central location ensures a more consistent behavior across
plugins. At the same time, we issue a warning message that this behavior is
deprecated.
GH #2083, #2098
Travis: install libmicrohttpd
For the write_prometheus plugin
For the write_prometheus plugin
Travis: install libgps
Travis: install lua libs
travis.yml: remove unrecognized option
configure: WARNING: unrecognized options: --with-python
configure: WARNING: unrecognized options: --with-python
target_set: plug leak on error
CID 157645
CID 157645
email plugin: initialize structure
CID 38125
CID 38125
Merge pull request #2093 from mojaves/pr-virt-domain-tag-fix
virt plugin: fix error path in lv_domain_get_tag
virt plugin: fix error path in lv_domain_get_tag
virt plugin: fix error path in lv_domain_get_tag
Document the return value and fix the error path of
lv_domain_get_tag
Signed-off-by: Francesco Romani <fromani@redhat.com>
Document the return value and fix the error path of
lv_domain_get_tag
Signed-off-by: Francesco Romani <fromani@redhat.com>
write_prometheus: plug a small leak
Found by scan-build
Found by scan-build
Merge pull request #2089 from maryamtahhan/upstream_intelRdt
intel_rdt: fix plugin based on new version of libpqos
intel_rdt: fix plugin based on new version of libpqos
Merge pull request #2088 from landryb/fix/2061
Fix processes and tcpconns plugins on OpenBSD
Fix processes and tcpconns plugins on OpenBSD
Merge branch 'collectd-5.7'
Merge branch 'collectd-5.6' into collectd-5.7
intel_rdt: reset pqos monitoring groups on initialization.
Monitoring groups fail to start when intel_rdt plugin has unpredictably
stopped without unsubscribing from the pqos library. Reset pqos monitoring
groups registers after pqos library is initialized.
Change-Id: I231ba44e531deb8791f34730e7572bfe0cbd825d
Signed-off-by: Korynkevych, RomanX <romanx.korynkevych@intel.com>
Monitoring groups fail to start when intel_rdt plugin has unpredictably
stopped without unsubscribing from the pqos library. Reset pqos monitoring
groups registers after pqos library is initialized.
Change-Id: I231ba44e531deb8791f34730e7572bfe0cbd825d
Signed-off-by: Korynkevych, RomanX <romanx.korynkevych@intel.com>
rdtmon: Use pqos callback to redirect pqos library messages to collectd.
Change-Id: I142e8940878926adf7752eabbad34a6c37cca1d4
Signed-off-by: Korynkevych, RomanX <romanx.korynkevych@intel.com>
Change-Id: I142e8940878926adf7752eabbad34a6c37cca1d4
Signed-off-by: Korynkevych, RomanX <romanx.korynkevych@intel.com>
Fix tcpconns plugin on OpenBSD by using kvm_getfiles() interface (#2061)
Starting with OpenBSD 6.1, access to kvm device is restricted by default,
and tcpconns plugin used the kvm_nlist() interface which needs specific
privileges to access kernel memory. kvm_getfiles() doesn't need these
privileges, and is the interface used by netstat(1) to list connections.
Starting with OpenBSD 6.1, access to kvm device is restricted by default,
and tcpconns plugin used the kvm_nlist() interface which needs specific
privileges to access kernel memory. kvm_getfiles() doesn't need these
privileges, and is the interface used by netstat(1) to list connections.
Use kvm_openfiles with KVM_NO_FILES on OpenBSD (#2061)
Starting with OpenBSD 6.1, access to kvm device is restricted by default,
and processes plugin doesnt need specific privileges on it.
Fixes 'permission denied' error messages with the kern.allowkmem sysctl
defaulting to 0.
Starting with OpenBSD 6.1, access to kvm device is restricted by default,
and processes plugin doesnt need specific privileges on it.
Fixes 'permission denied' error messages with the kern.allowkmem sysctl
defaulting to 0.
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.