Florian Forster [Wed, 9 Feb 2011 06:28:03 +0000 (07:28 +0100)]
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.
Florian Forster [Thu, 13 Jan 2011 07:57:24 +0000 (08:57 +0100)]
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.
Aurelien Reynaud [Sat, 19 Jun 2010 18:03:52 +0000 (20:03 +0200)]
Fix errno thread-safety under AIX
Unlike Linux or Solaris, errno under AIX is not thread-safe by
default.
This patch sets _THREAD_SAFE_ERRNO when AIX is detected in order to
force the thread-safe implementation of errno. Without this, calls
like stat() in the rrdtool plugin fail with errno incorrectly set,
leading to the inability to create previously absent rrd files.
Maybe _THREAD_SAFE should be set instead, to prevent other possible
threads-related problems, but this is enough to scratch my current
itch...
Here is the relevant part of /usr/include/errno.h on AIX:
#if defined(_THREAD_SAFE) || defined(_THREAD_SAFE_ERRNO)
/*
* Per thread errno is provided by the threads provider. Both the extern
* int
* and the per thread value must be maintained by the threads library.
*/
extern int *_Errno( void );
#define errno (*_Errno())
When selecting multiple hosts in collection3's hosts list, and with some
plugins only (the ones that use a specific resource name such as memory
or tcpconns), the resulting graph list will be limited to one single
graph (instead of one per host).
This patch addresses this issue by modifying the name of the hash key
in the group_files_by_plugin_instance function, making it less prone
to name collisions by prefixing it by the host name.
Sebastian Harl [Mon, 23 Aug 2010 17:02:06 +0000 (19:02 +0200)]
src/utils_tail: Remove newline characters at the end of a line.
The tool is supposed to work line-based, so a) the newline character is
implicit and b) imho, does not belong to the string which is then further
processed.
Also, this allows '$' to match the end of a line when applying a regex to the
line, no matter if the REG_NEWLINE flag has been used when compiling the regex
or not.
Florian Forster [Mon, 16 Aug 2010 08:32:27 +0000 (10:32 +0200)]
src/utils_match.h: Fix a bug preventing derive values from being handled correctly.
Due to the bit-wise check, the value for derive (0x30) matches the check
for gauge (0x10), too. This commit fixes the behavior by assigning other
numeric values to the defines.
curl_json plugin: Use the "number" callback of libyajl.
The "integer" callback only works with "long"s, which are 32bit on
x86 and other 32bit architectures. The "number" callback gets the raw
string for us to parse ourselves – honoring the data source type in the
process.
The "integer" and "double" callbacks have been removed, since they are not
used if the "number" callback is present.
Florian Forster [Mon, 28 Jun 2010 08:01:39 +0000 (10:01 +0200)]
df plugin: Remove the complaint code again.
Calls to the plugin are delayed when an error is returned anyway, so it's
better to have an error message in addition to the "has failed, will suspend"
message generated in src/plugin.c.
Aurelien Reynaud [Wed, 12 May 2010 09:55:05 +0000 (11:55 +0200)]
snmp.c: compilation fixes for AIX
The C and C++ standards allows the character type char to be signed or
unsigned, depending on the platform and compiler. Most systems,
including x86 GNU/Linux and Microsoft Windows, use signed char, but
those based on PowerPC and ARM processors typically use unsigned char.
This patch fixes a "comparison is always true" warning on AIX (powerpc)
which leads the compilation to abort because of the -Werror flag.
I'm using collectd to monitor system and process parameters of our code under
test running on a cluster. The test processes communicate to collectd via the
unixsock plugin, but there was a small error in the client library which I had
to fix first.
The wire format of the putval command is missing a space behind the closing
double quote of the identifier. As I said, it is a small fix, but nevertheless
I attached the patch for client.c. The bug is present in 4.6 (that is the
version I'm using in production), but I fixed it against 4.10.0.
Florian Forster [Sat, 1 May 2010 07:53:12 +0000 (09:53 +0200)]
Build system: Check for "strtok_r" availability with "-Wall -Werror" when using GCC.
Previously, the check was done without "-Werror" which resulted in a
warning and success. When the daemon was later built with "-Werror" set,
that warning would result in an error and abort the build.
Thanks to Aurélien Reynaud for reporting the problem.
collectd-nagios.c: Output performance data with the "%f" format string.
Apparently the parser used by nagios is dumb as bread. Thanks to Lao Wai
for pointing this out. For more information, see:
<http://nagiosplug.sourceforge.net/developer-guidelines.html#AEN201>
Florian Forster [Wed, 31 Mar 2010 07:01:05 +0000 (09:01 +0200)]
collectd-perl(5): Fix the synopsis.
I think this is a left-over from a switch from "Collectd::Plugin" to
"Collectd::Plugins". Thanks to Denis Yagofarov for reporting the bug and
Michael Shigorin for relaying it to me.