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
Merge branch 'collectd-4.7' into collectd-4.8
README: Document the “--with-libiptc=shipped” option.
Build system: Further improve libiptc handling.
Only check for “iptc_handle_t” and “ip6tc_handle_t” if using a
system-wide version of libiptc. If we use the shipped version, we *know*
it provides these types.
Only check for “iptc_handle_t” and “ip6tc_handle_t” if using a
system-wide version of libiptc. If we use the shipped version, we *know*
it provides these types.
Merge branch 'collectd-4.7' into collectd-4.8
Build system: Improve detection of the iptc library.
When checking for the iptc headers and data types, the configure script
added the kernel directory to the CFLAGS. Later, when actually building
the iptables plugin, the CFLAGS were left untouched.
At least on Debian, the “real” kernel headers are not required – the
libc versions in /usr/include/linux are sufficient. The usage of
KERNEL_DIR has therefore been removed from the iptc checks.
In addition, an directory specified by “--with-libiptc=/path” is no
longer added to the global CFLAGS but rather to the iptables specific
CPPFLAGS.
Hopefully this resolved build problems on various platforms.
When checking for the iptc headers and data types, the configure script
added the kernel directory to the CFLAGS. Later, when actually building
the iptables plugin, the CFLAGS were left untouched.
At least on Debian, the “real” kernel headers are not required – the
libc versions in /usr/include/linux are sufficient. The usage of
KERNEL_DIR has therefore been removed from the iptc checks.
In addition, an directory specified by “--with-libiptc=/path” is no
longer added to the global CFLAGS but rather to the iptables specific
CPPFLAGS.
Hopefully this resolved build problems on various platforms.
contrib/collection3: skip host dirs without read access.
This patch prevents get_files_from_directory() from
failing when DataDir contains directories which we
don't have access to.
An example would be "lost+found" directories, on
ext2/ext3 filesystems, which belong to root and have
0700 filemode.
Signed-off-by: Marc Fournier <marc.fournier@camptocamp.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
This patch prevents get_files_from_directory() from
failing when DataDir contains directories which we
don't have access to.
An example would be "lost+found" directories, on
ext2/ext3 filesystems, which belong to root and have
0700 filemode.
Signed-off-by: Marc Fournier <marc.fournier@camptocamp.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
contrib/collection3: “Invokations” → “Invocations”.
D'oh!
D'oh!
contrib/collection3: Add a vertical label to the “java_memory” type.
contrib/collection3: Added the “invokations” type.
contrib/collection3: Use “{plugin_inst}/{type_inst}” for “{instance}”
… if both are present. Otherwise, use just the one that is available.
… if both are present. Otherwise, use just the one that is available.
contrib/collection3: Add support for the “threads” and “total_requests” types.
Merge branch 'collectd-4.7' into collectd-4.8
exec plugin: Clear the signal block mask before calling exec(2).
exec plugin: Avoid a warning when freeing meta data.
contrib/collection3: Suppress warnings about non-existent classes.
ChangeLog: Remove an excess newline.
src/collectd.conf.in: Fix entries of renamed plugins.
configure.in: Make it possible to force the shipped version of libiptc.
You can force the shipped version of libiptc using:
--with-libiptc=shipped
Apparently enough systems include broken versions of that library :/
You can force the shipped version of libiptc using:
--with-libiptc=shipped
Apparently enough systems include broken versions of that library :/
configure.in: Quote $CFLAGS when assigning to another variable.
ChangeLog: Document the “GETTHRESHOLD” command.
src/utils_threshold.c: Update copyright information.
dns, network, rrdtool plugins: Updated copyright information.
swap plugin: Add copyright information for Stefan Völkel.
bindings/java: Compile and install the “GenericJMX” plugin.
collectd-java(5): Document the “GenericJMX” plugin.
Merge branch 'collectd-4.7' into collectd-4.8
Conflicts:
ChangeLog
contrib/collection3/etc/collection.conf
src/df.c
version-gen.sh
Conflicts:
ChangeLog
contrib/collection3/etc/collection.conf
src/df.c
version-gen.sh
Bumped version to 4.7.3; Updated ChangeLog.
Merge branch 'collectd-4.6' into collectd-4.7
Conflicts:
ChangeLog
version-gen.sh
Conflicts:
ChangeLog
version-gen.sh
Bump version to 4.6.5.
collection3: Added some more metrics.
Fixed the year of the first three entries.
They say it was 2004, but in fact they were released in 2005.
They say it was 2004, but in fact they were released in 2005.
ChangeLog: Add entries for release 4.6.5.
powerdns plugin: Use the “ipt_packets” type rather than “io_packets”.
“io_packets”, as the name suggests, requires incoming *and* outgoing
packets. The infrastructure of the powerdns plugin uses only value lists
with one data source though.
Thanks to Luke for noticing!
“io_packets”, as the name suggests, requires incoming *and* outgoing
packets. The infrastructure of the powerdns plugin uses only value lists
with one data source though.
Thanks to Luke for noticing!
ChangeLog: Fix a typo.
contrib/collectd_unix_sock.rb: Ruby class which abstracts the plain text protocol.
Used to talk to the unixsock plugin.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
Used to talk to the unixsock plugin.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
src/utils_cache.c: Fix a very rare deadlock situation.
Only happened in an out-of-memory situation. Still, not nice ;)
Only happened in an out-of-memory situation. Still, not nice ;)
Merged branch 'sh/collectd-4.6' into sh/collectd-4.7.
Conflicts:
src/iptables.c
To resolve the conflict, the changes to the iptables plugin have been updated
to support ip6tc as well.
Conflicts:
src/iptables.c
To resolve the conflict, the changes to the iptables plugin have been updated
to support ip6tc as well.
iptables plugin: Support the new libiptc API.
When libiptc has been officially made available as a shared library, the API
and ABI have been changed slightly. By checking for the existance of a type
that has been removed in that course, configure now checks which version is
available. This is quite error prone (the type might be re-introduced any
time), so this should be improved some time - currently, I do not have an idea
how to do so, though :-/
When libiptc has been officially made available as a shared library, the API
and ABI have been changed slightly. By checking for the existance of a type
that has been removed in that course, configure now checks which version is
available. This is quite error prone (the type might be re-introduced any
time), so this should be improved some time - currently, I do not have an idea
how to do so, though :-/
configure: Replaced src/libiptc/ with src/owniptc/.
Merge branch 'collectd-4.6' into collectd-4.7
Conflicts:
configure.in
src/iptables.c
Conflicts:
configure.in
src/iptables.c
src/owniptc: Moved the “src/libiptc” directory to “src/owniptc” to avoid build issues.
If there is a system-wide version of this library available, the “-I.”
argument (added automatically by automake :() will lead to the shipped
header files being used. Later, the binary is linked with the
system-wide library, which leads to severe problems when API/ABI
incompatibilities have been introduced in other versions.
If there is a system-wide version of this library available, the “-I.”
argument (added automatically by automake :() will lead to the shipped
header files being used. Later, the binary is linked with the
system-wide library, which leads to severe problems when API/ABI
incompatibilities have been introduced in other versions.
contrib/cussh.pl: Add support for the “GETTHRESHOLD” command.
Collectd::Unixsock: Add support for the “GETTHRESHOLD” command.
unixsock plugin: Implement the “GETTHRESHOLD” command.
Example session:
-> GETTHRESHOLD "leeloo.lan.home.verplant.org/cpu-3/cpu-idle"
<- 6 Threshold found
<- Type: cpu
<- Type Instance: idle
<- Warning Min: 5
<- Warning Max: 100
<- Failure Min: 1
<- Failure Max: 120
Example session:
-> GETTHRESHOLD "leeloo.lan.home.verplant.org/cpu-3/cpu-idle"
<- 6 Threshold found
<- Type: cpu
<- Type Instance: idle
<- Warning Min: 5
<- Warning Max: 100
<- Failure Min: 1
<- Failure Max: 120
src/utils_threshold.[ch]: Update copyright information.
src/utils_threshold.[ch]: Implement `ut_search_threshold'.
It allows external modules to query the threshold for a specific
`value_list_t'.
It allows external modules to query the threshold for a specific
`value_list_t'.
README: Add missing plugins; moved “write_http”.
ChangeLog: Updated for the 4.8.0 release.
mysql plugin: Improve the `mysql_ping' warning.
src/utils_threshold.c: Implement the “Hits” and “Hysteresis” config options.
Hi all!
Based on Mariusz's idea, i attach a patch for thresholds (no for
filtering, yet) with basic hysteresis support adding the keyword
Hysteresis to configuration file, for example:
<Threshold>
<Type "load">
DataSource "midterm"
WarningMax 1
Hysteresis 0.3
</Type "load">
</Treshold>
In this case the notification is raised when load (midterm datasource)
is greater than 1, and came back to OKAY when lower than 0.7 (1 - 0.3).
This is a proof of concept and I do not have a lot of time to test,
please use this patch with caution. Furthermore, the code is really hard
and dirty :)
Best regards,
Andres
P.S.: The patch also including hits support, so to compile you also
require to apply hits-cache.patch and, obviously this patch is
incompatible with hits-threshold.patch.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
Hi all!
Based on Mariusz's idea, i attach a patch for thresholds (no for
filtering, yet) with basic hysteresis support adding the keyword
Hysteresis to configuration file, for example:
<Threshold>
<Type "load">
DataSource "midterm"
WarningMax 1
Hysteresis 0.3
</Type "load">
</Treshold>
In this case the notification is raised when load (midterm datasource)
is greater than 1, and came back to OKAY when lower than 0.7 (1 - 0.3).
This is a proof of concept and I do not have a lot of time to test,
please use this patch with caution. Furthermore, the code is really hard
and dirty :)
Best regards,
Andres
P.S.: The patch also including hits support, so to compile you also
require to apply hits-cache.patch and, obviously this patch is
incompatible with hits-threshold.patch.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
src/utils_cache.c: Implement “uc_{get,set,inc}_hits”.
Hi
I've attached a patch to add hit counter to thresholds, that is, each
time when threhsold raised, then an internal hit counter is incremented,
when the value of the counter raise a specific value setted in
configuration, then the notification is generated and counter is reset.
Here are an example of threshold configuration with hit conter:
<Threshold>
<Plugin load>
<Type load>
WarninMax 1
Hits 3
</Type>
</Plugin>
</Threshold>
In this example the notification will be generated when load value is
greater than 1 for 3 intervals.
Here are two patches, the first one adds hit feature to the collectd
cached and the second one use hits in thresholds,
Of course comments and suggestions are welcome :)
Enjoy!
Regards,
Andres
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
Hi
I've attached a patch to add hit counter to thresholds, that is, each
time when threhsold raised, then an internal hit counter is incremented,
when the value of the counter raise a specific value setted in
configuration, then the notification is generated and counter is reset.
Here are an example of threshold configuration with hit conter:
<Threshold>
<Plugin load>
<Type load>
WarninMax 1
Hits 3
</Type>
</Plugin>
</Threshold>
In this example the notification will be generated when load value is
greater than 1 for 3 intervals.
Here are two patches, the first one adds hit feature to the collectd
cached and the second one use hits in thresholds,
Of course comments and suggestions are welcome :)
Enjoy!
Regards,
Andres
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
network plugin: Move the gcrypt initialization into “network_init”.
network plugin: Fix initialization of the gcrypt library.
Subject: Ohhhh jeeee, libgcrypt 1.4.1 + collectd 4.7.2
On Monday 31 August 2009 09:03:37 Sebastian Harl wrote:
> Hrm … from a quick look at the libcrypt documentation I suppose we need
> to call gcry_control() using the 'GCRYCTL_INIT_SECMEM' command to
> explicitly initialize the secure memory. Sounds like this was required
> in libgcrypt 1.4.1 but is handled automatically in later versions.
>
also looks like there's some special initialization necessary for threads. I
doubt that this is handled by the new default behavior in 1.4.4. Don't know
that it's truly necessary if the network plugin is the only plugin using
gcrypt.
Here's a patch that works for me with 1.4.1.
I followed an example for pthread initialization and initialized gcry to 32k,
only since that's apparently the default that's used in 1.4.3. I did it in
network.c's module_register function. Kind of an abuse, I know.
Luke Heberling
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Subject: Ohhhh jeeee, libgcrypt 1.4.1 + collectd 4.7.2
On Monday 31 August 2009 09:03:37 Sebastian Harl wrote:
> Hrm … from a quick look at the libcrypt documentation I suppose we need
> to call gcry_control() using the 'GCRYCTL_INIT_SECMEM' command to
> explicitly initialize the secure memory. Sounds like this was required
> in libgcrypt 1.4.1 but is handled automatically in later versions.
>
also looks like there's some special initialization necessary for threads. I
doubt that this is handled by the new default behavior in 1.4.4. Don't know
that it's truly necessary if the network plugin is the only plugin using
gcrypt.
Here's a patch that works for me with 1.4.1.
I followed an example for pthread initialization and initialized gcry to 32k,
only since that's apparently the default that's used in 1.4.3. I did it in
network.c's module_register function. Kind of an abuse, I know.
Luke Heberling
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
contrib/collection3: Add graphing module for “arc_counts”.
Managed to forget this: script for generating the ArcCounts graphs.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
Managed to forget this: script for generating the ArcCounts graphs.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
contrib/collection3: Allow numbers in type names.
When converting the on-disk type name to the displayed name,
do not strip numbers out.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
When converting the on-disk type name to the displayed name,
do not strip numbers out.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
contrib/collection3: GenericStacked: Use stacking by default.
contrib/collection3: Option to turn stacking off in GenericStacking
CDEFs are not stacked and AREAs are not added when "Stacking" is set to off.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
CDEFs are not stacked and AREAs are not added when "Stacking" is set to off.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
zfs_arc plugin: add to default config file
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
write_http plugin: Make it possible to send values as JSON.
write_http plugin: Send “\r\n” line endings.
write_http plugin: Suppress the “Expect:” header.
write_http plugin: Fix a typo.
Merge branch 'ad/arc'
network plugin: “sizeof (send_buffer)” → “network_config_packet_size”.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>