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).
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'.
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.
Thomas Jost [Wed, 4 Jan 2017 12:27:57 +0000 (13:27 +0100)]
chrony: add missing build flag
The chrony plugin uses the `pow()` math function so it needs to be built with `-lm`. Otherwise collectd crashes with `symbol lookup error: /usr/lib/collectd/chrony.so: undefined symbol: pow`.
Adressed comments raised during PR review. Removed documentation
chapter related with static linking since it was outdated and
there's no single universal solution for all supported DPDK
releases. Static linking of external libraries into plugins
is not supported in collectd.
Change-Id: I35f7decb0fdacaaaad50fa2bf35f7ba6aa96c3f0 Signed-off-by: Krzysztof Matczak <krzysztofx.matczak@intel.com>
This patch contains rework of existing dpdkstat plugin. Changes are focused on
extracting common dpdk related features into utils file that could be reused by
other DPDK plugins. Also some related structural changes are introduced.
List of changes:
- introduction of new utils_dpdk.c that handles child process spawning,
and terminating, messaging between parent and child, DPDK configuration
and initialization and DPDK commands execution
- DPDK EAL specific options put into separate subsection of
dpdkstat configuration
- documentation update
Those changes are preparatory steps for upstreaming dpdkevent plugin
that is going to collect DPDK ports and logical cores status info.
Signed-off-by: Krzysztof Matczak <krzysztofx.matczak@intel.com>
If some of interface data is not available, the garbage
information may be returned by ovs_events_get_iface_info() function.
Add clean-up interface information structure into the function.
OVS events: Fix configure script to detect YAJL tree API
If old YAJL version is installed on a system (ver < 2.0), the OVS plugin
compilation will fail as it requires tree API to be supported in YAJL
library. For this reason, it was decided to change 'configure' script
to detect YAJL tree API also.
Clean-up according updated collectd style:
https://github.com/collectd/collectd/pull/1931
https://github.com/collectd/collectd/issues/1951
- Interface meta data are added to dispatched
values & notification.
interface metadata:
- UUID (always);
- iface-id (if exists)
- vm-uuid (if exists)
- Fix read callback to poll actual data instead of
reading cache;
- Code clean up;
OVS link plugin: Add connection terminate callback
Extend OVS utils to notify OVS plugin about OVS DB
connection lost. If the connection is lost, OVS link plugin
will dispatch notification and print error message. OVS plugin
treats status of all interfaces as UNKNOWN.
This plugin consists of two parts:
- OVS link
The implementation of the plugin itself, which uses
OVS utils API to be able to monitor a link status of
OVS connected interfaces and dispatch the values
through collectd notification mechanism whenever
the link state change occurs.
- OVS utils
This module implements the OVS DB communication routine
specified by RFC7047. It includes:
- Connecting/disconnecting to/from OVS DB (via TCP/UNIX);
- Mechanism to subscribe to OVS DB table events like
init/insert/modify/delete table rows;
- API to send custom request and receive result;
- Recovery connection mechanism with OVS DB;
- Handling of ECHO request to verify the liveness
of a database connection;
- Helpers functions.
Ruben Kerkhof [Mon, 5 Dec 2016 21:20:15 +0000 (22:20 +0100)]
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.