From: Ruben Kerkhof Date: Thu, 24 May 2018 09:06:55 +0000 (+0200) Subject: Merge pull request #2618 from ajssmith/amqp1_dev1_branch X-Git-Url: https://git.octo.it/?p=collectd.git;a=commitdiff_plain;h=d486225f89ea52d8ed2b4242eba2ad94c409f837;hp=-c Merge pull request #2618 from ajssmith/amqp1_dev1_branch Write amqp1 plugin --- d486225f89ea52d8ed2b4242eba2ad94c409f837 diff --combined Makefile.am index 98b71ab4,95a0369f..c345904d --- a/Makefile.am +++ b/Makefile.am @@@ -61,7 -61,6 +61,7 @@@ EXTRA_DIST = src/types.db \ src/types.db.pod \ src/valgrind.FreeBSD.suppress \ + src/valgrind.suppress \ testwrapper.sh \ version-gen.sh @@@ -142,8 -141,7 +142,8 @@@ check_PROGRAMS = test_utils_subst \ test_utils_time \ test_utils_vl_lookup \ - test_libcollectd_network_parse + test_libcollectd_network_parse \ + test_utils_config_cores TESTS = $(check_PROGRAMS) @@@ -328,11 -326,6 +328,11 @@@ test_utils_subst_SOURCES = src/daemon/utils_subst.h test_utils_subst_LDADD = libplugin_mock.la +test_utils_config_cores_SOURCES = \ + src/utils_config_cores_test.c \ + src/testing.h +test_utils_config_cores_LDADD = libplugin_mock.la + libavltree_la_SOURCES = \ src/daemon/utils_avltree.c \ src/daemon/utils_avltree.h @@@ -490,8 -483,7 +490,8 @@@ libcollectdclient_la_SOURCES = src/libcollectdclient/network.c \ src/libcollectdclient/network_buffer.c \ src/libcollectdclient/network_parse.c \ - src/libcollectdclient/server.c + src/libcollectdclient/server.c \ + src/libcollectdclient/collectd/stdendian.h libcollectdclient_la_CPPFLAGS = \ $(AM_CPPFLAGS) \ -I$(srcdir)/src/libcollectdclient \ @@@ -550,6 -542,20 +550,20 @@@ amqp_la_LIBADD = libformat_json.la endif + if BUILD_PLUGIN_AMQP1 + pkglib_LTLIBRARIES += amqp1.la + amqp1_la_SOURCES = \ + src/amqp1.c \ + src/utils_deq.h + amqp1_la_CPPFLAGS = $(AM_CPPFLAGS) $(BUILD_WITH_LIBQPIDPROTON_CPPFLAGS) + amqp1_la_LDFLAGS = $(PLUGIN_LDFLAGS) $(BUILD_WITH_LIBQPIDPROTON_LDFLAGS) + amqp1_la_LIBADD = \ + $(BUILD_WITH_LIBQPIDPROTON_LIBS) \ + libcmds.la \ + libformat_graphite.la \ + libformat_json.la + endif + if BUILD_PLUGIN_APACHE pkglib_LTLIBRARIES += apache.la apache_la_SOURCES = src/apache.c @@@ -600,7 -606,7 +614,7 @@@ if BUILD_PLUGIN_BAROMETE pkglib_LTLIBRARIES += barometer.la barometer_la_SOURCES = src/barometer.c barometer_la_LDFLAGS = $(PLUGIN_LDFLAGS) -barometer_la_LIBADD = -lm +barometer_la_LIBADD = -lm $(BUILD_WITH_LIBI2C_LIBS) endif if BUILD_PLUGIN_BATTERY @@@ -921,10 -927,7 +935,10 @@@ endi if BUILD_PLUGIN_INTEL_PMU pkglib_LTLIBRARIES += intel_pmu.la -intel_pmu_la_SOURCES = src/intel_pmu.c +intel_pmu_la_SOURCES = \ + src/intel_pmu.c \ + src/utils_config_cores.h \ + src/utils_config_cores.c intel_pmu_la_CPPFLAGS = $(AM_CPPFLAGS) $(BUILD_WITH_LIBJEVENTS_CPPFLAGS) intel_pmu_la_LDFLAGS = $(PLUGIN_LDFLAGS) $(BUILD_WITH_LIBJEVENTS_LDFLAGS) intel_pmu_la_LIBADD = $(BUILD_WITH_LIBJEVENTS_LIBS) @@@ -932,10 -935,7 +946,10 @@@ endi if BUILD_PLUGIN_INTEL_RDT pkglib_LTLIBRARIES += intel_rdt.la -intel_rdt_la_SOURCES = src/intel_rdt.c +intel_rdt_la_SOURCES = \ + src/intel_rdt.c \ + src/utils_config_cores.h \ + src/utils_config_cores.c intel_rdt_la_CFLAGS = $(AM_CFLAGS) $(BUILD_WITH_LIBPQOS_CPPFLAGS) intel_rdt_la_LDFLAGS = $(PLUGIN_LDFLAGS) $(BUILD_WITH_LIBPQOS_LDFLAGS) intel_rdt_la_LIBADD = $(BUILD_WITH_LIBPQOS_LIBS) @@@ -1772,15 -1772,18 +1786,15 @@@ virt_la_CFLAGS = $(AM_CFLAGS) virt_la_LDFLAGS = $(PLUGIN_LDFLAGS) virt_la_LIBADD = libignorelist.la $(BUILD_WITH_LIBVIRT_LIBS) $(BUILD_WITH_LIBXML2_LIBS) -# TODO: enable once we support only modern libvirts which depends on libnl-3 -# the libvirt on wheezy is linked in libnl v1, and there is a small leak here, -# triggered by the library initialization. There are no means to avoid it, -# and libvirt switched to libnl3 anyway -#test_plugin_virt_SOURCES = src/virt_test.c -#test_plugin_virt_CPPFLAGS = $(AM_CPPFLAGS) \ -# $(BUILD_WITH_LIBVIRT_CFLAGS) $(BUILD_WITH_LIBXML2_CFLAGS) -#test_plugin_virt_LDFLAGS = $(PLUGIN_LDFLAGS) -#test_plugin_virt_LDADD = libplugin_mock.la \ -# $(BUILD_WITH_LIBVIRT_LIBS) $(BUILD_WITH_LIBXML2_LIBS) -#check_PROGRAMS += test_plugin_virt -#TESTS += test_plugin_virt +test_plugin_virt_SOURCES = src/virt_test.c +test_plugin_virt_CPPFLAGS = $(AM_CPPFLAGS) \ + $(BUILD_WITH_LIBVIRT_CPPFLAGS) $(BUILD_WITH_LIBXML2_CFLAGS) +test_plugin_virt_LDFLAGS = $(PLUGIN_LDFLAGS) \ + $(BUILD_WITH_LIBVIRT_LDFLAGS) $(BUILD_WITH_LIBXML2_LDFLAGS) +test_plugin_virt_LDADD = libplugin_mock.la \ + $(BUILD_WITH_LIBVIRT_LIBS) $(BUILD_WITH_LIBXML2_LIBS) +check_PROGRAMS += test_plugin_virt +TESTS += test_plugin_virt endif if BUILD_PLUGIN_VMEM diff --combined README index 43df03b8,0f378e56..2210b2b9 --- a/README +++ b/README @@@ -100,9 -100,6 +100,9 @@@ Feature Collect DPDK interface statistics. See docs/BUILD.dpdkstat.md for detailed build instructions. + This plugin should be compiled with compiler defenses enabled, for + example -fstack-protector. + - drbd Collect individual drbd resource statistics. @@@ -143,9 -140,6 +143,9 @@@ hugepages can be found here: https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt. + This plugin should be compiled with compiler defenses enabled, for + example -fstack-protector. + - intel_pmu The intel_pmu plugin reads performance counters provided by the Linux kernel perf interface. The plugin uses jevents library to resolve named @@@ -465,7 -459,11 +465,11 @@@ - amqp Sends JSON-encoded data to an Advanced Message Queuing Protocol (AMQP) - server, such as RabbitMQ. + 0.9.1 server, such as RabbitMQ. + + - amqp1 + Sends JSON-encoded data to an Advanced Message Queuing Protocol (AMQP) + 1.0 server, such as Qpid Dispatch Router or Apache Artemis Broker. - csv Write to comma separated values (CSV) files. This needs lots of @@@ -908,8 -906,14 +912,14 @@@ Prerequisite are supported. + * libqpid-proton (optional) + Used by the `amqp1' plugin for AMQP 1.0 connections, for example to + Qdrouterd. + + * librabbitmq (optional; also called “rabbitmq-c”) - Used by the `amqp' plugin for AMQP connections, for example to RabbitMQ. + Used by the `amqp' plugin for AMQP 0.9.1 connections, for example to + RabbitMQ. * librdkafka (optional; also called “rdkafka”) @@@ -987,8 -991,9 +997,8 @@@ Configuring / Compiling / Installin ------------------------------------ To configure, build and install collectd with the default settings, run - `./configure && make && make install'. For detailed, generic instructions - see INSTALL. For a complete list of configure options and their description, - run `./configure --help'. + `./configure && make && make install'. For a complete list of configure + options and their description, run `./configure --help'. By default, the configure script will check for all build dependencies and disable all plugins whose requirements cannot be fulfilled (any other plugin diff --combined configure.ac index 4be85bbf,b9ef9611..1e31e218 --- a/configure.ac +++ b/configure.ac @@@ -766,7 -766,10 +766,7 @@@ AC_CHECK_FUNCS_ONCE([ AC_FUNC_STRERROR_R SAVE_CFLAGS="$CFLAGS" -# Emulate behavior of src/Makefile.am -if test "x$GCC" = "xyes"; then - CFLAGS="$CFLAGS -Wall -Werror" -fi +CFLAGS="-Wall -Werror" AC_CACHE_CHECK([for strtok_r], [c_cv_have_strtok_r_default], @@@ -1564,7 -1567,7 +1564,7 @@@ if test "x$have_getmntent" = "xlibc"; t struct mntent *me; fh = setmntent ("/etc/mtab", "r"); me = getmntent (fh); - return(me->mnt_passno); + return me->mnt_passno; ]] ) ], @@@ -1587,7 -1590,7 +1587,7 @@@ int status; fh = fopen ("/etc/mnttab", "r"); status = getmntent (fh, &mt); - return(status); + return status; ]] ) ], @@@ -1875,23 -1878,14 +1875,23 @@@ f # libi2c-dev if test "x$ac_system" = "xLinux"; then + with_libi2c_libs="" + AC_CHECK_HEADERS([i2c/smbus.h], + [with_libi2c_libs="-li2c"] + ) AC_CHECK_DECL([i2c_smbus_read_i2c_block_data], [with_libi2c="yes"], [with_libi2c="no (symbol i2c_smbus_read_i2c_block_data not found - have you installed libi2c-dev ?)"], [[ #include #include + #if HAVE_I2C_SMBUS_H + # include + #endif ]] ) + BUILD_WITH_LIBI2C_LIBS="$with_libi2c_libs" + AC_SUBST([BUILD_WITH_LIBI2C_LIBS]) else with_libi2c="no (Linux only)" fi @@@ -3055,33 -3049,18 +3055,33 @@@ els PKG_CHECK_MODULES([LUA], [lua5.3], [with_liblua="yes"], [ - PKG_CHECK_MODULES([LUA], [lua-5.2], + PKG_CHECK_MODULES([LUA], [lua53], [with_liblua="yes"], [ - PKG_CHECK_MODULES([LUA], [lua5.2], + PKG_CHECK_MODULES([LUA], [lua-5.2], [with_liblua="yes"], [ - PKG_CHECK_MODULES([LUA], [lua-5.1], + PKG_CHECK_MODULES([LUA], [lua5.2], [with_liblua="yes"], [ - PKG_CHECK_MODULES([LUA], [lua5.1], + PKG_CHECK_MODULES([LUA], [lua52], [with_liblua="yes"], - [with_liblua="no (pkg-config cannot find liblua)"] + [ + PKG_CHECK_MODULES([LUA], [lua-5.1], + [with_liblua="yes"], + [ + PKG_CHECK_MODULES([LUA], [lua5.1], + [with_liblua="yes"], + [ + PKG_CHECK_MODULES([LUA], [lua51], + [with_liblua="yes"], + [with_liblua="no (pkg-config cannot find liblua)"] + ) + ] + ) + ] + ) + ] ) ] ) @@@ -3681,18 -3660,6 +3681,18 @@@ if test "x$with_libmnl" = "xyes"; the [[#include ]] ) + AC_CHECK_MEMBERS([struct rtnl_link_stats.rx_nohandler], + [], + [], + [[#include ]] + ) + + AC_CHECK_MEMBERS([struct rtnl_link_stats64.rx_nohandler], + [], + [], + [[#include ]] + ) + AC_CHECK_LIB([mnl], [mnl_nlmsg_get_payload], [with_libmnl="yes"], [with_libmnl="no (symbol 'mnl_nlmsg_get_payload' not found)"], @@@ -4114,7 -4081,7 +4114,7 @@@ if test "x$with_libpcap" = "xyes"; the [[#include ]], [[ int val = PCAP_ERROR_IFACE_NOT_UP; - return(val); + return val; ]] ) ], @@@ -4719,6 -4686,56 +4719,56 @@@ if test "$with_libpython" != "xno"; the fi # }}} --with-libpython + # --with-libqpid_proton {{{ + AC_ARG_WITH([libqpid_proton], + [AS_HELP_STRING([--with-libqpid_proton@<:@=PREFIX@:>@], [Path to libqpid_proton.])], + [ + if test "x$withval" != "xno" && test "x$withval" != "xyes"; then + with_libqpid_proton_cppflags="-I$withval/include" + with_libqpid_proton_ldflags="-L$withval/lib" + with_libqpid_proton="yes" + else + with_libqpid_proton="$withval" + fi + ], + [with_libqpid_proton="yes"] + ) + + if test "x$with_libqpid_proton" = "xyes"; then + SAVE_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $with_libqpid_proton_cppflags" + + AC_CHECK_HEADERS([proton/proactor.h], + [with_libqpid_proton="yes"], + [with_libqpid_proton="no (proton/proactor.h not found)"] + ) + + CPPFLAGS="$SAVE_CPPFLAGS" + fi + + if test "x$with_libqpid_proton" = "xyes"; then + SAVE_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $with_libqpid_proton_ldflags" + + AC_CHECK_LIB([qpid-proton], [pn_connection], + [with_libqpid_proton="yes"], + [with_libqpid_proton="no (Symbol 'pn_connection' not found)"]) + + LDFLAGS="$SAVE_LDFLAGS" + fi + + if test "x$with_libqpid_proton" = "xyes"; then + BUILD_WITH_LIBQPIDPROTON_CPPFLAGS="$with_libqpid_proton_cppflags" + BUILD_WITH_LIBQPIDPROTON_LDFLAGS="$with_libqpid_proton_ldflags" + BUILD_WITH_LIBQPIDPROTON_LIBS="-lqpid-proton" + fi + + AC_SUBST(BUILD_WITH_LIBQPIDPROTON_CPPFLAGS) + AC_SUBST(BUILD_WITH_LIBQPIDPROTON_LDFLAGS) + AC_SUBST(BUILD_WITH_LIBQPIDPROTON_LIBS) + + # }}} + # --with-librabbitmq {{{ AC_ARG_WITH([librabbitmq], [AS_HELP_STRING([--with-librabbitmq@<:@=PREFIX@:>@], [Path to librabbitmq.])], @@@ -6544,6 -6561,7 +6594,7 @@@ m4_divert_once([HELP_ENABLE], [] AC_PLUGIN([aggregation], [yes], [Aggregation plugin]) AC_PLUGIN([amqp], [$with_librabbitmq], [AMQP output plugin]) + AC_PLUGIN([amqp1], [$with_libqpid_proton], [AMQP 1.0 output plugin]) AC_PLUGIN([apache], [$with_libcurl], [Apache httpd statistics]) AC_PLUGIN([apcups], [yes], [Statistics of UPSes by APC]) AC_PLUGIN([apple_sensors], [$with_libiokit], [Apple hardware sensors]) @@@ -6932,6 -6950,7 +6983,7 @@@ AC_MSG_RESULT([ libpqos . . . . . . AC_MSG_RESULT([ libprotobuf . . . . . $with_libprotobuf]) AC_MSG_RESULT([ libprotobuf-c . . . . $with_libprotobuf_c]) AC_MSG_RESULT([ libpython . . . . . . $with_libpython]) + AC_MSG_RESULT([ libqpid-proton . . . $with_libqpid_proton]) AC_MSG_RESULT([ librabbitmq . . . . . $with_librabbitmq]) AC_MSG_RESULT([ libriemann-client . . $with_libriemann_client]) AC_MSG_RESULT([ librdkafka . . . . . $with_librdkafka]) @@@ -6963,6 -6982,7 +7015,7 @@@ AC_MSG_RESULT( AC_MSG_RESULT([ Modules:]) AC_MSG_RESULT([ aggregation . . . . . $enable_aggregation]) AC_MSG_RESULT([ amqp . . . . . . . $enable_amqp]) + AC_MSG_RESULT([ amqp1 . . . . . . . $enable_amqp1]) AC_MSG_RESULT([ apache . . . . . . . $enable_apache]) AC_MSG_RESULT([ apcups . . . . . . . $enable_apcups]) AC_MSG_RESULT([ apple_sensors . . . . $enable_apple_sensors]) diff --combined contrib/redhat/collectd.spec index 752b0246,6fc8e515..6f86b7e8 --- a/contrib/redhat/collectd.spec +++ b/contrib/redhat/collectd.spec @@@ -38,12 -38,10 +38,13 @@@ %global _hardened_build 1 %{?perl_default_filter} +# disable collectd debug by default +%bcond_with debug + # plugins enabled by default %define with_aggregation 0%{!?_without_aggregation:1} %define with_amqp 0%{!?_without_amqp:1} + %define with_amqp1 0%{!?_without_amqp1:1} %define with_apache 0%{!?_without_apache:1} %define with_apcups 0%{!?_without_apcups:1} %define with_ascent 0%{!?_without_ascent:1} @@@ -251,7 -249,7 +252,7 @@@ Summary: Statistics collection and monitoring daemon Name: collectd Version: 5.7.1 -Release: 8%{?dist} +Release: 9%{?dist} URL: https://collectd.org Source: https://collectd.org/files/%{name}-%{version}.tar.bz2 License: GPLv2 @@@ -280,13 -278,24 +281,24 @@@ every 10 seconds by default %if %{with_amqp} %package amqp - Summary: AMQP plugin for collectd + Summary: AMQP 0.9 plugin for collectd Group: System Environment/Daemons Requires: %{name}%{?_isa} = %{version}-%{release} BuildRequires: librabbitmq-devel %description amqp - The AMQP plugin transmits or receives values collected by collectd via the - Advanced Message Queuing Protocol (AMQP). + The AMQP 0.9 plugin transmits or receives values collected by collectd via the + Advanced Message Queuing Protocol v0.9 (AMQP). + %endif + + %if %{with_amqp1} + %package amqp1 + Summary: AMQP 1.0 plugin for collectd + Group: System Environment/Daemons + Requires: %{name}%{?_isa} = %{version}-%{release} + BuildRequires: qpid-proton-c-devel + %description amqp1 + The AMQP 1.0 plugin transmits or receives values collected by collectd via the + Advanced Message Queuing Protocol v1.0 (AMQP1). %endif %if %{with_apache} @@@ -1018,6 -1027,12 +1030,12 @@@ Collectd utilitie %define _with_amqp --disable-amqp %endif + %if %{with_amqp1} + %define _with_amqp1 --enable-amqp1 + %else + %define _with_amqp1 --disable-amqp1 + %endif + %if %{with_apache} %define _with_apache --enable-apache %else @@@ -1363,7 -1378,7 +1381,7 @@@ %if %{with_mcelog} %define _with_mcelog --enable-mcelog %else -%define _with_mbmon --disable-mcelog +%define _with_mcelog --disable-mcelog %endif %if %{with_md} @@@ -1875,15 -1890,8 +1893,15 @@@ %define _with_zookeeper --disable-zookeeper %endif +%if %{with debug} +%define _feature_debug --enable-debug +%else +%define _feature_debug --disable-debug +%endif + %configure CFLAGS="%{optflags} -DLT_LAZY_OR_NOW=\"RTLD_LAZY|RTLD_GLOBAL\"" \ %{?_python_config} \ + %{?_feature_debug} \ --disable-static \ --enable-all-plugins=yes \ --enable-match_empty_counter \ @@@ -1898,6 -1906,7 +1916,7 @@@ --enable-target_v5upgrade \ %{?_with_aggregation} \ %{?_with_amqp} \ + %{?_with_amqp1} \ %{?_with_apache} \ %{?_with_apcups} \ %{?_with_apple_sensors} \ @@@ -2409,6 -2418,11 +2428,11 @@@ f %{_libdir}/%{name}/amqp.so %endif + %if %{with_amqp1} + %files amqp1 + %{_libdir}/%{name}/amqp1.so + %endif + %if %{with_apache} %files apache %{_libdir}/%{name}/apache.so @@@ -2747,9 -2761,6 +2771,9 @@@ %doc contrib/ %changelog +* Thu Sep 28 2017 Jakub Jankowski - 5.7.1-9 +- Fix mbmon/mcelog build options + * Thu Sep 28 2017 xakru - 5.7.1-8 - Add new libcollectdclient/network_parse - Add new libcollectdclient/server diff --combined src/collectd.conf.in index 96c26303,4d8403a0..30791bd6 --- a/src/collectd.conf.in +++ b/src/collectd.conf.in @@@ -90,6 -90,7 +90,7 @@@ #@BUILD_PLUGIN_AGGREGATION_TRUE@LoadPlugin aggregation #@BUILD_PLUGIN_AMQP_TRUE@LoadPlugin amqp + #@BUILD_PLUGIN_AMQP1_TRUE@LoadPlugin amqp1 #@BUILD_PLUGIN_APACHE_TRUE@LoadPlugin apache #@BUILD_PLUGIN_APCUPS_TRUE@LoadPlugin apcups #@BUILD_PLUGIN_APPLE_SENSORS_TRUE@LoadPlugin apple_sensors @@@ -269,6 -270,29 +270,29 @@@ # # + # + # + # Host "localhost" + # Port "5672" + # User "guest" + # Password "guest" + # Address "collectd" + # RetryDelay 1 + # + # Format JSON + # PreSettle false + # + # + # Format JSON + # PreSettle true + # + # + # Format JSON + # PreSettle false + # + # + # + # # # URL "http://localhost/status?auto" @@@ -666,7 -690,6 +690,7 @@@ # ReportSoftwareEvents true # EventList "/var/cache/pmu/GenuineIntel-6-2D-core.json" # HardwareEvents "L2_RQSTS.CODE_RD_HIT,L2_RQSTS.CODE_RD_MISS" "L2_RQSTS.ALL_CODE_RD" +# Cores "[0-3]" # # @@@ -1127,7 -1150,6 +1151,7 @@@ # Timeout 0.9 # TTL 255 # SourceAddress "1.2.3.4" +# AddressFamily "any" # Device "eth0" # MaxMissed -1 # @@@ -1609,7 -1631,6 +1633,7 @@@ # PluginInstanceFormat name # Instances 1 # ExtraStats "cpu_util disk disk_err domain_state fs_info job_stats_background pcpu perf vcpupin" +# PersistentNotification false # # diff --combined src/collectd.conf.pod index 17bc680f,f0f51da7..f2bffa60 --- a/src/collectd.conf.pod +++ b/src/collectd.conf.pod @@@ -530,9 -530,9 +530,9 @@@ are disabled by default =head2 Plugin C The I can be used to communicate with other instances of - I or third party applications using an AMQP message broker. Values - are sent to or received from the broker, which handles routing, queueing and - possibly filtering out messages. + I or third party applications using an AMQP 0.9.1 message broker. + Values are sent to or received from the broker, which handles routing, + queueing and possibly filtering out messages. B @@@ -729,6 -729,171 +729,171 @@@ instance) are put into one component, f If set to B, append the name of the I (DS) to the "metric" identifier. If set to B (the default), this is only done when there is more than one DS. + + =item B B|B + + If set to B (the default) the C<.> (dot) character is replaced with + I. Otherwise, if set to B, the C<.> (dot) character + is preserved, i.e. passed through. + + =back + + =head2 Plugin C + + The I can be used to communicate with other instances of + I or third party applications using an AMQP 1.0 message + intermediary. Metric values or notifications are sent to the + messaging intermediary which may handle direct messaging or + queue based transfer. + + B + + + # Send values to an AMQP 1.0 intermediary + + Host "localhost" + Port "5672" + User "guest" + Password "guest" + Address "collectd" + # RetryDelay 1 + + Format "command" + PreSettle false + Notify false + # StoreRates false + # GraphitePrefix "collectd." + # GraphiteEscapeChar "_" + # GraphiteSeparateInstances false + # GraphiteAlwaysAppendDS false + # GraphitePreserveSeparator false + + + + + The plugin's configuration consists of a I that configures + communications to the AMQP 1.0 messaging bus and one or more I + corresponding to metric or event publishers to the messaging system. + + The address in the I block concatenated with the name given in the + I block starting tag will be used as the send-to address for + communications over the messaging link. + + The following options are accepted within each I block: + + =over 4 + + =item B I + + Hostname or IP-address of the AMQP 1.0 intermediary. Defaults to the + default behavior of the underlying communications library, + I, which is "localhost". + + =item B I + + Service name or port number on which the AMQP 1.0 intermediary accepts + connections. This argument must be a string, even if the numeric form + is used. Defaults to "5672". + + =item B I + + =item B I + + Credentials used to authenticate to the AMQP 1.0 intermediary. By + default "guest"/"guest" is used. + + =item B
I
+ + This option specifies the prefix for the send-to value in the message. + By default, "collectd" will be used. + + =item B I + + When the AMQP1 connection is lost, defines the time in seconds to wait + before attempting to reconnect. Defaults to 1, which implies attempt + to reconnect at 1 second intervals. + + =back + + The following options are accepted within each I block: + + =over 4 + + =item B B|B|B + + Selects the format in which messages are sent to the intermediary. If set to + B (the default), values are sent as C commands which are + identical to the syntax used by the I and I. In this + case, the C header field will be set to C. + + If set to B, the values are encoded in the I, + an easy and straight forward exchange format. The C header field + will be set to C. + + If set to B, values are encoded in the I format, which is + " \n". The C header field will be set to + C. + + A subscribing client I use the C header field to + determine how to decode the values. + + =item B B|B + + If set to B (the default), the plugin will wait for a message + acknowledgement from the messaging bus before sending the next + message. This indicates transfer of ownership to the messaging + system. If set to B, the plugin will not wait for a message + acknowledgement and the message may be dropped prior to transfer of + ownership. + + =item B B|B + + If set to B (the default), the plugin will service the + instance write call back as a value list. If set to B the + plugin will service the instance as a write notification callback + for alert formatting. + + =item B B|B + + Determines whether or not C, C and C data sources + are converted to a I (i.e. a C value). If set to B (the + default), no conversion is performed. Otherwise the conversion is performed + using the internal value cache. + + Please note that currently this option is only used if the B option has + been set to B. + + =item B + + A prefix can be added in the metric name when outputting in the I format. + It's added before the I name. + Metric name will be "" + + =item B + + A postfix can be added in the metric name when outputting in the I format. + It's added after the I name. + Metric name will be "" + + =item B + + Specify a character to replace dots (.) in the host part of the metric name. + In I metric name, dots are used as separators between different + metric parts (host, plugin, type). + Default is "_" (I). + + =item B B|B + + If set to B, the plugin instance and type instance will be in their own + path component, for example C. If set to B (the + default), the plugin and plugin instance (and likewise the type and type + instance) are put into one component, for example C. + + =item B B|B + + If set to B, append the name of the I (DS) to the "metric" + identifier. If set to B (the default), this is only done when there is + more than one DS. =item B B|B @@@ -3182,7 -3347,6 +3347,7 @@@ B B @@@ -3254,23 -3418,6 +3419,23 @@@ event_download.py script to download ev This field is a list of event names or groups of comma separated event names. This option requires B option to be configured. +=item B I + +All events are reported on a per core basis. Monitoring of the events can be +configured for a group of cores (aggregated statistics). This field defines +groups of cores on which to monitor supported events. The field is represented +as list of strings with core group values. Each string represents a list of +cores in a group. If a group is enclosed in square brackets each core is added +individually to a separate group (that is statistics are not aggregated). +Allowed formats are: + 0,1,2,3 + 0-10,20-18 + 1,3,5-8,10,0x10-12 + [4-15,32-63] + +If an empty string is provided as value for this field default cores +configuration is applied - that is separate group is created for each core. + =back =head2 Plugin C @@@ -4146,19 -4293,11 +4311,19 @@@ Configures the base register to read fr B has been set to B or B, this and the next register will be read (the register number is increased by one). -=item B B|B|B|B|B +=item B B|B|B|B|B|B|B|B -Specifies what kind of data is returned by the device. If the type is B, -B or B, two 16Ebit registers will be read and the data is -combined into one value. Defaults to B. +Specifies what kind of data is returned by the device. This defaults to +B. If the type is B, B, B, B, +B or B, two 16Ebit registers at B +and B will be read and the data is combined into one +32Evalue. For B, B and B the most significant +16Ebits are in the register at B and the least +significant 16Ebits are in the register at B. +For B, B, or B, the high and low order +registers are swapped with the most significant 16Ebits in +the B and the least significant 16Ebits in +B. =item B B|B @@@ -6203,11 -6342,6 +6368,11 @@@ long string is used so that the packet Sets the source address to use. I may either be a numerical network address or a network hostname. +=item B I + +Sets the address family to use. I may be "any", "ipv4" or "ipv6". This +option will be ignored if you set a B. + =item B I Sets the outgoing network device to be used. I has to specify an @@@ -6898,8 -7032,8 +7063,8 @@@ B CollectFileDescriptor false - CollectContextSwitch true - + CollectContextSwitch true + =over 4 @@@ -8941,12 -9075,6 +9106,12 @@@ B: I metrics can't be colle =back +=item B B|B +Override default configuration to only send notifications when there is a change +in the lifecycle state of a domain. When set to true notifications will be sent +for every read cycle. Default is false. Does not affect the stats being +dispatched. + =back =head2 Plugin C