src/utils_ovs.c:366:20: warning: Access to field 'type' results in a dereference of a null pointer (loaded from variable 'jval')
(int)(jval)->type);
^~~~~~~~~~~~
...
Right now, the plugin dispatches values by default and doesn't send
any notification messages. The expected behaviour of the event plugin
is to send notification by default. So, changed default value of
SendNotification & DispatchValues options to opposite.
Ruben Kerkhof [Sun, 5 Mar 2017 17:43:15 +0000 (18:43 +0100)]
virt plugin: fix build warning
CC src/virt_la-virt.lo
src/virt.c:417:37: warning: comparison of integers of different signs: 'int' and 'unsigned long' [-Wsign-compare]
if ((tag_index < 0) || (tag_index >= STATIC_ARRAY_SIZE(tags))) {
~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
Ruben Kerkhof [Sun, 5 Mar 2017 17:30:23 +0000 (18:30 +0100)]
collectd.spec: Don't enable XFS support on RHEL6
It is missing for i386.
If there's strong interest in having support for xfs in the df plugin in
RHEL6 we can do some macro magic to only BuildRequire xfsprogs-devel if
were not on rhel6 i386, but this was the easiest fix and unblocks our
package builds.
Ruben Kerkhof [Sun, 5 Mar 2017 17:02:30 +0000 (18:02 +0100)]
utils_cmd_flush.c: fix another build warning
src/utils_cmd_flush.c:140:11: warning: declaration shadows a local variable [-Wshadow]
int status;
^
src/utils_cmd_flush.c:114:7: note: previous declaration is here
int status;
^
Ruben Kerkhof [Sun, 5 Mar 2017 16:45:54 +0000 (17:45 +0100)]
ovs_stats plugin: fix some more build warnings
CC src/ovs_stats_la-ovs_stats.lo
src/ovs_stats.c:158:8: warning: 'const' type qualifier on return type has no effect [-Wignored-qualifiers]
static const iface_counter ovs_stats_counter_name_to_type(const char *counter) {
^~~~~~
src/ovs_stats.c:356:29: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
for (int i = 0; i < ports_num; i++)
~ ^ ~~~~~~~~~
src/ovs_stats.c:401:23: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
for (int i = 0; i < YAJL_GET_OBJECT(bridges)->len; i++) {
~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/ovs_stats.c:415:23: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
for (int i = 0; i < YAJL_GET_OBJECT(bridges)->len; i++) {
~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/ovs_stats.c:501:23: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
for (int i = 0; i < YAJL_GET_OBJECT(ports)->len; i++) {
~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/ovs_stats.c:524:23: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
for (int i = 0; i < YAJL_GET_OBJECT(ports)->len; i++) {
~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/ovs_stats.c:538:23: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
for (int i = 0; i < YAJL_GET_ARRAY(stats)->len; i++) {
~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~
src/ovs_stats.c:558:23: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
for (int i = 0; i < YAJL_GET_ARRAY(ext_ids)->len; i++) {
~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/ovs_stats.c:684:23: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
for (int i = 0; i < YAJL_GET_OBJECT(ports)->len; i++)
~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
9 warnings generated.
Ruben Kerkhof [Sun, 5 Mar 2017 16:42:28 +0000 (17:42 +0100)]
ovs_stats plugin: fix build warning
src/ovs_stats.c:158:8: warning: 'const' type qualifier on return type has no effect [-Wignored-qualifiers]
static const iface_counter ovs_stats_counter_name_to_type(const char *counter) {
^~~~~~
Ruben Kerkhof [Sun, 5 Mar 2017 15:46:47 +0000 (16:46 +0100)]
Check for the CAP_IS_SUPPORTED macro
On EPEL6:
src/daemon/common.c: In function 'check_capability':
src/daemon/common.c:1571: error: implicit declaration of function 'CAP_IS_SUPPORTED'
make[1]: *** [src/daemon/common.lo] Error 1
This change forces dpdkstat plugin to check if memory needs to be resized on
every DPDK_CMD_GET_STATS command, rather than resizing it only once at
initialization. Additionally it fixes incorrect metric retrieval logic, which
allows plugin to dispatch metrics only if number of retrieved extended statistics
is equal to allocated stats array size for port. Based on DPDK API documentation
rte_eth_xstats_get (and rte_eth_xstats_get_names) function can return positive
value lower than array size, which isn't considered a failure.
If primary DPDK process is restarted with a greater number of ports bound to
DPDK driver while collectd dpdkstat plugin is running, then memory isn't resized.
Due to insufficient memory allocation dpdkstat plugin is unable to gather metrics
from new ports.
Steven Bell [Sun, 19 Feb 2017 05:56:27 +0000 (00:56 -0500)]
Implemented certificate checking conditionally if compiler finds upsclient library version >= 2.7. Otherwise will show warnings if this feature is used.
Maryam Tahhan [Tue, 14 Feb 2017 18:34:15 +0000 (18:34 +0000)]
dpdkstat: fix fixed shared mem object name
Fix the shared memory object name so that it's configurable. This way multiple
DPDK applications running in containers can be monitored at the same time
(assuming collectd is also running in that container).
Add a metric to report physical cpu consumed by the hypervisor,
split per user/system time. This is provided by libvirt since version
0.9.11, and used by oVirt.
We also extend the newly-added 'ExtraStats' option to allow
users to toggle on/off the new metric. Default is off.
Signed-off-by: Francesco Romani <fromani@redhat.com>
Francesco Romani [Mon, 13 Feb 2017 08:08:02 +0000 (09:08 +0100)]
virt plugin: Add option to disable extra stats
We are adding more metrics to the virt plugin, but not everyone
may be interested in those.
This patch add one more option to the virt plugin to enable
or disable the new stats.
For backward compatibility, the default is disabled.
Signed-off-by: Francesco Romani <fromani@redhat.com>
We want to export more disk stats, like disk_time.
To do so, we must use the virDomainBlockStatsFlags API, but it
could not be available on all the platforms collectd supports.
To cope with that, we add a minimal layer around the API, and
we use virDomainBlockStatsFlags only if available.
This patch adds the code to use the new API and the fallback code
in the case the platform' libvirt is too old.
Signed-off-by: Francesco Romani <fromani@redhat.com>
This patch fixes parsing of metrics' types. Some statistics, such as
rx_q0errors, rx_q0bytes or rx_q0packet, don't contain suffix _errors, _bytes or
_packets. This has caused them to use generic type 'derive', rather than
more specific one, for instance 'if_rx_errors'. Additionally, some
statistics contain string 'error', rather than 'errors'.
Maryam Tahhan [Wed, 8 Feb 2017 13:48:12 +0000 (13:48 +0000)]
intel_rdt: bugfix configuration
Fix the configuration to stop collectd bombing out and deal with configuration
errors gracefully. Otherwise collectd will fail at the configuration phase
with: "Error: Reading the config file failed!".
Pierre Mauduit [Mon, 30 Jan 2017 16:56:35 +0000 (17:56 +0100)]
Java bindings - Adding Atomic* support
AtomicIntegers are used to address some concurrency problems in Java, and this
is advised by some metrics libraries like Netflix's servo:
https://github.com/Netflix/servo/wiki#jmx
Unfortunately, the GenericJMXConfValue.java class is not able to get the values
from such types, hence this PR.
I scanned the Java doc for the Java package:
https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/package-summary.html
I think I have not forgotten any types.
Plugin for getting DPDK ports link status and keep alive events.
Dpdkevents plugin collects and reports following events from DPDK based
applications:
- link status of network ports bound with DPDK
- keep alive events related to DPDK logical cores
In order to get link status plugin forks child process that attaches itself to
DPDK application as secondary DPDK process and fetches link status data using
DPDK API. This is the same approach like for dpdkstat plugin, also the same
utils_dpdk.c helper is utilized.
For getting keep alive events plugin communicates with DPDK application
via shared memory area. This is possible only if keep alive feature
is implemented in monitored application.
More details can be found under link
http://dpdk.org/doc/guides/sample_app_ug/keep_alive.html
Minimal required version of DPDK is 16.07.
Change-Id: Id820407ea933b1ecc31a72b6e344a6ec186ec780 Signed-off-by: Krzysztof Matczak <krzysztofx.matczak@intel.com>
This patch fixes parsing of metrics' types. Some statistics, such as
rx_q0errors, rx_q0bytes or rx_q0packet, don't contain suffix _errors, _bytes or
_packets. This has caused them to use generic type 'derive', rather than
more specific one, for instance 'if_rx_errors'. Additionally, some
statistics contain string 'error', rather than 'errors'.
Avoid dispatching metrics if location (used as plugin instance) wasn't parsed
correctly. Such thing can occur when there are no machine check exceptions
reported by mcelog server. With csv plugin enabled, it was causing a creation of
unexpected mcelog directory with all files (metrics) filled out with 0's.
mcelog: Increase delay between socket reinitialization
Change delay between subsequent socket reinitialization attempts from 1000 usec
to 1000 ms. Such frequent attempts were affecting collectd functionality and
flooded the syslog. Issue can be eaisly reproduced by stopping mcelog service
while collectd with mcelog plugin enabled is running.
Piotr Popieluch [Sat, 14 Jan 2017 00:22:46 +0000 (01:22 +0100)]
link unixsock against libcmds
unixsock_la_LIBS is not being processed by automake and thus being
incorrectly linked. This results in an symbol error when loading
the module. Changing to unixsock_la_LIBADD fixes this.