grpc plugin: Update to the new gRPC API.
grpc plugin: Make RPC call implementation more modular.
Use a template class for the RPC call object implementation to handle all
common functionality. The actual RPC implementation has been moved into
overloaded functions, one for each RPC. This approach only works as long as
the request and response type pairs are unique per call. That's common
practice, though, and in case there's an exception, it would have to fall back
to the previous approach (one class per call).
Use a template class for the RPC call object implementation to handle all
common functionality. The actual RPC implementation has been moved into
overloaded functions, one for each RPC. This approach only works as long as
the request and response type pairs are unique per call. That's common
practice, though, and in case there's an exception, it would have to fall back
to the previous approach (one class per call).
collectd.conf: Example grpc configuration.
grpc plugin: Implement the ListValues() RPC.
README: Document grpc dependencies.
collectd.conf(5): Document the gRPC plugin.
grpc plugin: Make listeners and worker threads configurable.
grpc plugin: Add a plugin providing a gRPC server.
gRPC is an open source RPC framework based on protocol buffers. The plugin
currently exposes one RPC end-point for dispatching values to the daemon but
is easy to extend for more functionality.
The plugin is written in C++ and uses an synchronous architecture which should
provide maximum performance. The collectd build system has been extended to
support C++ (11) and protocol buffers (3.0+).
gRPC is an open source RPC framework based on protocol buffers. The plugin
currently exposes one RPC end-point for dispatching values to the daemon but
is easy to extend for more functionality.
The plugin is written in C++ and uses an synchronous architecture which should
provide maximum performance. The collectd build system has been extended to
support C++ (11) and protocol buffers (3.0+).
utils cache: Add an iterator interface.
This may be used to query additional information from the cache.
This may be used to query additional information from the cache.
Merge pull request #1710 from rpv-tomsk/perl-plugin-fixes
perl plugin: Synchronize access to thread information.
Cf. #1706
perl plugin: Synchronize access to thread information.
Cf. #1706
perl plugin: Removed commented code
perl plugin: Added call_pv_locked() wrapper to handle thread locking flags.
perl plugin: Switched to PTHREAD_MUTEX_RECURSIVE locking
perl plugin: Fixes for #1706
* Fix coredump due to destroying interpreter on threads running perl.
* Fix deadlock when perl_log() is called from perl_init()
* Fix coredump due to destroying interpreter on threads running perl.
* Fix deadlock when perl_log() is called from perl_init()
perl plugin: lock base thread interpreter in perl_init() too.
Avoid race conditions with c_ithread_create() called from threads of already-initialized plugins.
Fix for https://github.com/collectd/collectd/issues/1706.
Avoid race conditions with c_ithread_create() called from threads of already-initialized plugins.
Fix for https://github.com/collectd/collectd/issues/1706.
Merge pull request #1708 from rpv-tomsk/plugin-postgresql-plugininstancefrom-public
Postgresql plugin: set plugin instance from query results.
Postgresql plugin: set plugin instance from query results.
utils_db_query (postgresql/dbi/oracle plugins): Documented PluginInstanceFrom option
Merge branch 'collectd-5.5'
plugin_mock.c: Declare "kc".
This hopefully fixes "make check" on Solaris, which currently fails
with:
CC common_test.o
CCLD test_common
Undefined first referenced
symbol in file
kc ./.libs/libcommon.a(common.o)
ld: fatal: symbol referencing errors. No output written to test_common
collect2: error: ld returned 1 exit status
(cherry picked from commit 4fb43017b4b585256627b9503ce0a5cf08ecdefe)
This hopefully fixes "make check" on Solaris, which currently fails
with:
CC common_test.o
CCLD test_common
Undefined first referenced
symbol in file
kc ./.libs/libcommon.a(common.o)
ld: fatal: symbol referencing errors. No output written to test_common
collect2: error: ld returned 1 exit status
(cherry picked from commit 4fb43017b4b585256627b9503ce0a5cf08ecdefe)
Do not link test_plugin_ceph with libcommon
Linking with libplugin_mock is enough since
that one already links with libcommon
Linking with libplugin_mock is enough since
that one already links with libcommon
Set subdir-objects globally instead of per Makefile
Makefile.am: Link tests with required libraries, too.
"make check" fails on Solaris because libraries are missing:
CCLD test_common
Undefined first referenced
symbol in file
kc ./.libs/libcommon.a(common.o)
kstat_data_lookup ./.libs/libcommon.a(common.o)
kstat_lookup ./.libs/libcommon.a(common.o)
kstat_read ./.libs/libcommon.a(common.o)
getaddrinfo ./.libs/libcommon.a(common.o)
freeaddrinfo ./.libs/libcommon.a(common.o)
gai_strerror ./.libs/libcommon.a(common.o)
ld: fatal: symbol referencing errors. No output written to test_common
collect2: error: ld returned 1 exit status
(cherry picked from commit 6213557b1d5c79a60e9c4322263836ca6066aa0e)
"make check" fails on Solaris because libraries are missing:
CCLD test_common
Undefined first referenced
symbol in file
kc ./.libs/libcommon.a(common.o)
kstat_data_lookup ./.libs/libcommon.a(common.o)
kstat_lookup ./.libs/libcommon.a(common.o)
kstat_read ./.libs/libcommon.a(common.o)
getaddrinfo ./.libs/libcommon.a(common.o)
freeaddrinfo ./.libs/libcommon.a(common.o)
gai_strerror ./.libs/libcommon.a(common.o)
ld: fatal: symbol referencing errors. No output written to test_common
collect2: error: ld returned 1 exit status
(cherry picked from commit 6213557b1d5c79a60e9c4322263836ca6066aa0e)
build: add libavltree, libcommon & libheap dependencies
Otherwise it can break on very parallel builds since collectd link time
arrives before one or more of these were built.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
(cherry picked from commit 780e6a76021a240e95007a04b723d827120afa95)
Otherwise it can break on very parallel builds since collectd link time
arrives before one or more of these were built.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
(cherry picked from commit 780e6a76021a240e95007a04b723d827120afa95)
Link libcommon.la with $(COMMON_LIBS).
This hopefully fixes link errors on Solaris:
CCLD test_utils_vl_lookup
Undefined first referenced
symbol in file
kstat_data_lookup daemon/.libs/libcommon.a(common.o)
kstat_lookup daemon/.libs/libcommon.a(common.o)
kstat_read daemon/.libs/libcommon.a(common.o)
getaddrinfo daemon/.libs/libcommon.a(common.o)
freeaddrinfo daemon/.libs/libcommon.a(common.o)
gai_strerror daemon/.libs/libcommon.a(common.o)
ld: fatal: symbol referencing errors. No output written to test_utils_vl_lookup
collect2: error: ld returned 1 exit status
(cherry picked from commit fe2eee98f4b1cf8c5a5df6ed6cd03d8487c695be)
Conflicts:
src/daemon/Makefile.am
This hopefully fixes link errors on Solaris:
CCLD test_utils_vl_lookup
Undefined first referenced
symbol in file
kstat_data_lookup daemon/.libs/libcommon.a(common.o)
kstat_lookup daemon/.libs/libcommon.a(common.o)
kstat_read daemon/.libs/libcommon.a(common.o)
getaddrinfo daemon/.libs/libcommon.a(common.o)
freeaddrinfo daemon/.libs/libcommon.a(common.o)
gai_strerror daemon/.libs/libcommon.a(common.o)
ld: fatal: symbol referencing errors. No output written to test_utils_vl_lookup
collect2: error: ld returned 1 exit status
(cherry picked from commit fe2eee98f4b1cf8c5a5df6ed6cd03d8487c695be)
Conflicts:
src/daemon/Makefile.am
Merge branch 'collectd-5.5'
Conflicts:
configure.ac
Conflicts:
configure.ac
Merge branch 'collectd-5.4' into collectd-5.5
Merge pull request #1726 from rubenk/udev
Udev
Udev
processes: re-add <sys/user.h> inclusion
cf #1725
cf #1725
Stop hardcoding libudev
Add missing udev flags to Makefile.am
Merge branch 'collectd-5.4' into collectd-5.5
processes: MAXCOMLEN is not exposed on Solaris
MAXCOMLEN in <sys/user.h> is only exposed to kernel
code. I think it's safe to assume that it isn't going
to change, so just hardcode it.
MAXCOMLEN in <sys/user.h> is only exposed to kernel
code. I think it's safe to assume that it isn't going
to change, so just hardcode it.
Merge pull request #1724 from rpv-tomsk/smart-plugin-udev-dep
Fix for #1688 The SMART plugin does not build/load, v.5.5.0
Fix for #1688 The SMART plugin does not build/load, v.5.5.0
smart plugin: Check for libudev presence
Merge pull request #1723 from rpv-tomsk/disk-plugin
Disk plugin: UdevNameAttr feature improvements
Disk plugin: UdevNameAttr feature improvements
disk plugin: Initialize udev context only once, not per each read
disk plugin: Call disk_udev_attr_name() only when UdevNameAttr configured
collectd.conf.in: remove extraneous pound sign
Merge branch 'collectd-5.5'
Merge branch 'collectd-5.4' into collectd-5.5
utils_cache.c: fix FORMAT_VL failed ERROR messages
kill correct pid on fdopen failure
postgresql plugin: Improve documentation about Result blocks
utils_db_query (postgresql/dbi/oracle plugins): Add PluginInstanceFrom option
Merge branch 'collectd-5.5'
Merge branch 'collectd-5.4' into collectd-5.5
Conflicts:
src/Makefile.am
Conflicts:
src/Makefile.am
rrdtool plugin: fix thread-safety detection
librrd 1.6.0 is now threadsafe and librrd_th is gone.
Since there doesn't seem to be a way to detect that librrd
is threadsafe, use pkg-config to check for 1.6.0 or newer instead.
The logic is now as follows:
Check for librrd >= 1.6.0 with pkg-config
If not found, look for rrd_update_r in librrd_th.
If not found, look for rrd_update in librrd and assume librrd is not
thread safe.
(cherry picked from commit ef43260cd901847220c2a9de400579ff903ca13e)
Conflicts:
src/Makefile.am
librrd 1.6.0 is now threadsafe and librrd_th is gone.
Since there doesn't seem to be a way to detect that librrd
is threadsafe, use pkg-config to check for 1.6.0 or newer instead.
The logic is now as follows:
Check for librrd >= 1.6.0 with pkg-config
If not found, look for rrd_update_r in librrd_th.
If not found, look for rrd_update in librrd and assume librrd is not
thread safe.
(cherry picked from commit ef43260cd901847220c2a9de400579ff903ca13e)
Conflicts:
src/Makefile.am
rrdtool check: stop linking in libm
(cherry picked from commit 32c0ce39f786c56e9d13f3615253a7ae55b578e6)
(cherry picked from commit 32c0ce39f786c56e9d13f3615253a7ae55b578e6)
rrdtool check: no need to save CPPFLAGS
There's no need to save CPPFLAGS when we're just
checking a library.
(cherry picked from commit f7e09269879b74e61324de9178503221b2df9136)
There's no need to save CPPFLAGS when we're just
checking a library.
(cherry picked from commit f7e09269879b74e61324de9178503221b2df9136)
rrdtool check: no need to save LDFLAGS
There's no need to save LDFLAGS when we're just
checking a header.
(cherry picked from commit 38068ecc7922ace29bb6af3f8ee5568c3fe96c08)
There's no need to save LDFLAGS when we're just
checking a header.
(cherry picked from commit 38068ecc7922ace29bb6af3f8ee5568c3fe96c08)
Merge pull request #1308 from mfournier/openldap-persistent-connection
Openldap: persistent connection + sane default timeout
Openldap: persistent connection + sane default timeout
Merge pull request #1686 from rubenk/zfs-arc
Zfs arc
Zfs arc
apcups: define default server timeout as a constant
Merge remote-tracking branch 'origin/pr/1701'
build system: rename riemann-c to libriemann-client
... to make this consistent with the other plugins
... to make this consistent with the other plugins
statsd plugin: Fix deadlock on plugin shutdown (Issue #1703)
apcups plugin: Change "PersistentConnection" option default value depending on poll Interval.
Revert "apcups plugin: Handle "END APC" lines correctly and stop reading."
This reverts commit fb075e15e3400afdb691b88f1e1a4a38578aaba9.
This reverts commit fb075e15e3400afdb691b88f1e1a4a38578aaba9.
Merge pull request #1695 from collectd/feature/fix-keyless-kafka-produce
write_kafka: reliability when no key provided
write_kafka: reliability when no key provided
src/daemon/plugin.h: Define DATA_MAX_NAME_LEN conditionally.
Issue: #1690
Issue: #1690
write_kafka: reliability when no key provided
Merge branch 'collectd-5.5'
More missing kstat usages
Merge branch 'collectd-5.5'
Add missing kstat definitions
Take out explicit definitions as they are already checked via enable_standards in configure.ac.
Fixes: #978
Fixes: #978
collectd-tg: Move _POSIX_C_SOURCE and friends to the Makefile.
Apparently defining this in the source files confuses Solaris' libc.
Thanks to @dago for looking into this.
Hopefully fixes: #978
Apparently defining this in the source files confuses Solaris' libc.
Thanks to @dago for looking into this.
Hopefully fixes: #978
Merge branch 'collectd-5.5'
processes: remove initialisation of unexisting variables
Partial revert of 1f0156c, which broke the build on Solaris and OpenBSD.
The context-switch reporting code is only part of master at the moment.
Fixes: #1674
Partial revert of 1f0156c, which broke the build on Solaris and OpenBSD.
The context-switch reporting code is only part of master at the moment.
Fixes: #1674
Modify the -T command line option so it watches for more errors. (#1642)
After this change, the following kinds of errors will cause collectd -T to
exit with an abnormal status:
- errors reading the config file
- errors reading types.db
- errors on plugin_init
- errors on plugin_shutdown
After this change, the following kinds of errors will cause collectd -T to
exit with an abnormal status:
- errors reading the config file
- errors reading types.db
- errors on plugin_init
- errors on plugin_shutdown
amqp plugin: prevent use after free
Found by scan-build:
amqp.c:1097:13: warning: Use of memory after it is freed
camqp_config_free (conf);
^~~~~~~~~~~~~~~~~~~~~~~~
Found by scan-build:
amqp.c:1097:13: warning: Use of memory after it is freed
camqp_config_free (conf);
^~~~~~~~~~~~~~~~~~~~~~~~
pf plugin: value stored in fd is never read
Found by scan-build:
pf.c:109:2: warning: Value stored to 'fd' is never read
fd = -1;
^ ~~
Found by scan-build:
pf.c:109:2: warning: Value stored to 'fd' is never read
fd = -1;
^ ~~
add format attribute to varargs functions
target_set: mark function as static
zfs_arc plugin: get more MRU/MFU stats
zfs_arc plugin: get more sizes of various caches
zfs_arc plugin: get the target size of the MRU
Also known as 'p'
Also known as 'p'
zfs_arc plugin: add memory_throttle_count stat
This tells you how often the ARC has been shrunk to release
memory for other processes.
This tells you how often the ARC has been shrunk to release
memory for other processes.
zfs_arc plugin: fix indentation
zfs_arc plugin: cleanup defines
RPM specfile: take new xencpu plugin in account
Merge pull request #1565 from rpv-tomsk/disk-plugin-ignorelist
* disk plugin: call ignorelist_match() once per device, not for each send metric
* disk plugin: call ignorelist_match() once per device, not for each send metric
* disk plugin: call ignorelist_match() once per device, not for each sent metric
Merge pull request #1546 from mfournier/processname_length_1284
processes: warn about process names above OS limit
processes: warn about process names above OS limit
Merge pull request #1557 from rpv-tomsk/master
* Collectd::Unixsock: Split messages sent by flush() to 1024 byte chunks to not overflow buffer in unixsock.c us_handle_client().
* Collectd::Unixsock: Split messages sent by flush() to 1024 byte chunks to not overflow buffer in unixsock.c us_handle_client().
Merge pull request #1564 from rpv-tomsk/disk-plugin
disk plugin: send disk_merged,disk_io_time,pending_operations only when real data exists for device
disk plugin: send disk_merged,disk_io_time,pending_operations only when real data exists for device
AC_CONFIG_SRCDIR needs to point to a unique file
AC_CONFIG_SRCDIR is a bit of a misnomer, in that it should
point to a unique file in the top source directory, not to
the directory itself.
AC_CONFIG_SRCDIR is a bit of a misnomer, in that it should
point to a unique file in the top source directory, not to
the directory itself.
rrdtool plugin: fix thread-safety detection
librrd 1.6.0 is now threadsafe and librrd_th is gone.
Since there doesn't seem to be a way to detect that librrd
is threadsafe, use pkg-config to check for 1.6.0 or newer instead.
The logic is now as follows:
Check for librrd >= 1.6.0 with pkg-config
If not found, look for rrd_update_r in librrd_th.
If not found, look for rrd_update in librrd and assume librrd is not
thread safe.
librrd 1.6.0 is now threadsafe and librrd_th is gone.
Since there doesn't seem to be a way to detect that librrd
is threadsafe, use pkg-config to check for 1.6.0 or newer instead.
The logic is now as follows:
Check for librrd >= 1.6.0 with pkg-config
If not found, look for rrd_update_r in librrd_th.
If not found, look for rrd_update in librrd and assume librrd is not
thread safe.
HAVE_THREADSAFE_LIBRRD is either defined or not
rrdtool check: stop linking in libm
rrdtool check: no need to save CPPFLAGS
There's no need to save CPPFLAGS when we're just
checking a library.
There's no need to save CPPFLAGS when we're just
checking a library.
rrdtool check: no need to save LDFLAGS
There's no need to save LDFLAGS when we're just
checking a header.
There's no need to save LDFLAGS when we're just
checking a header.
liboconfig: enable dependency tracking
Nowadays there's no reason not too.
Also remove the foreign option, since we set that as default
in configure.ac already.
Nowadays there's no reason not too.
Also remove the foreign option, since we set that as default
in configure.ac already.
sfree: don't check for NULL before calling free
free(NULL) is safe to call
free(NULL) is safe to call
Merge branch 'cppcheck'
bind plugin: space after realloc
amqp: plug leak on realloc failure
realloc: remove unnecessary casts of return value
match_value: condition is always true
[src/match_value.c:338]: (style) Condition 'value_matches==0' is always true
[src/match_value.c:338]: (style) Condition 'value_matches==0' is always true