dpdkstat: bugfix enable_port_count
Signed-off-by: Maryam Tahhan <maryam.tahhan@intel.com>
Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Signed-off-by: Maryam Tahhan <maryam.tahhan@intel.com>
Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
dpdkstat: fix configuration without DPDK
Modify the configuration in the situation where DPDK is not selected as
an option.
Signed-off-by: Maryam Tahhan <maryam.tahhan@intel.com>
Modify the configuration in the situation where DPDK is not selected as
an option.
Signed-off-by: Maryam Tahhan <maryam.tahhan@intel.com>
dpdkstat: enable a plugin for DPDK stats
This patch enables support to retrieve statistics for DPDK
interfaces. An overview of the threading is as follows:
1. collectd init() or read() calls dpdk_helper_spawn() to retrieve
the required size of xstats to allocate.
1.1. DPDK counts ports, stats and length, writing them to
shared-memory (SHM).
1.2. DPDK helper (secondary) process quits, allowing cleanup of
the shared memory.
2. collectd resizes shared-memory to size of stats as provided by
DPDK.
3. collectd respawns the DPDK helper.
3.1. Helper blocks on a semaphore until told to read the stats
from DPDK and write them to SHM.
4. collectd dispatches statistics
4.1. Thread blocks on semaphore until stats are available.
This threading model is required to allow the plugin to detect when
the DPDK primary process/application has been killed/reset, and to avoid
the plugin from stopping another DPDK primary process from starting.
Some extra housekeeping is in place to ensure collectd is never
stalled by using sem_timedwait() with a timeout. If collectd dies, the
helper process will automatically quit after a timeout, as it detects
its ppid has changed.
Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Signed-off-by: Maryam Tahhan <maryam.tahhan@intel.com>
This patch enables support to retrieve statistics for DPDK
interfaces. An overview of the threading is as follows:
1. collectd init() or read() calls dpdk_helper_spawn() to retrieve
the required size of xstats to allocate.
1.1. DPDK counts ports, stats and length, writing them to
shared-memory (SHM).
1.2. DPDK helper (secondary) process quits, allowing cleanup of
the shared memory.
2. collectd resizes shared-memory to size of stats as provided by
DPDK.
3. collectd respawns the DPDK helper.
3.1. Helper blocks on a semaphore until told to read the stats
from DPDK and write them to SHM.
4. collectd dispatches statistics
4.1. Thread blocks on semaphore until stats are available.
This threading model is required to allow the plugin to detect when
the DPDK primary process/application has been killed/reset, and to avoid
the plugin from stopping another DPDK primary process from starting.
Some extra housekeeping is in place to ensure collectd is never
stalled by using sem_timedwait() with a timeout. If collectd dies, the
helper process will automatically quit after a timeout, as it detects
its ppid has changed.
Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
Signed-off-by: Maryam Tahhan <maryam.tahhan@intel.com>
Merge remote-tracking branch 'github/pr/1814'
empty_counter match: Code cleanup.
empty_counter match: Add support for the DERIVE data source type.
Fixes: #1813
Fixes: #1813
varnish plugin: Add informative warnings to the config handling.
Not all config options are valid for all versions of Varnish. Rather
than removing the if-clause altogether, which results in a "Ignoring
unknown configuration option" warning, print a user-friendly warning
instead.
Fixes: #1790
Not all config options are valid for all versions of Varnish. Rather
than removing the if-clause altogether, which results in a "Ignoring
unknown configuration option" warning, print a user-friendly warning
instead.
Fixes: #1790
Merge pull request #1806 from rubenk/network-plugin-size_t
network plugin: use size_t for length and offsets
network plugin: use size_t for length and offsets
write_http: fix warning in new kairos support
Found by LLVM:
comparison of integers of different signs: 'int' and 'const size_t' (aka 'const unsigned long')
Found by LLVM:
comparison of integers of different signs: 'int' and 'const size_t' (aka 'const unsigned long')
write_http: remove superfluous braces
Merge pull request #1809 from beorn-/write_http_kairosdb_format_master
Add KAIROSDB format to write_http plugin
Add KAIROSDB format to write_http plugin
Add KAIROSDB format to write_http plugin
Merge branch 'collectd-5.5'
Merge branch 'collectd-5.4' into collectd-5.5
Conflicts:
ChangeLog
contrib/redhat/collectd.spec
version-gen.sh
Conflicts:
ChangeLog
contrib/redhat/collectd.spec
version-gen.sh
Merge pull request #1804 from rubenk/madwifi-fix-buffer-overflow
madwifi plugin: fix buffer overflows
madwifi plugin: fix buffer overflows
metadata: add comment about metadata functions use and threads safety
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
Bump spec file to 5.4.3
Update spec file to 5.5.2
Merge pull request #1807 from matteocontrini/master
Added 'operations_per_second' (redis) type
Added 'operations_per_second' (redis) type
Bump version to 5.4.3; Update ChangeLog.
network plugin: Fix error message for GCRYCTL_INIT_SECMEM failure.
Merge branch 'collectd-5.5'
ChangeLog: Add note about #1665.
Added 'operations_per_second' (redis) type
Bump version to 5.5.2; Update ChangeLog.
Merge branch 'collectd-5.4' into collectd-5.5
network plugin, libcollectdclient: Check return value of gcry_control().
Fixes: #1665
Fixes: #1665
libcollectdclient: fix compiler warning on Solaris
CC libcollectdclient_la-client.lo
"client.c", line 1104: argument #4 is incompatible with prototype:
prototype: pointer to function(pointer to const void, pointer to const void) returning int : "/usr/include/iso/stdlib_iso.h", line 134
argument : pointer to void
CC libcollectdclient_la-client.lo
"client.c", line 1104: argument #4 is incompatible with prototype:
prototype: pointer to function(pointer to const void, pointer to const void) returning int : "/usr/include/iso/stdlib_iso.h", line 134
argument : pointer to void
utils_cache_mock: fix annotations
It's __attribute__, not __attribute
Found with Solaris lint.
It's __attribute__, not __attribute
Found with Solaris lint.
configure.ac: fix empty else on RHEL5
Ancient autoconf versions don't like empty
strings in m4 arguments.
Ancient autoconf versions don't like empty
strings in m4 arguments.
Fix build when hal is not installed
treewide: fix invocation of c_avl_create
Fixes the following warning on Solaris:
|c_avl_tree_t *c_avl_create (int (*compare) (const void *, const
void *));
| ^ line 54, utils_avltree.h
| included in line 34, utils_vl_lookup.c
|
| obj->by_type_tree = c_avl_create ((void *) strcmp);
| ^ line 567,
utils_vl_lookup.c
E_ARG_INCOMPATIBLE_WITH_ARG_L, argument #1 is incompatible with
prototype:
prototype: pointer to function(pointer to const void, pointer to
const void) returning int : "src/daemon/utils_avltree.h", line 54
argument : pointer to void
I'll look into writing a generic function to compare avl keys so
we don't need to do all the casting.
Fixes the following warning on Solaris:
|c_avl_tree_t *c_avl_create (int (*compare) (const void *, const
void *));
| ^ line 54, utils_avltree.h
| included in line 34, utils_vl_lookup.c
|
| obj->by_type_tree = c_avl_create ((void *) strcmp);
| ^ line 567,
utils_vl_lookup.c
E_ARG_INCOMPATIBLE_WITH_ARG_L, argument #1 is incompatible with
prototype:
prototype: pointer to function(pointer to const void, pointer to
const void) returning int : "src/daemon/utils_avltree.h", line 54
argument : pointer to void
I'll look into writing a generic function to compare avl keys so
we don't need to do all the casting.
email plugin: fix lint warnings
set but not used in function
(468) err in open_connection
(574) err in email_init
set but not used in function
(468) err in open_connection
(574) err in email_init
utils_llist.c: remove unneccesary include
write_kafka plugin: remove unneccesary includes
threshold plugin: remove unneccesary include
mqtt plugin: remove unused include
battery plugin: remove unused include
memcachec plugin: correct error message
curl plugin: correct error message
modbus plugin: unsigned value can't be negative
collectd-tg: remove dead code
fscache plugin: unsigned value can't be negative
configure.ac: always use pkg-config to detect hal
Hal needs dbus, but we need pkg-config to tell us that.
Now that pkg-config is not optional anymore, rewrite the
check to always use it. Also add a check for the header.
Fixes building the uuid plugin on Solaris 11.3
Hal needs dbus, but we need pkg-config to tell us that.
Now that pkg-config is not optional anymore, rewrite the
check to always use it. Also add a check for the header.
Fixes building the uuid plugin on Solaris 11.3
ganglia plugin: unsigned value can't be negative
treewide: remove unused includes
network plugin: use size_t for length and offsets
Ignore lint files
apache plugin: fix compiler warning on Solaris
memcached plugin: fix compiler warning on Solaris
| ud.free_func = (void *) memcached_free;
| ^ line 559, memcached.c
assignment type mismatch:
pointer to function(pointer to void) returning void "=" pointer to void
Casting a function pointer to a void pointer is undefined behaviour
in C (it is defined in POSIX however)
| ud.free_func = (void *) memcached_free;
| ^ line 559, memcached.c
assignment type mismatch:
pointer to function(pointer to void) returning void "=" pointer to void
Casting a function pointer to a void pointer is undefined behaviour
in C (it is defined in POSIX however)
mysql plugin: remove unneccesary cast
network plugin: unsigned variables can't be negative
utils_dns.c: unsigned variable can't be negative
utils_dns.c: fix strange linebreak
rrdtool plugin: unsigned value can't be negative
ted plugin: 0xAA doesn't fit in a signed char
openldap plugin: rc is only used once
interface plugin: val is only used once
Make chrony compile with Solaris Studio compiler
Ideally we'll have autoconf checks for supported attributes,
will look into that later.
Ideally we'll have autoconf checks for supported attributes,
will look into that later.
utils_dns.c: remove dead code
zone plugin: remove unused code
collectctl: remove dead code
teamspeak plugin: fix indentation
madwifi plugin: fix buffer overflows
curl_xml plugin: fix indentation
utils_curl_stats.c: fix order of calloc arguments
libcollectdclient: remove unneccesary cast
processes plugin: fix indentation
log_logstash plugin: fix indentation
curl_json plugin: fix indentation
conntrack plugin: fix indentation
utils_cmd_putval.c: fix indentation
utils_threshold.c: fix indentation
collectd.h: guard define of __attribute__
It might have already been defined to a no-op in <sys/cdefs.h>
It might have already been defined to a no-op in <sys/cdefs.h>
collectd.h: remove unused defines
collectd.h: fix indentation
Merge branch 'collectd-5.5'
Merge branch 'collectd-5.4' into collectd-5.5
network plugin: Fix heap overflow in parse_packet().
Emilien Gaspar has identified a heap overflow in parse_packet(), the
function used by the network plugin to parse incoming network packets.
This is a vulnerability in collectd, though the scope is not clear at
this point. At the very least specially crafted network packets can be
used to crash the daemon. We can't rule out a potential remote code
execution though.
Fixes: CVE-2016-6254
Emilien Gaspar has identified a heap overflow in parse_packet(), the
function used by the network plugin to parse incoming network packets.
This is a vulnerability in collectd, though the scope is not clear at
this point. At the very least specially crafted network packets can be
used to crash the daemon. We can't rule out a potential remote code
execution though.
Fixes: CVE-2016-6254
Merge pull request #1765 from vincentbernat/fix/kafka-partition-selection
write_kafka: ensure key is properly hashed to select partition
write_kafka: ensure key is properly hashed to select partition
Merge pull request #1785 from rinigus/master_issue1781
disk plugin: release udev-based name. Fixes #1781
disk plugin: release udev-based name. Fixes #1781
Merge pull request #1794 from swt2c/smart_use_serial
smart plugin: add option to store data using serial number
smart plugin: add option to store data using serial number
Merge pull request #1796 from tokkee/sh/configure
configure: Use AC_MSG_RESULT to print the config summary.
configure: Use AC_MSG_RESULT to print the config summary.
configure: Use AC_MSG_RESULT to print the config summary.
This way, it will show up in config.log as well.
This way, it will show up in config.log as well.
configure: Add missing end fold marker (for Vim).
Merge pull request #1783 from matwey/ntp
ntpd: Check STA_NANO in the server status
ntpd: Check STA_NANO in the server status
ntpd: Check STA_NANO in the server status
When STA_NANO is set in ik->status, then results are
expressed in nanoseconds (instead of microseconds by default).
Signed-off-by: Matwey V. Kornilov <matwey.kornilov@gmail.com>
When STA_NANO is set in ik->status, then results are
expressed in nanoseconds (instead of microseconds by default).
Signed-off-by: Matwey V. Kornilov <matwey.kornilov@gmail.com>
zookeeper plugin: remove unneccesary cast
ntpd plugin: remove unneccesary casts
collectd-nagios: fix some whitespace
virt plugin: fix some whitespace
Merge pull request #1793 from rubenk/fix-riemann-plugin-on-32bit-solaris
Fix write_riemann plugin build on 32-bit Solaris
Fix write_riemann plugin build on 32-bit Solaris
Fix write_riemann plugin build on 32-bit Solaris
Fixes #1782
CC write_riemann_la-write_riemann.lo
In file included from ./daemon/collectd.h:31:0,
from write_riemann.c:34:
./config.h:1664:0: error: "_FILE_OFFSET_BITS" redefined [-Werror]
#define _FILE_OFFSET_BITS 64
^
In file included from /usr/include/limits.h:17:0,
from
/opt/csw/lib/gcc/i386-pc-solaris2.10/5.2.0/include-fixed/limits.h:168,
from
/opt/csw/lib/gcc/i386-pc-solaris2.10/5.2.0/include-fixed/syslimits.h:7,
from
/opt/csw/lib/gcc/i386-pc-solaris2.10/5.2.0/include-fixed/limits.h:34,
from /opt/csw/include/protobuf-c/protobuf-c.h:200,
from /opt/csw/include/riemann/proto/riemann.pb-c.h:7,
from /opt/csw/include/riemann/attribute.h:21,
from /opt/csw/include/riemann/riemann-client.h:23,
from write_riemann.c:31:
/opt/csw/lib/gcc/i386-pc-solaris2.10/5.2.0/include-fixed/sys/feature_tests.h:196:0:
note: this is the location of the previous definition
#define _FILE_OFFSET_BITS 32
^
cc1: all warnings being treated as errors
Makefile:4645: recipe for target 'write_riemann_la-write_riemann.lo'
failed
gmake[3]: *** [write_riemann_la-write_riemann.lo] Error 1
gmake[3]: Leaving directory
'/home/dam/mgar/pkg/collectd/trunk/work/solaris10-i386/build-isa-pentium_pro/collectd-5.5.1.1126.g37fe166/src'
Makefile:4879: recipe for target 'all-recursive' failed
gmake[2]: *** [all-recursive] Error 1
gmake[2]: Leaving directory
'/home/dam/mgar/pkg/collectd/trunk/work/solaris10-i386/build-isa-pentium_pro/collectd-5.5.1.1126.g37fe166/src'
Makefile:3209: recipe for target 'all' failed
gmake[1]: *** [all] Error 2
gmake[1]: Leaving directory
'/home/dam/mgar/pkg/collectd/trunk/work/solaris10-i386/build-isa-pentium_pro/collectd-5.5.1.1126.g37fe166/src'
Makefile:572: recipe for target 'all-recursive' failed
gmake: *** [all-recursive] Error 1
gmake: Leaving directory
'/home/dam/mgar/pkg/collectd/trunk/work/solaris10-i386/build-isa-pentium_pro/collectd-5.5.1.1126.g37fe166'
/home/dam/mgar/pkg/.buildsys/v2/gar//gar.lib.mk:874: die Regel für Ziel
„build-work/solaris10-i386/build-isa-pentium_pro/collectd-5.5.1.1126.g37fe166/Makefile“
scheiterte
Fixes #1782
CC write_riemann_la-write_riemann.lo
In file included from ./daemon/collectd.h:31:0,
from write_riemann.c:34:
./config.h:1664:0: error: "_FILE_OFFSET_BITS" redefined [-Werror]
#define _FILE_OFFSET_BITS 64
^
In file included from /usr/include/limits.h:17:0,
from
/opt/csw/lib/gcc/i386-pc-solaris2.10/5.2.0/include-fixed/limits.h:168,
from
/opt/csw/lib/gcc/i386-pc-solaris2.10/5.2.0/include-fixed/syslimits.h:7,
from
/opt/csw/lib/gcc/i386-pc-solaris2.10/5.2.0/include-fixed/limits.h:34,
from /opt/csw/include/protobuf-c/protobuf-c.h:200,
from /opt/csw/include/riemann/proto/riemann.pb-c.h:7,
from /opt/csw/include/riemann/attribute.h:21,
from /opt/csw/include/riemann/riemann-client.h:23,
from write_riemann.c:31:
/opt/csw/lib/gcc/i386-pc-solaris2.10/5.2.0/include-fixed/sys/feature_tests.h:196:0:
note: this is the location of the previous definition
#define _FILE_OFFSET_BITS 32
^
cc1: all warnings being treated as errors
Makefile:4645: recipe for target 'write_riemann_la-write_riemann.lo'
failed
gmake[3]: *** [write_riemann_la-write_riemann.lo] Error 1
gmake[3]: Leaving directory
'/home/dam/mgar/pkg/collectd/trunk/work/solaris10-i386/build-isa-pentium_pro/collectd-5.5.1.1126.g37fe166/src'
Makefile:4879: recipe for target 'all-recursive' failed
gmake[2]: *** [all-recursive] Error 1
gmake[2]: Leaving directory
'/home/dam/mgar/pkg/collectd/trunk/work/solaris10-i386/build-isa-pentium_pro/collectd-5.5.1.1126.g37fe166/src'
Makefile:3209: recipe for target 'all' failed
gmake[1]: *** [all] Error 2
gmake[1]: Leaving directory
'/home/dam/mgar/pkg/collectd/trunk/work/solaris10-i386/build-isa-pentium_pro/collectd-5.5.1.1126.g37fe166/src'
Makefile:572: recipe for target 'all-recursive' failed
gmake: *** [all-recursive] Error 1
gmake: Leaving directory
'/home/dam/mgar/pkg/collectd/trunk/work/solaris10-i386/build-isa-pentium_pro/collectd-5.5.1.1126.g37fe166'
/home/dam/mgar/pkg/.buildsys/v2/gar//gar.lib.mk:874: die Regel für Ziel
„build-work/solaris10-i386/build-isa-pentium_pro/collectd-5.5.1.1126.g37fe166/Makefile“
scheiterte
smart plugin: add option to store data using serial number
Since a device name (e.g., /dev/sda) can change, allow using the serial number
to store SMART data as this will ensure the data for a given drive is always
kept together.
Since a device name (e.g., /dev/sda) can change, allow using the serial number
to store SMART data as this will ensure the data for a given drive is always
kept together.
Merge pull request #1770 from swt2c/smart_ignore_sleep
smart plugin: add IgnoreSleepMode option to ignore sleeping disks
smart plugin: add IgnoreSleepMode option to ignore sleeping disks
smart plugin: add IgnoreSleepMode option to ignore sleeping disks
This option enables the smart plugin to use disks that libatasmart mistakenly
reports as asleep. This happens because libatasmart has not been updated to
incorporate support for newer idle states in the ATA spec.
This option enables the smart plugin to use disks that libatasmart mistakenly
reports as asleep. This happens because libatasmart has not been updated to
incorporate support for newer idle states in the ATA spec.
Merge pull request #1773 from skob/master
Add slow queries statistics to mysql module
Add slow queries statistics to mysql module
Add slow queries statistics to mysql module