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.
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.
Francesco Romani [Mon, 12 Dec 2016 11:05:11 +0000 (12:05 +0100)]
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>
Francesco Romani [Mon, 12 Dec 2016 15:07:25 +0000 (16:07 +0100)]
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>
Francesco Romani [Mon, 12 Dec 2016 11:03:43 +0000 (12:03 +0100)]
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>
Ruben Kerkhof [Sun, 11 Dec 2016 15:15:01 +0000 (16:15 +0100)]
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.
Sebastian Harl [Sun, 11 Dec 2016 11:06:58 +0000 (12:06 +0100)]
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.