Merge branch 'collectd-4.10' into collectd-5.0
Conflicts:
src/curl_json.c
src/libvirt.c
Change-Id: I0852495b416435fa3cfd36068d967e0cd5ff689f
Conflicts:
src/curl_json.c
src/libvirt.c
Change-Id: I0852495b416435fa3cfd36068d967e0cd5ff689f
configure: Link with ip4tc and ip6tc, too.
This solves this problem:
octo@leeloo:/tmp $ gcc -o conftest -g -O2 conftest.c -liptc -ldl
/usr/bin/ld: /tmp/ccuJEDqP.o: undefined reference to symbol 'iptc_init'
/usr/bin/ld: note: 'iptc_init' is defined in DSO /lib64/libip4tc.so.0 so try adding it to the linker command line
/lib64/libip4tc.so.0: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
Why the iptables plugin compiles without this is beyond me.
Change-Id: If615bee0c9524d907ca1834d5c337ed50c625c5b
This solves this problem:
octo@leeloo:/tmp $ gcc -o conftest -g -O2 conftest.c -liptc -ldl
/usr/bin/ld: /tmp/ccuJEDqP.o: undefined reference to symbol 'iptc_init'
/usr/bin/ld: note: 'iptc_init' is defined in DSO /lib64/libip4tc.so.0 so try adding it to the linker command line
/lib64/libip4tc.so.0: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
Why the iptables plugin compiles without this is beyond me.
Change-Id: If615bee0c9524d907ca1834d5c337ed50c625c5b
configure.in: Add AC_CONFIG_AUX_DIR for libltdl.
mysql plugin: Remove sideeffect-free function call.
notify_email plugin: Remove useless function and fix indentation.
Many build fixes that turned up with GCC 4.6.
Signed-off-by: Florian Forster <octo@collectd.org>
Signed-off-by: Florian Forster <octo@collectd.org>
src/csv.c: use a bigger buffer
The CSV plugin formerly used a relatively small output buffer. If you
had a large dataset, you would always get error -1 because the line
length was be too long. This patch extends the buffer.
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
The CSV plugin formerly used a relatively small output buffer. If you
had a large dataset, you would always get error -1 because the line
length was be too long. This patch extends the buffer.
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
src/utils_format_json.c: Correctly format the time of value lists.
Users should get epoch, not our internal format.
Users should get epoch, not our internal format.
curl_json plugin: Add compatibility code for libyajl v2.
Thanks to "spupykin" of the Arch Linux project on whose patch this commit is
loosely based.
Thanks to "spupykin" of the Arch Linux project on whose patch this commit is
loosely based.
Various plugins: Set the cURL option "CURLOPT_NOSIGNAL".
This fixes problems with version 7.21.2 (and later) of libcurl that are due to
collectd being a multi-threaded program.
Signed-off-by: Florian Forster <octo@collectd.org>
This fixes problems with version 7.21.2 (and later) of libcurl that are due to
collectd being a multi-threaded program.
Signed-off-by: Florian Forster <octo@collectd.org>
src/meta_data.c: Free a leaking mutex.
This problem primarily manifested on FreeBSD but may well effect other
systems as well.
Thanks to Tomas Krasnican for reporting this problem.
Signed-off-by: Florian Forster <octo@collectd.org>
This problem primarily manifested on FreeBSD but may well effect other
systems as well.
Thanks to Tomas Krasnican for reporting this problem.
Signed-off-by: Florian Forster <octo@collectd.org>
df plugin: Improve error message.
contrib/migrate-4-5.px: "df" does not have COUNTER DSTs.
contrib/migrate-4-5.px: Remove useless "OutDir" option.
notify_desktop plugin: Add compatibility code for libnotify 0.7.
The current code in src/notify_desktop.c is not compatible with the new
libnotify 0.7 API
This:
notification = notify_notification_new (summary, n->message, NULL, NULL);
Should now be:
notification = notify_notification_new (summary, n->message, NULL;
As in, one argument less for notify_notification_new.
But we can't just remove it or it'll break compability with libnotify
0.4.x and 0.5.x.
This piece of code sets dummy NOTIFY_CHECK_VERSION for libnotify-0.4.x,
because NOTIFY_CHECK_VERSION was added only in 0.5.x:
#ifndef NOTIFY_CHECK_VERSION
#define NOTIFY_CHECK_VERSION(x,y,z) 0
#endif
Then we can freely use NOTIFY_CHECK_VERSION, and it will work with all
of 0.4, 0.5 and 0.7 series:
#if NOTIFY_CHECK_VERSION (0, 7, 0)
do something cool
#endif
I'm attaching the working patch. It's been tested with all of the
mentioned versions, as well as it's in active use at Gentoo Linux.
Thanks, Samuli
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
The current code in src/notify_desktop.c is not compatible with the new
libnotify 0.7 API
This:
notification = notify_notification_new (summary, n->message, NULL, NULL);
Should now be:
notification = notify_notification_new (summary, n->message, NULL;
As in, one argument less for notify_notification_new.
But we can't just remove it or it'll break compability with libnotify
0.4.x and 0.5.x.
This piece of code sets dummy NOTIFY_CHECK_VERSION for libnotify-0.4.x,
because NOTIFY_CHECK_VERSION was added only in 0.5.x:
#ifndef NOTIFY_CHECK_VERSION
#define NOTIFY_CHECK_VERSION(x,y,z) 0
#endif
Then we can freely use NOTIFY_CHECK_VERSION, and it will work with all
of 0.4, 0.5 and 0.7 series:
#if NOTIFY_CHECK_VERSION (0, 7, 0)
do something cool
#endif
I'm attaching the working patch. It's been tested with all of the
mentioned versions, as well as it's in active use at Gentoo Linux.
Thanks, Samuli
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
src/collectd.h: Define "_Bool" to "int" if the C compiler doesn't know the type.
ChangeLog: Add release date.
Merge branch 'collectd-4.10' into collectd-5.0
Conflicts:
ChangeLog
src/libvirt.c
src/plugin.c
src/plugin.h
version-gen.sh
Conflicts:
ChangeLog
src/libvirt.c
src/plugin.c
src/plugin.h
version-gen.sh
Bump version to 4.10.3; Update ChangeLog.
Merge branch 'collectd-4.9' into collectd-4.10
Conflicts:
ChangeLog
version-gen.sh
Conflicts:
ChangeLog
version-gen.sh
Bump version to 4.9.5; Update ChangeLog.
libvirt plugin: Correctly check the status code of virDomainGetVcpus().
The status code is less than zero on failure and the number of vCPUs
otherwise. Thanks to "JLPC" for pointing this problem out.
The status code is less than zero on failure and the number of vCPUs
otherwise. Thanks to "JLPC" for pointing this problem out.
Fix compilation error with plugin_register_shutdown
Compiling collectd-4.10.2 on an OpenSuSE 11.3 system causes the
following error:
snmp.c: In function ‘module_register’:
snmp.c:1620:3: error: passing argument 1 of ‘plugin_register_shutdown’ discards qualifiers from pointer target type
plugin.h:275:5: note: expected ‘char *’ but argument is of type ‘const char *’
Convert plugin_register_shutdown's name argument from 'char *' to
'const char *' in order to match the other plugin_register_*
functions.
Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Compiling collectd-4.10.2 on an OpenSuSE 11.3 system causes the
following error:
snmp.c: In function ‘module_register’:
snmp.c:1620:3: error: passing argument 1 of ‘plugin_register_shutdown’ discards qualifiers from pointer target type
plugin.h:275:5: note: expected ‘char *’ but argument is of type ‘const char *’
Convert plugin_register_shutdown's name argument from 'char *' to
'const char *' in order to match the other plugin_register_*
functions.
Signed-off-by: Bruno Prémont <bonbons@linux-vserver.org>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Merge branch 'collectd-4.10' into collectd-5.0
Merge branch 'collectd-4.9' into collectd-4.10
dispatch proper values in Python write plugin
Fixes the Python write callback so the appropriate value is dispatched to
Python. Previously, the code only looked at the first element of a data set
to determine which value type (GAUGE, COUNTER, etc) to dispatch. If your data
set consisted of multiple values of different types, then the Python write
plugin was receiving bad values for the elements at position n > 0 whose type
was not the same as that at position 0.
Fixes the Python write callback so the appropriate value is dispatched to
Python. Previously, the code only looked at the first element of a data set
to determine which value type (GAUGE, COUNTER, etc) to dispatch. If your data
set consisted of multiple values of different types, then the Python write
plugin was receiving bad values for the elements at position n > 0 whose type
was not the same as that at position 0.
Removed bogus checking in ut_config.
Since threshold is a plugin, the main config block (<Plugin "threshold">)
cannot contain only one keyword (as was mandatory in previous versions),
so checking must be removed.
Signed-off-by: Andres J. Diaz <ajdiaz@connectical.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Since threshold is a plugin, the main config block (<Plugin "threshold">)
cannot contain only one keyword (as was mandatory in previous versions),
so checking must be removed.
Signed-off-by: Andres J. Diaz <ajdiaz@connectical.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Fix buffer length in parse_identifier_vl function.
In parse_identifier_vl function (common.c), the value passed to
sstrncpy as buffer length is the sizeof a char pointer, which
is 4bytes for 32bit arch and 8bytes for 64 bit ones.
This patch fix the length and truncate the buffer to the same size as
destination buffer.
Signed-off-by: Andres J. Diaz <ajdiaz@connectical.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
In parse_identifier_vl function (common.c), the value passed to
sstrncpy as buffer length is the sizeof a char pointer, which
is 4bytes for 32bit arch and 8bytes for 64 bit ones.
This patch fix the length and truncate the buffer to the same size as
destination buffer.
Signed-off-by: Andres J. Diaz <ajdiaz@connectical.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
processes plugin: Call kvm_close() after kvm_geterr().
collectd.conf(5): Mention MySQL privileges required for repl stats.
collectd.conf(5): Be more verbose about how to access a notification daemon.
filter_chain: Use a complaint to report plugin_write()'s ENOENT error.
In most cases this is a permanent error, so using the complain mechanism
avoids spamming the logs.
In most cases this is a permanent error, so using the complain mechanism
avoids spamming the logs.
src/plugin.c: Print a more verbose error message if lt_dlopen() fails.
Since the Debian package doesn't depend on the libraries used by the
collectd plugins, some plugins may fail to load. ltdl reports this with
the very confusing error message "file not found". Since the plugin is
in fact available, many users don't realize a dependency is missing and
assume collectd is looking in the wrong directory -- and they are hardly
to blame for this.
This commit introduces a lengthy error message which hopefully points
users into the right direction.
Since the Debian package doesn't depend on the libraries used by the
collectd plugins, some plugins may fail to load. ltdl reports this with
the very confusing error message "file not found". Since the plugin is
in fact available, many users don't realize a dependency is missing and
assume collectd is looking in the wrong directory -- and they are hardly
to blame for this.
This commit introduces a lengthy error message which hopefully points
users into the right direction.
Merge branch 'collectd-4.10' into collectd-5.0
Merge branch 'collectd-4.9' into collectd-4.10
exec plugin: Remove useless preprocessor stuff.
varnish plugin: Use a DERIVE type for allocated and free bytes.
Each event is counted, so storing a GAUGE is not the right thing to do.
Thanks to Renaud Chaput for pointing this out.
N.B.: The total amount of allocated memory is tracked by
"bytes-outstanding" for many storage backends.
Each event is counted, so storing a GAUGE is not the right thing to do.
Thanks to Renaud Chaput for pointing this out.
N.B.: The total amount of allocated memory is tracked by
"bytes-outstanding" for many storage backends.
src/collectd.conf.in: Remove the "TranslateDevicename" option from the "hddtemp" plugin.
src/common.c: Include <netinet/in.h> before <arpa/inet.h>.
teamspeak2 plugin: Include <netinet/in.h> before <arpa/inet.h>.
configure.in: Using sysctl(3) for swap statistics is only possible under Mac OS X.
configure.in: Fix (de)activation of the Swap plugin for OpenBSD.
ntpd plugin: Report failures of "ntpd_do_query" as *errors*, not debug messages.
MySQL plugin: Update copyright header.
src/configfile.[ch]: Update copyright header.
src/configfile.c: cf_util_get_port_number: Gracefully handle number arguments as well.
Why force the user into using strings when it's not strictly
necessary..?
Why force the user into using strings when it's not strictly
necessary..?
src/utils_threshold.c: Fix creation of percentage notifications.
Joey Hess has reported a problem when creating notifications from
percentage thresholds. Because the (percentage) minimum value is
compared to the (raw) DS value, the following message is possible:
Message: Host XXX, plugin df type df (instance root): Data source
"free" is currently 1773072384.000000. That is above the warning
threshold of nan%.
A new section will handle this case correctly. In the inverted case, the
problem should not exist.
Joey Hess has reported a problem when creating notifications from
percentage thresholds. Because the (percentage) minimum value is
compared to the (raw) DS value, the following message is possible:
Message: Host XXX, plugin df type df (instance root): Data source
"free" is currently 1773072384.000000. That is above the warning
threshold of nan%.
A new section will handle this case correctly. In the inverted case, the
problem should not exist.
src/plugin.c: Free allocated data if plugin_insert_read() fails.
src/plugin.c: Move the error-checking code up.
This way the error message is much closer to the check and we save one
level of indentation for the "good" code.
This way the error message is much closer to the check and we save one
level of indentation for the "good" code.
plugin.c: prevent re-adding read functions
When multiple LoadPlugin options are used with a plugin, the plugin is
only loaded once, however the plugin's read function is invoked
multiple times at every interval. This in turn causes undesired
redundant data to be sent to the write plugins.
This patch prevents a plugin's read function from being re-added to
the read_heap and read_list during plugin registration.
Signed-off-by: Blaise Tarr <blaise.tarr@gmail.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
When multiple LoadPlugin options are used with a plugin, the plugin is
only loaded once, however the plugin's read function is invoked
multiple times at every interval. This in turn causes undesired
redundant data to be sent to the write plugins.
This patch prevents a plugin's read function from being re-added to
the read_heap and read_list during plugin registration.
Signed-off-by: Blaise Tarr <blaise.tarr@gmail.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
configure.in: Unify status output.
libcollectdclient: Remove the "nonnull" attribute.
Some old versions of GCC don't know it and throw a warning.
Some old versions of GCC don't know it and throw a warning.
libcollectdclient: Remove lcc_strdup().
We use XSI anyway, so why go there?
We use XSI anyway, so why go there?
src/utils_dns.c: Make IPv6 support optional.
dns plugin: Disable the plugin if <pcap-bpf.h> is not available.
Apparently the AIX version of PCAP doesn't have this header file and is
thus missing a required struct definition.
Apparently the AIX version of PCAP doesn't have this header file and is
thus missing a required struct definition.
src/types.db: Clearly mark the legacy types.
The legacy MySQL types are reintroduced because they are required by the
v5 upgrade target.
The legacy MySQL types are reintroduced because they are required by the
v5 upgrade target.
src/types_list.c: Ignore lines which begin with a hash sign.
ChangeLog: Document the changes to the "modbus" plugin.
modbus plugin: Relicense under the LGPLv2.1.
contrib/migrate-4-5.px: Add options parsing and help output.
Merge branch 'collectd-4.10'
Merge branch 'collectd-4.9' into collectd-4.10
dns plugin: Include <pcap-bpf.h> if available.
curl_json plugin: Query the URL before trying to print it.
This resolved a segmentation fault.
This resolved a segmentation fault.
src/common.c: parse_identifier_vl: Don't pass NULL to sstrncpy().
swap plugin: Fix a comment.
src/collectd{ctl,-nagios}.c: Remove the standards-flags again.
Solaris and FreeBSD have problems with it for different reasons. The
huge NAN-block from "collectd.h" has been imported again, instead.
Solaris and FreeBSD have problems with it for different reasons. The
huge NAN-block from "collectd.h" has been imported again, instead.
zfs_arc plugin: Remove unused variables.
Build system: Check whether X/Open flags are required for strptime.
This hopefully resolved problems under Solaris, where X/Open compatibility
pulls in a long list of other standards you have to stick to. For example,
we don't want to force the user to use a C99 compiler.
This hopefully resolved problems under Solaris, where X/Open compatibility
pulls in a long list of other standards you have to stick to. For example,
we don't want to force the user to use a C99 compiler.
swap plugin: Deactivate the kstat-based code.
As discussed with Aurélien Reynaud on the mailing list.
As discussed with Aurélien Reynaud on the mailing list.
java plugin: Improve an error message.
src/configfile.c: Enable the "Globals" flag for the Perl and Python plugin.
This special handling hopefully saves the average user from ever getting
in contact with the "Globals" option.
This special handling hopefully saves the average user from ever getting
in contact with the "Globals" option.
README: Document the version of libmodbus used and update URL.
modbus plugin: Restore compatibility to libmodbus 2.0.3.
This is the current "stable" version.
This is the current "stable" version.
modbus plugin: Add support for libmodbus version 2.9.2.
This is the current "unstable" release. Hopefully the API won't
change too much in the future. All in all this new interface is
much nicer. The stable ("legacy") version of libmodbus is still
supported through preprocessor macros.
This is the current "unstable" release. Hopefully the API won't
change too much in the future. All in all this new interface is
much nicer. The stable ("legacy") version of libmodbus is still
supported through preprocessor macros.
modbus plugin: Restore compatibility to libmodbus 2.0.3.
This is the current "stable" version.
This is the current "stable" version.
src/utils_rrdcreate.c: Convert vl->interval to seconds when creating RRD files.
curl_json plugin: Fix handling of numbers which are returned as strings.
Also, the string handling function has been simplified. The obscure and
hardly documented sub-request for incomplete keys feature has been
removed.
Also, the string handling function has been simplified. The obscure and
hardly documented sub-request for incomplete keys feature has been
removed.
curl_json plugin: Use "parse_value" to handle JSON numbers.
curl_json plugin: Use the global config helper functions.
curl_json plugin: Fix handling of arrays.
contrib/migrate-4-5.px: Add a first version of the migration script.
unixsock plugin: Remove the "GETTHRESHOLD" command.
Bump version to 5.0.0; Update ChangeLog.
swap plugin: Complain if physical and virtual reporting have both been deactivated.
swap plugin: Implement virtual / physical reporting on Solaris.
Merge branch 'collectd-4.10'
Merge branch 'collectd-4.9' into collectd-4.10
Various plugins: Convert more plugins to use "derive" instead of "counter".
Various plugins: Change various plugins to use "derive" internally.
This is just a beginning, other plugins will have to be changed, too.
This is just a beginning, other plugins will have to be changed, too.
src/common.c: parse_value: Fix assignment of derive and absolute values.
src/types.db: Rename the data sources of all types with only one DS to "value".
I'm not yet 100% sure what to do with the types with two or more data sources.
I'm not yet 100% sure what to do with the types with two or more data sources.
src/types.db: Replace all COUNTER data sources with DERIVE.
All the standard DERIVE data sources have a minimum value of zero and
no maximum value.
All the standard DERIVE data sources have a minimum value of zero and
no maximum value.
threshold plugin: Implement dispatching "missing" notifications.
src/common.h: NOTIFICATION_INIT_VL: Remove the "ds" argument.
Since "type" is now included in "value_list_t", too, we don't need a
"data_set_t" to initialize the notification.
Since "type" is now included in "value_list_t", too, we don't need a
"data_set_t" to initialize the notification.
src/plugin.[ch]: Pass the user data to registered "missing" functions.
threshold plugin: Move the threshold checking code into a plugin.
configure.in: Fix a typo in an AC_ARG_WITH description.
ChangeLog: Add missing line (copynpaste error).
Merge branch 'collectd-4.10'
Conflicts:
src/utils_rrdcreate.c
Conflicts:
src/utils_rrdcreate.c