python plugin: Don't shut down the Python interpreter as long as there might be callback methods around.
Merge remote-tracking branch 'github/pr/1890' into collectd-5.6
ceph plugin: Assert that the strings on the stack are non-NULL.
The static analyzer is whining about passing NULLs to strcmp().
The static analyzer is whining about passing NULLs to strcmp().
ceph plugin: Guard against g_num_daemons being zero.
clang scan-build flags this, because this variable is used to declare VLAs.
clang scan-build flags this, because this variable is used to declare VLAs.
8 years agopython plugin: Unregister all internal callback lists before Python interpreter shutdown.
python plugin: Unregister all internal callback lists before Python interpreter shutdown.
python plugin: Properly deal with identifier being NULL in a log callback.
python plugin: Grab GIL before freeing callbacks. If their refcount reaches 0 Python code will be executed.
Merge remote-tracking branch 'github/pr/1879'
Merge remote-tracking branch 'github/pr/1883'
CONTRIBUTING.md: Address review comments.
README: Point to CONTRIBUTING.md for bugs and PRs.
CONTRIBUTING.md: Address review comments.
configure.ac: rewrite liblua detection
Not all distro's have a lua.pc file.
This looks for the most common ones, newest versions first.
Not all distro's have a lua.pc file.
This looks for the most common ones, newest versions first.
support older versions of riemann-c-client
riemann_client_set_timeout() was added in 1.8.0, but this
version hasn't landed in all distro's yet.
Fixes #986
riemann_client_set_timeout() was added in 1.8.0, but this
version hasn't landed in all distro's yet.
Fixes #986
scanner.l: remove GCC pragma
GCC on RHEL5 doesn't recognize it and warns about it
scanner.l:36: warning: ignoring #pragma GCC diagnostic
make[4]: *** [scanner.lo] Error 1
CC parser.lo
GCC on RHEL5 doesn't recognize it and warns about it
scanner.l:36: warning: ignoring #pragma GCC diagnostic
make[4]: *** [scanner.lo] Error 1
CC parser.lo
CONTRIBUTING.md: Add operating system / distribution.
Add a GitHub issue template.
GenericJMX plugin: Suppress "unchecked conversion" warning.
The internet tells me there is no elegant way around this.
The internet tells me there is no elegant way around this.
scanner.l: really fix pragma
Fix build with older GCCs
They warn for unknown pragmas
They warn for unknown pragmas
Merge pull request #1874 from rubenk/utils-dns-fix-compiler-warning
utils_dns.c: fix compiler warning
utils_dns.c: fix compiler warning
ceph plugin: Rewrite the BUFFER_ADD() macro.
I'm hoping that this fixes a potential integer underrun that may occur
when unconditionally subtracting strlen(dest) from sizeof(dest).
Issue: #1835
I'm hoping that this fixes a potential integer underrun that may occur
when unconditionally subtracting strlen(dest) from sizeof(dest).
Issue: #1835
liboconfig: silence warnings in generated code
Lex generates these, nothing we can do about them
Lex generates these, nothing we can do about them
processes plugin: fix 3 compiler warnings on OS X
processes.c:1569:26: warning: comparison of integers of different signs: 'int' and 'mach_msg_type_number_t' (aka 'unsigned int') [-Wsign-compare]
for (int pset = 0; pset < pset_list_len; pset++)
~~~~ ^ ~~~~~~~~~~~~~
processes.c:1590:27: warning: comparison of integers of different signs: 'int' and 'mach_msg_type_number_t' (aka 'unsigned int') [-Wsign-compare]
for (int task = 0; task < task_list_len; task++)
~~~~ ^ ~~~~~~~~~~~~~
processes.c:1688:32: warning: comparison of integers of different signs: 'int' and 'mach_msg_type_number_t' (aka 'unsigned int') [-Wsign-compare]
for (int thread = 0; thread < thread_list_len; thread++)
~~~~~~ ^ ~~~~~~~~~~~~~~~
processes.c:1569:26: warning: comparison of integers of different signs: 'int' and 'mach_msg_type_number_t' (aka 'unsigned int') [-Wsign-compare]
for (int pset = 0; pset < pset_list_len; pset++)
~~~~ ^ ~~~~~~~~~~~~~
processes.c:1590:27: warning: comparison of integers of different signs: 'int' and 'mach_msg_type_number_t' (aka 'unsigned int') [-Wsign-compare]
for (int task = 0; task < task_list_len; task++)
~~~~ ^ ~~~~~~~~~~~~~
processes.c:1688:32: warning: comparison of integers of different signs: 'int' and 'mach_msg_type_number_t' (aka 'unsigned int') [-Wsign-compare]
for (int thread = 0; thread < thread_list_len; thread++)
~~~~~~ ^ ~~~~~~~~~~~~~~~
Merge remote-tracking branch 'github/master'
ceph plugin: Change g_num_daemons to size_t.
The variable is used as size for variable length arrays (VLAs), which
cannot have negative size.
Issue: #1835
The variable is used as size for variable length arrays (VLAs), which
cannot have negative size.
Issue: #1835
cpu plugin: fix compiler warning on OS X
cpu.c:593:24: warning: comparison of integers of different signs: 'int' and 'mach_msg_type_number_t' (aka 'unsigned int') [-Wsign-compare]
for (int cpu = 0; cpu < cpu_list_len; cpu++)
~~~ ^ ~~~~~~~~~~~~
cpu.c:593:24: warning: comparison of integers of different signs: 'int' and 'mach_msg_type_number_t' (aka 'unsigned int') [-Wsign-compare]
for (int cpu = 0; cpu < cpu_list_len; cpu++)
~~~ ^ ~~~~~~~~~~~~
write_http plugin: Sanity check arguments to wh_write_command().
Issue: #1835
Issue: #1835
annotate vfprintf-like 'vcomplain' function
utils_complain.c:56:40: warning: format string is not a string literal
[-Wformat-nonliteral]
vsnprintf (message, sizeof (message), format, ap);
^~~~~~
utils_complain.c:56:40: warning: format string is not a string literal
[-Wformat-nonliteral]
vsnprintf (message, sizeof (message), format, ap);
^~~~~~
libcollectdclient: annotate vprintf-like function
client.c:126:21: warning: format string is not a string literal [-Wformat-nonliteral]
status = vprintf (format, ap);
^~~~~~
client.c:126:21: warning: format string is not a string literal [-Wformat-nonliteral]
status = vprintf (format, ap);
^~~~~~
Python plugin: fix compiler warning
python.c:397:25: warning: comparison of integers of different signs:
'size_t' (aka 'unsigned long') and 'int' [-Wsign-compare]
for (size_t i = 0; i < num; ++i) {
~ ^ ~~~
python.c:397:25: warning: comparison of integers of different signs:
'size_t' (aka 'unsigned long') and 'int' [-Wsign-compare]
for (size_t i = 0; i < num; ++i) {
~ ^ ~~~
Lua plugin: fix old style definition
lua.c: In function ‘module_register’:
lua.c:588:6: warning: old-style function definition
[-Wold-style-definition]
void module_register() {
^~~~~~~~~~~~~~~
lua.c: In function ‘module_register’:
lua.c:588:6: warning: old-style function definition
[-Wold-style-definition]
void module_register() {
^~~~~~~~~~~~~~~
Merge pull request #1885 from rubenk/lua-plugin
Add a Lua plugin for Collectd
Add a Lua plugin for Collectd
README: bump Python requirement to 2.6
Lua plugin: add to rpm specfile
Lua plugin: add to README
Lua plugin: make function array const
Lua plugin: Terminate array with sentinel
From the API docs:
Any array of luaL_Reg must end with a sentinel entry in which both name
and func are NULL.
From the API docs:
Any array of luaL_Reg must end with a sentinel entry in which both name
and func are NULL.
collectd-lua(5) fix syntax error in pod
Lua plugin: add section to collectd.conf(5)
Lua plugin: s/Collectd/collectd/g in manpage
Lua plugin: fix build with Lua 5.1
Lua plugin: add a manpage
Lua plugin: turn the collectd functions into a lib
Now the module shows up in 'package.loaded':
for name, func in pairs(package.loaded['collectd']) do
print(name, func)
end
returns:
dispatch_values function: 0x7f38b8a472c0
log_debug function: 0x7f38b8a47130
register_write function: 0x7f38b8a47520
log_info function: 0x7f38b8a470d0
register_read function: 0x7f38b8a47360
log_warning function: 0x7f38b8a47070
log_error function: 0x7f38b8a47100
log_notice function: 0x7f38b8a470a0
Now the module shows up in 'package.loaded':
for name, func in pairs(package.loaded['collectd']) do
print(name, func)
end
returns:
dispatch_values function: 0x7f38b8a472c0
log_debug function: 0x7f38b8a47130
register_write function: 0x7f38b8a47520
log_info function: 0x7f38b8a470d0
register_read function: 0x7f38b8a47360
log_warning function: 0x7f38b8a47070
log_error function: 0x7f38b8a47100
log_notice function: 0x7f38b8a470a0
Lua plugin: use existing type for functions array
Merge remote-tracking branch 'github/pr/1882'
Merge pull request #1887 from rubenk/make-xfs-optional
Add an option to disable building with XFS support
Add an option to disable building with XFS support
liboconfig: make function static
configfile.h: remove unused declaration
Stop using net-snmp-config to detect libnetsmp
net-snmp-config returns the settings used to compile and link
libnetsnmp, not the settings needed to compile and link code against it.
This resulted in various issues, namely overlinking, failure to compile
without compiler optimisations, and overriding of our compiler flags.
One example is the following, just noticed on RHEL5:
cc1: warnings being treated as errors
snmp.c: In function 'csnmp_config_add_host':
snmp.c:767: warning: ISO C90 forbids mixed declarations and code
make[3]: *** [snmp_la-snmp.lo] Error 1
We do compile in C99 mode, but net-snmp-config adds
-Wdeclaration-after-statement to our build command line. The GCC on
RHEL5 returns a warning, while later GCCs just ignore this.
net-snmp-config returns the settings used to compile and link
libnetsnmp, not the settings needed to compile and link code against it.
This resulted in various issues, namely overlinking, failure to compile
without compiler optimisations, and overriding of our compiler flags.
One example is the following, just noticed on RHEL5:
cc1: warnings being treated as errors
snmp.c: In function 'csnmp_config_add_host':
snmp.c:767: warning: ISO C90 forbids mixed declarations and code
make[3]: *** [snmp_la-snmp.lo] Error 1
We do compile in C99 mode, but net-snmp-config adds
-Wdeclaration-after-statement to our build command line. The GCC on
RHEL5 returns a warning, while later GCCs just ignore this.
collectdmon: define PREFIX and LOCALSTATEDIR
Not an issue in practice, but this helps when running the code through
lint.
Not an issue in practice, but this helps when running the code through
lint.
collectdctl: prefix may be undefined as well
This won't happen in practice since ./configure sets it, but it isn't
set when running the code through lint.
This won't happen in practice since ./configure sets it, but it isn't
set when running the code through lint.
ceph plugin: just continue
barometer plugin: add missing include
collectctl: define LOCALSTATEDIR if not defined
write_log plugin: mark unused attribute as unused
treewide: use designated initializers for user_data
openldap plugin: replace comma with semicolon
This incidentally worked, but it is not a good idea.
This incidentally worked, but it is not a good idea.
Lua plugin: wrap debug code in COLLECT_DEBUG
No use formatting the string if we're not going to use it.
No use formatting the string if we're not going to use it.
Add an option to disable building with XFS support
Right now, if you have the xfs development headers installed,
they will be picked up. Add an option to disable this behaviour.
Fixes #1878
Right now, if you have the xfs development headers installed,
they will be picked up. Add an option to disable this behaviour.
Fixes #1878
zone plugin: fix typo in error message
collectd.conf(5): add Host option for curl_json
configure.ac: check for ExtUtils::MakeMaker
The perl bindings need this module so perl can generate Makefile.pl.
Fixes #1886
The perl bindings need this module so perl can generate Makefile.pl.
Fixes #1886
Add a Lua plugin for Collectd
CONTRIBUTING.md: Give more concrete advice on writing bugs and PRs.
grpc plugin: Unify SSL config options.
These option names have been copied from the Apache webserver.
These option names have been copied from the Apache webserver.
grpc plugin: Implement the <Server "host" "port"> option.
This allows the gRPC plugin to send metrics, via gRPC, to another
collectd instance or other implementation of the "Collectd" gRPC
service.
This allows the gRPC plugin to send metrics, via gRPC, to another
collectd instance or other implementation of the "Collectd" gRPC
service.
Merge pull request #900 from ccin2p3/faxmodem/cpu-numcpu
implement reporting of ncpu
implement reporting of ncpu
address @octo and @rubenk's comments
Change-Id: I5661a555d95227e63b3c873a0fd0b2360a040342
Change-Id: I5661a555d95227e63b3c873a0fd0b2360a040342
Merge pull request #1873 from rubenk/fix-duplicate-label_t
Work around Solaris 10 defining label_t
Work around Solaris 10 defining label_t
Merge pull request #1875 from rubenk/remove-configfile-h-from-plugins
Remove configfile.h from plugins
Remove configfile.h from plugins
Merge pull request #1876 from octo/issue/1819
grpc plugin: Refactor plugin.
grpc plugin: Refactor plugin.
Merge branch 'collectd-5.5'
Merge branch 'collectd-5.4' into collectd-5.5
md: fix deprecation warning with latest glibc
md.c: In function ‘md_process’:
md.c:120:3: warning: ‘__makedev_from_sys_types’ is deprecated:
In the GNU C Library, `makedev' is defined by <sys/sysmacros.h>.
For historical compatibility, it is currently defined by
<sys/types.h> as well, but we plan to remove this soon.
To use `makedev', include <sys/sysmacros.h> directly.
If you did not intend to use a system-defined macro `makedev',
you should #undef it after including <sys/types.h>.
[-Wdeprecated-declarations]
if (st.st_rdev != makedev (MD_MAJOR, minor))
^~
In file included from /usr/include/features.h:397:0,
from /usr/include/bits/libc-header-start.h:33,
from /usr/include/stdio.h:28,
from ./daemon/collectd.h:34,
from md.c:22:
md.c: In function ‘md_process’:
md.c:120:3: warning: ‘__makedev_from_sys_types’ is deprecated:
In the GNU C Library, `makedev' is defined by <sys/sysmacros.h>.
For historical compatibility, it is currently defined by
<sys/types.h> as well, but we plan to remove this soon.
To use `makedev', include <sys/sysmacros.h> directly.
If you did not intend to use a system-defined macro `makedev',
you should #undef it after including <sys/types.h>.
[-Wdeprecated-declarations]
if (st.st_rdev != makedev (MD_MAJOR, minor))
^~
In file included from /usr/include/features.h:397:0,
from /usr/include/bits/libc-header-start.h:33,
from /usr/include/stdio.h:28,
from ./daemon/collectd.h:34,
from md.c:22:
common.c: fix calloc arguments order
Merge remote-tracking branch 'github/pr/1530'
implement reporting of ncpu
Change-Id: Ia305b74139352f16f71b1f747875d6c7a0c376a4
Change-Id: Ia305b74139352f16f71b1f747875d6c7a0c376a4
Fix conceptual buglet in default_callback
The 'DERIVE' path in default_callback() increments the 'counter' field of
value instead of the 'derive' field. Since those fields have the same
type and offset within the value union this will still work fine, but
AFAICT it's conceptually incorrect. This corrects it.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Florian Forster <octo@collectd.org>
The 'DERIVE' path in default_callback() increments the 'counter' field of
value instead of the 'derive' field. Since those fields have the same
type and offset within the value union this will still work fine, but
AFAICT it's conceptually incorrect. This corrects it.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Florian Forster <octo@collectd.org>
proto/collectd.proto: Improve documentation.
DispatchValues' documentation is now written from the POV of the server,
not the caller as it was previously worded.
DispatchValues' documentation is now written from the POV of the server,
not the caller as it was previously worded.
grpc plugin: Rename "err" to "status".
statsd, utils_latency: allow to reduce bin width
src/daemon/common.c: avoid leaking cap_header in error condition
src/daemon/common.c: avoid using private structs from <linux/capability.h>
turbostat: avoid potential unused variable
fix typographical mistake in warning message
swap plugin: fix leak on error
write_sensu plugin: fix build on OpenBSD
time_t is a long long on OpenBSD
time_t is a long long on OpenBSD
chrony plugin: fix build on OpenBSD
time_t is a long long on OpenBSD
time_t is a long long on OpenBSD
proto/*.proto: Reformat using clang-format.
grpc plugin: Move all functions to a single service again.
grpc plugin: Switch to the synchronous interface.
proto/*.proto: Add the go_package option.
grpc plugin: Turn QueryValues into a server-side streaming RPC.
Build system: set CPPFLAGS when checking for <grpc++/grpc++.h>
common.c: fix compilation on OpenBSD
cc1: warnings being treated as errors
common.c: In function 'set_sock_opts':
common.c:1572: warning: unused variable 'tcp_keepintvl'
common.c:1571: warning: unused variable 'tcp_keepidle'
*** Error 1 in target 'common.lo'
*** Error 1 in src/daemon (Makefile:1048 'common.lo': @echo " CC " common.lo;depbase=`echo common.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$|...)
*** Error 1 in src (Makefile:5007 'all-recursive')
*** Error 2 in src (Makefile:3284 'all')
*** Error 1 in /root/src/collectd (Makefile:611 'all-recursive')
cc1: warnings being treated as errors
common.c: In function 'set_sock_opts':
common.c:1572: warning: unused variable 'tcp_keepintvl'
common.c:1571: warning: unused variable 'tcp_keepidle'
*** Error 1 in target 'common.lo'
*** Error 1 in src/daemon (Makefile:1048 'common.lo': @echo " CC " common.lo;depbase=`echo common.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$|...)
*** Error 1 in src (Makefile:5007 'all-recursive')
*** Error 2 in src (Makefile:3284 'all')
*** Error 1 in /root/src/collectd (Makefile:611 'all-recursive')
Ignore cscope files
Remove configfile.h from plugins
It is already included by collectd.h
It is already included by collectd.h
check_capability: explicitly target recent linux implementations
There are several, incompatible, capabilities implementations, all
exposed through `<sys/capability.h>`. Currently only Linux's V3
function and capability sets are supported.
This patch guards against using Linux-specific functions & capabilities
on other implementations, while structring the code to allow adding
support for them.
There are several, incompatible, capabilities implementations, all
exposed through `<sys/capability.h>`. Currently only Linux's V3
function and capability sets are supported.
This patch guards against using Linux-specific functions & capabilities
on other implementations, while structring the code to allow adding
support for them.
iptables: include libiptc headers before capability.h
Some versions of sys/capability.h seem to have conflicting declarations
with other (linux) kernel header files, so order matters.
Some versions of sys/capability.h seem to have conflicting declarations
with other (linux) kernel header files, so order matters.