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!".
If python pugin reads and writes collectd values, the write python
plugin callback may crash (90%) on free table var (line 478) if the
meta data structure is created but no information is present there.
It's possible to reproduce it due to changes introduced by #2135 PR.
cpy_write_callback():
...
425 if (value_list->meta) {
426 char **table;
427 meta_data_t *meta = value_list->meta;
428
429 int num = meta_data_toc(meta, &table);
430 for (int i = 0; i < num; ++i) {
...
477 }
478 free(table);
479 }
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>
ipmi: force domain to reread SELs when event is received on SMI.
System management interface (SMI) is listening for events from BMC
and processes them to user without delays. When SMI receives an event
force domain to reread SELs. It will cause event handlers for discrete
and threshold sensors to be called.
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.
Extended python Notification class to support metadata in the same
way as it is implemented in Values class. The Values metadata class
implementation has been used as a example/source.
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`.
The SNMP Agent plugin is an AgentX subagent that receives and handles
queries from SNMP master agent and returns the data collected by read
plugins. The SNMP Agent plugin handles requests only for OIDs specified
in configuration file. To handle SNMP queries the plugin gets data from
collectd and translates requested values from collectd's internal
format to SNMP format. This plugin is a generic plugin and cannot work
without configuration. For more details on AgentX subagent see
<http://www.net-snmp.org/tutorial/tutorial-5/toolkit/demon/>
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