configure, src/Makefile: Check for nanosleep() in libposix4 as well.
On, e.g., Solaris 2.6, nanosleep() is only available from that library.
Thanks to Vincent McIntyre for reporting this and providing an initial patch.
On, e.g., Solaris 2.6, nanosleep() is only available from that library.
Thanks to Vincent McIntyre for reporting this and providing an initial patch.
README: Fix typo.
README: Fix typo.
snmp plugin: Fix a format string.
Exec plugin: Update copyright header.
configfile: cf_read_dir: Don't abort reading a directory when reading one file fails.
Processes plugin: Fix a minor typo.
Exec plugin: Add a missing folding marker.
Exec plugin: Set the "noreturn" attribute on the "exec_child" function.
Exec plugin: Reset the "PL_RUNNING" if "fork_child()" fails.
libiptc: avoid strict-aliasing warnings
libiptc: avoid strict-aliasing warnings
In file included from libiptc/libip4tc.c:117:0:
libiptc/libiptc.c: In function ‘__iptcc_p_del_policy’:
libiptc/libiptc.c:826:4: warning: dereferencing type-punned pointer will break
strict-aliasing rules
libiptc/libiptc.c: In function ‘iptc_get_target’:
libiptc/libiptc.c:1650:4: warning: dereferencing type-punned pointer will break
strict-aliasing rules
libiptc/libip4tc.c: In function ‘dump_entry’:
libiptc/libip4tc.c:157:3: warning: dereferencing type-punned pointer will break
strict-aliasing rules
CC libiptc/libip6tc.lo
In file included from libiptc/libip6tc.c:112:0:
libiptc/libiptc.c: In function ‘__iptcc_p_del_policy’:
libiptc/libiptc.c:826:4: warning: dereferencing type-punned pointer will break
strict-aliasing rules
libiptc/libiptc.c: In function ‘ip6tc_get_target’:
libiptc/libiptc.c:1650:4: warning: dereferencing type-punned pointer will break
strict-aliasing rules
libiptc/libip6tc.c: In function ‘dump_entry’:
libiptc/libip6tc.c:188:3: warning: dereferencing type-punned pointer will break
strict-aliasing rules
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
Rebased for collectd/src/owniptc: Alan Pevec <apevec@gmail.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
libiptc: avoid strict-aliasing warnings
In file included from libiptc/libip4tc.c:117:0:
libiptc/libiptc.c: In function ‘__iptcc_p_del_policy’:
libiptc/libiptc.c:826:4: warning: dereferencing type-punned pointer will break
strict-aliasing rules
libiptc/libiptc.c: In function ‘iptc_get_target’:
libiptc/libiptc.c:1650:4: warning: dereferencing type-punned pointer will break
strict-aliasing rules
libiptc/libip4tc.c: In function ‘dump_entry’:
libiptc/libip4tc.c:157:3: warning: dereferencing type-punned pointer will break
strict-aliasing rules
CC libiptc/libip6tc.lo
In file included from libiptc/libip6tc.c:112:0:
libiptc/libiptc.c: In function ‘__iptcc_p_del_policy’:
libiptc/libiptc.c:826:4: warning: dereferencing type-punned pointer will break
strict-aliasing rules
libiptc/libiptc.c: In function ‘ip6tc_get_target’:
libiptc/libiptc.c:1650:4: warning: dereferencing type-punned pointer will break
strict-aliasing rules
libiptc/libip6tc.c: In function ‘dump_entry’:
libiptc/libip6tc.c:188:3: warning: dereferencing type-punned pointer will break
strict-aliasing rules
Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
Rebased for collectd/src/owniptc: Alan Pevec <apevec@gmail.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Merge remote branch 'origin/collectd-4.8' into collectd-4.8
configure.in: Check for "htonll".
The first patch adds support to check if the htonl and htonll functions
(which are used in AIX port) are available in configure. Until now the
AIX port used these functions without perform any existence test.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
The first patch adds support to check if the htonl and htonll functions
(which are used in AIX port) are available in configure. Until now the
AIX port used these functions without perform any existence test.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
memcached plugin: Add hack for AIX compatibility.
The second one port memcached plugin to AIX. Since AIX don't have
MSG_DONTWAIT flag support, we use MSG_NONBLOCK... and we hope to work
fine ever :)
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
The second one port memcached plugin to AIX. Since AIX don't have
MSG_DONTWAIT flag support, we use MSG_NONBLOCK... and we hope to work
fine ever :)
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
oracle plugin: Fix semantics of OCIAttrGet.
Apparently it returns success if it could fetch the parameter value and
doesn't interpret the value itself. So returning NULL when querying for
OCI_ATTR_SERVER_STATUS does not result in an error. Handle this as a
lost connection.
Thanks to Sven for pointing this out :)
Apparently it returns success if it could fetch the parameter value and
doesn't interpret the value itself. So returning NULL when querying for
OCI_ATTR_SERVER_STATUS does not result in an error. Handle this as a
lost connection.
Thanks to Sven for pointing this out :)
.mailmap: Added Rodolphe Quiedeville <rquiedeville@bearstech.com>.
His name was mis-spelled in one commit as Rodolphe Quiedeville*l*.
His name was mis-spelled in one commit as Rodolphe Quiedeville*l*.
debian/: Removed ancient Debian package files.
You might want to look at git://git.tokkee.org/pkg-collectd.git instead.
You might want to look at git://git.tokkee.org/pkg-collectd.git instead.
configure.in: Fix three small typos.
Build system: Put Java class files into a .jar file.
Hi,
I was wondering why the java plugin api class files are published under
share/collectd/java. Ideally, a java-plugin.jar file containing all the class
files should get published rather than the individual class files.
Additionally, the jar files IMO should get published to the lib directory where
the so files are sitting rather than the share directory.
Same holds true for jmx class files as well (probably jmx.jar?).
I could work on this if everyone is okay with it.
Regards
Amit
Hi,
I was wondering why the java plugin api class files are published under
share/collectd/java. Ideally, a java-plugin.jar file containing all the class
files should get published rather than the individual class files.
Additionally, the jar files IMO should get published to the lib directory where
the so files are sitting rather than the share directory.
Same holds true for jmx class files as well (probably jmx.jar?).
I could work on this if everyone is okay with it.
Regards
Amit
src/utils_cmd_listval.c: Fix a memory leak.
Thanks to Peter Warasin for figuring this out. His "garbage collector" patch
may replace this solution in future versions of collectd.
Thanks to Peter Warasin for figuring this out. His "garbage collector" patch
may replace this solution in future versions of collectd.
Bugfix: correctly handle spurious wakeups in pthread_cond_timedwait
This fixes problems storing data in rrd files on NetBSD 5.0 with more
than one CPU.
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
This fixes problems storing data in rrd files on NetBSD 5.0 with more
than one CPU.
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
src/utils_format_json.c: Use "isfinite" rather than "isinf".
Makes it a bit easier to read.
Makes it a bit easier to read.
src/collectd.h: Add fallback implementations of "isfinite" and "isinf".
utils_format_json: serialize nan and inf as null, as per JSON spec
I'm deserializing JSON output from the write_http plugin using ruby-yajl.
yajl was puking on the literal value nan encoded in the output.
[
{
"plugin": "memcached",
"interval": 10,
"host": "myhost",
"values": [
nan,
5
],
"time": 1265239180,
"plugin_instance": "",
"type_instance": "",
"type": "ps_count"
}
]
After some research, ECMA-262 15.12.3 says nan and infinite numbers
aren't representable in JSON and should be serialized as the string
null. I figure any strictly-compliant JSON parser will fail on parsing
JSON data containing nans as emitted by collectd's utils_format_json
routines.
This patch makes collectd's JSON output compliant in the case of
infinite or nan gauge values.
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
I'm deserializing JSON output from the write_http plugin using ruby-yajl.
yajl was puking on the literal value nan encoded in the output.
[
{
"plugin": "memcached",
"interval": 10,
"host": "myhost",
"values": [
nan,
5
],
"time": 1265239180,
"plugin_instance": "",
"type_instance": "",
"type": "ps_count"
}
]
After some research, ECMA-262 15.12.3 says nan and infinite numbers
aren't representable in JSON and should be serialized as the string
null. I figure any strictly-compliant JSON parser will fail on parsing
JSON data containing nans as emitted by collectd's utils_format_json
routines.
This patch makes collectd's JSON output compliant in the case of
infinite or nan gauge values.
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
ping plugin: Improved some error messages.
collectd{-perl,.conf}(5), {my,postgre}sql plugins: Fixed some typos.
Thanks to lintian(1) for catching (some of) those! :-)
Thanks to lintian(1) for catching (some of) those! :-)
apache plugin: Fix collection of the "apache_connections" value with Apache 2.*.
Thanks to Gary (bug tracker) for pointing this out :)
Thanks to Gary (bug tracker) for pointing this out :)
contrib/collection.cgi: Added ability to hide specified types.
It is useful when you don't want to see many graphs. How to use the patch:
apply it to collection.cgi and add lines with keyword ,,dontshowtype'' to
/etc/collectd/collection.conf:
dontshowtype: "if_errors"
dontshowtype: "if_packets"
Then you will see only if_octets types in "interface" plugin page.
Via Debian bug #566199.
It is useful when you don't want to see many graphs. How to use the patch:
apply it to collection.cgi and add lines with keyword ,,dontshowtype'' to
/etc/collectd/collection.conf:
dontshowtype: "if_errors"
dontshowtype: "if_packets"
Then you will see only if_octets types in "interface" plugin page.
Via Debian bug #566199.
src/filter_chain.c: Make info-message more verbose.
Use Curl AnyAuth (digest+basic) instead of just digest
Merge commit 'tokkee/sh/collectd-4.8' into collectd-4.8
exec plugin: Improved some error messages.
contrib/exec-munin.px: Add GPLv2 header.
ChangeLog: Updated for version 4.8.3.
Merge commit 'tokkee/sh/collectd-4.8' into collectd-4.8
collectd.conf(5): Rephrase a weird sentence in the cURL-JSON documentation.
collectd.conf(5): Remove trailing whitespace.
types.db(5): Mention the types "ABSOLUTE" and "DERIVE" as well.
Merge branch 'collectd-4.7' into collectd-4.8
rrdtool plugin: Correctly initialize the ->random_variation member.
This lead to huge negative values in that member, causing values to be only
written to upon exit. D'oh!
This lead to huge negative values in that member, causing values to be only
written to upon exit. D'oh!
contrib/snmp-probe-host.px: Implemented the “--exclude” option.
collectd-snmp(5): Comma fixes.
Bumped version to 4.8.2; Updated ChangeLog.
Merge branch 'collectd-4.7' into collectd-4.8
Network plugin license change with Aman Gupta's permission.
Conflicts:
ChangeLog
version-gen.sh
Network plugin license change with Aman Gupta's permission.
Conflicts:
ChangeLog
version-gen.sh
Bumped version to 4.7.5; Updated ChangeLog.
src/plugin.c: plugin_log: Print to stderr if no log plugin has been loaded.
network plugin: Change the license to LGPL 2.1.
This is done with Amit Gupta's consent. He did write changes for later versions
of the plugin.
This is done with Amit Gupta's consent. He did write changes for later versions
of the plugin.
oracle plugin: Check the connection status and reconnect if required.
Merge branch 'collectd-4.7' into collectd-4.8
memory plugin: Fixed handling of >4G of memory on Mac OS X.
contrib/collection3: Add Regexp::Common to the README.
configure: Fixed copy&paste error in --with-libupsclient.
ChangeLog: Fix a typo.
Merge branch 'collectd-4.7' into collectd-4.8
src/utils_cmd_listval.c: Free memory returned by `uc_get_names'.
We've run into a memory leak in collectd, triggered by usage of 'listval'
via the unixsock plugin.
When making a 'listval' call, utils_cmd_listval.c:handle_listval() calls
utils_cache.c:uc_get_names() to retrieve a list of active value names from the
internal cache. uc_get_names() uses realloc() to allocate memory in which to
store the list, and returns pointers.
handle_listval() does not perform a free() on the returned memory. Each time
listval is called, some memory is leaked. handle_getval() does not suffer from
the same problem - a free() is called in that case.
We've run into a memory leak in collectd, triggered by usage of 'listval'
via the unixsock plugin.
When making a 'listval' call, utils_cmd_listval.c:handle_listval() calls
utils_cache.c:uc_get_names() to retrieve a list of active value names from the
internal cache. uc_get_names() uses realloc() to allocate memory in which to
store the list, and returns pointers.
handle_listval() does not perform a free() on the returned memory. Each time
listval is called, some memory is leaked. handle_getval() does not suffer from
the same problem - a free() is called in that case.
contrib/examples/MyPlugin.pm: Updated to new interface.
protocols plugins: Fixed a typo in an error message.
Thanks to lintian(1) for finding that :-)
Thanks to lintian(1) for finding that :-)
snmp plugin: Rename a variable (missed during merge).
Merge branch 'collectd-4.7' into collectd-4.8
Conflicts:
src/snmp.c
Conflicts:
src/snmp.c
contrib/snmp-data.conf: Add support for Mikrotik RouterBoards.
snmp plugin: Fix handling of strings with control characters.
If a byte of a string has a value <32, the string is printed as a
hex-string. This fixes issues with some devices returning MAC addresses
as "strings".
If a byte of a string has a value <32, the string is printed as a
hex-string. This fixes issues with some devices returning MAC addresses
as "strings".
snmp plugin: Fix handling of negative values.
src/Makefile: Support parallel builds when creating the manpages.
A temporary file name is used when creating the manpages. So far, a static
file name had been used for that, thus causing race conditions. Now, a unique
suffix (PID) is used to fix that.
Thanks to BC^bd for reporting that on IRC!
A temporary file name is used when creating the manpages. So far, a static
file name had been used for that, thus causing race conditions. Now, a unique
suffix (PID) is used to fix that.
Thanks to BC^bd for reporting that on IRC!
rrdcached plugin: Work around a bug in RRDtool 1.4rc2.
rrd_client.h in that pre-release checked for HAVE_CONFIG_H and would then try
to include rrd_config.h, which, obviously, is not available in collectd.
rrd_client.h in that pre-release checked for HAVE_CONFIG_H and would then try
to include rrd_config.h, which, obviously, is not available in collectd.
GenericJMX plugin: Close and re-open the connection upon I/O-errors.
Merge branch 'collectd-4.7' into collectd-4.8
Conflicts:
.gitignore
Conflicts:
.gitignore
contrib/collectd_unixsock.py: Support all plain text protocol commands
Also rename class from Collect to Collectd and improve output when run
as standalone script.
Also rename class from Collect to Collectd and improve output when run
as standalone script.
contrib/collectd_unixsock.py: Follow Python PEP-8 syntax requirements.
Also remove comment which seems to refer to a file outside of the
collectd project.
Also remove comment which seems to refer to a file outside of the
collectd project.
gitignore: Ignore compiled python files
Replace dashes with underscores in python modules
It's not possible to import python modules with dashes in the name.
See http://bit.ly/2t7fcy for more information.
It's not possible to import python modules with dashes in the name.
See http://bit.ly/2t7fcy for more information.
Ignore more java bindings classes
Merge branch 'collectd-4.7' into collectd-4.8
gmond plugin: Fixed a typo.
For some reason, the value_t members "derive" and "absolute" had been spelled
in all capital letters, obviously resulting in a build error.
For some reason, the value_t members "derive" and "absolute" had been spelled
in all capital letters, obviously resulting in a build error.
collectd.conf: Added the "madwifi" and "match_empty_counter" plugins.
README: Added missing prerequisites.
configure.in: Don't use “find -L”.
Apparently the “-L” is a (new) GNU extension. :/
Apparently the “-L” is a (new) GNU extension. :/
collectd-snmp(5): Fix a typo.
Thanks to mspo.
Thanks to mspo.
ChangeLog: Fix a stupid typo.
Bumped version to 4.8.1; Updated ChangeLog.
Merge branch 'collectd-4.7' into collectd-4.8
Conflicts:
ChangeLog
version-gen.sh
Conflicts:
ChangeLog
version-gen.sh
Bumped version to 4.7.4; Updated ChangeLog.
Merge branch 'collectd-4.7' into collectd-4.8
Conflicts:
README
Conflicts:
README
README: Fix order of the curl_json plugin in the list.
README: Fix order of the curl plugin in the list.
df plugin: Fix a typo.
Merge branch 'collectd-4.7' into collectd-4.8
src/types.db: Replace spaces with tabs.
unixsock plugin: Fix a (well hidden) race condition.
Within the client handling thread, fdopen is called twice on the file
descriptor passed to the thread. Later those file handles are closed like:
fclose (fhin);
fclose (fhout);
This is a race condition, because the first call to fclose will close the file
descriptor. The second call to fclose will try the same. Usually, it would fail
silently and all is well. On a busy machine, however, another thread may just
have opened a file or accepted a socket. In that case an arbitrary file
descriptor is closed. If the file descriptor is opened yet again fast enough,
data may even end up in a totally wrong location.
As a work-around the file descriptor is not dup'ed so each fdopen operates on
its own file descriptor. As an alternative the "r+" mode and a single file
handle may be suitable, too.
Many thanks to Sven Trenkel for pointing me into the right directioin :)
Within the client handling thread, fdopen is called twice on the file
descriptor passed to the thread. Later those file handles are closed like:
fclose (fhin);
fclose (fhout);
This is a race condition, because the first call to fclose will close the file
descriptor. The second call to fclose will try the same. Usually, it would fail
silently and all is well. On a busy machine, however, another thread may just
have opened a file or accepted a socket. In that case an arbitrary file
descriptor is closed. If the file descriptor is opened yet again fast enough,
data may even end up in a totally wrong location.
As a work-around the file descriptor is not dup'ed so each fdopen operates on
its own file descriptor. As an alternative the "r+" mode and a single file
handle may be suitable, too.
Many thanks to Sven Trenkel for pointing me into the right directioin :)
libiptc: Comment out two unused static functions.
Thanks to Sven Trenkel for noticing.
Thanks to Sven Trenkel for noticing.
README: Update the URL for libyajl.
processes plugin: Fix handling of Linux 2.4.
Hi Florian et al
Thanks for the reply, but we detect a minor bug in the previous patch
due to kernel 2.4
The correct patch is attached. The bug is related with kernels 2.4,
where task/ directory do not exists and ps_read_task return -1, which is
catched and raise an error (breaking the ps_read_process function), so a
NaN is dispatched istead of values (number of process:1, number of
threads :1).
Sorry for the inconvenience :(
Regards,
Andres
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
Hi Florian et al
Thanks for the reply, but we detect a minor bug in the previous patch
due to kernel 2.4
The correct patch is attached. The bug is related with kernels 2.4,
where task/ directory do not exists and ps_read_task return -1, which is
catched and raise an error (breaking the ps_read_process function), so a
NaN is dispatched istead of values (number of process:1, number of
threads :1).
Sorry for the inconvenience :(
Regards,
Andres
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
src/collectd.conf.in: Fix some inconsistencies.
Mostly left-overs from renaming plugins. Thanks to Mirko Buffoni for
noticing :)
Mostly left-overs from renaming plugins. Thanks to Mirko Buffoni for
noticing :)
Merge branch 'collectd-4.7' into collectd-4.8
perl plugin: Declare the “environ” variable.
processes plugin: Case argument of “isdigit” to int.
On some platforms passing a char there causes problems :/
On some platforms passing a char there causes problems :/
processes plugin: Remove unnecessary call of realloc(3).
Hi Florian (et al)
> you're right, the (re-)allocation of the memory can probably be avoided
> if the function is turned into one with the following prototype:
> -- 8< --
> static int *ps_read_tasks (int pid,
> unsigned long *ret_num_proc,
> unsigned long *ret_num_lwp);
> -- >8 --
Mmm, why not something like: "static int ps_read_task(pid)"?
This returns the number of task for pid passed as argument.
(AFAIK the function only return the number ot threads), why
we need the ret_num_proc and the ret_num_lwp parameters?
My proposal is attached (code is always cleaner than explanations :P)
Regards,
Andres
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Hi Florian (et al)
> you're right, the (re-)allocation of the memory can probably be avoided
> if the function is turned into one with the following prototype:
> -- 8< --
> static int *ps_read_tasks (int pid,
> unsigned long *ret_num_proc,
> unsigned long *ret_num_lwp);
> -- >8 --
Mmm, why not something like: "static int ps_read_task(pid)"?
This returns the number of task for pid passed as argument.
(AFAIK the function only return the number ot threads), why
we need the ret_num_proc and the ret_num_lwp parameters?
My proposal is attached (code is always cleaner than explanations :P)
Regards,
Andres
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Merge branch 'collectd-4.7' into collectd-4.8
Build system: Check for “libiptc/libip6tc.h” and “linux/netfilter/x_tables.h”, too.
Apparently “linux/netfilter/x_tables.h” is not available with older
kernels which leads to build fails there:
-- 8< --
In file included from libiptc.c:47,
from libip4tc.c:136:
xtables.h:24:38: linux/netfilter/x_tables.h: No such file or directory
-- >8 --
Apparently “linux/netfilter/x_tables.h” is not available with older
kernels which leads to build fails there:
-- 8< --
In file included from libiptc.c:47,
from libip4tc.c:136:
xtables.h:24:38: linux/netfilter/x_tables.h: No such file or directory
-- >8 --
Merge branch 'collectd-4.7' into collectd-4.8
src/owniptc/Makefile.am: Don't search KERNEL_DIR for headers.
The iptc library is currenly only enabled, if the required headers where
found without “-I${KERNEL_DIR}”. Adding it to the CFLAGS when building
the shipped version of libiptc just breaks things, for example on
“collectd-master-amd64-linux-2.6”:
Linux hotdamn 2.6.9-42.ELsmp #1 SMP Tue Aug 15 10:35:26 BST 2006 x86_64 x86_64 x86_64 GNU/Linux
The iptc library is currenly only enabled, if the required headers where
found without “-I${KERNEL_DIR}”. Adding it to the CFLAGS when building
the shipped version of libiptc just breaks things, for example on
“collectd-master-amd64-linux-2.6”:
Linux hotdamn 2.6.9-42.ELsmp #1 SMP Tue Aug 15 10:35:26 BST 2006 x86_64 x86_64 x86_64 GNU/Linux