README: Replaced filter plugins with matches and targets.
README: Added the oracle plugin and libclntsh.
README: Added curl plugin.
Merge branch 'sh/next'
postgresql: Fixed calculation of a database's max_params_num.
This parameter is used to store the size of a frequently used temporary list
and allows that it may be efficiently stored on the stack. It was accidentally
lost in commit 4d380d9, triggering an assertion in c_psql_exec_query_params().
This parameter is used to store the size of a frequently used temporary list
and allows that it may be efficiently stored on the stack. It was accidentally
lost in commit 4d380d9, triggering an assertion in c_psql_exec_query_params().
collectd.conf(5): Fixed some typos.
libcollectdclient: Use `EILSEQ' rather than `EPROTO'.
EPROTO is an XSR (XSI streams) extension and not supported on some
platforms (OpenBSD, apparently).
EPROTO is an XSR (XSI streams) extension and not supported on some
platforms (OpenBSD, apparently).
src/utils_db_query.c: Make `InstancePrefix' and `InstancesFrom' optional.
This is required by the default PostgreSQL queries.
This is required by the default PostgreSQL queries.
Merge branch 'sh/next'
Conflicts:
ChangeLog
Conflicts:
ChangeLog
collectd.conf(5): Fixed and improved the section about the filter mechanism.
src/Makefile.am: Link utils_db_query into the postgresql plugin.
collectd-perl(5): Documented the filter chain support.
ChangeLog: Updated date and fixed a typo.
collectd.conf(5): Fix a minor formatting error.
ChangeLog: Added changes to the perl plugin.
src/filter_chain.c: Made match_proc_t.create optional.
In most cases it does not make sense to not provide a create callback.
However, we never know what the future might bring, so let's chose the more
flexible approach.
In most cases it does not make sense to not provide a create callback.
However, we never know what the future might bring, so let's chose the more
flexible approach.
src/filter_chain.c: Fixed typos in warning / error messages.
perl plugin, Collectd.pm: Added support for filter chains.
fc_register() may now be used to register matches and targets with collectd.
The function takes three arguments: type, name, proc. 'type' has to be any of
FC_MATCH or FC_TARGET, 'name' specifies the name of the target / match and
'proc' is a hash of callbacks (specified by name just like any other
callbacks). There are three types of callbacks: create, destroy and match /
invoke - the former two being optional.
The match / invoke callback has to return any of the following statuses:
FC_MATCH_NO_MATCH, FC_MATCH_MATCHES, FC_TARGET_CONTINUE, FC_TARGET_STOP or
FC_TARGET_RETURN. If none of those constants are used, the behavior is
undefined.
fc_register() may now be used to register matches and targets with collectd.
The function takes three arguments: type, name, proc. 'type' has to be any of
FC_MATCH or FC_TARGET, 'name' specifies the name of the target / match and
'proc' is a hash of callbacks (specified by name just like any other
callbacks). There are three types of callbacks: create, destroy and match /
invoke - the former two being optional.
The match / invoke callback has to return any of the following statuses:
FC_MATCH_NO_MATCH, FC_MATCH_MATCHES, FC_TARGET_CONTINUE, FC_TARGET_STOP or
FC_TARGET_RETURN. If none of those constants are used, the behavior is
undefined.
perl plugin: Do not pass NULL to newRV().
newRV() does not handle that correctly and causes a segfault instead. Now, we
use PL_sv_undef instead.
newRV() does not handle that correctly and causes a segfault instead. Now, we
use PL_sv_undef instead.
Changed plugin_notification_meta_free()'s argument to a notification_meta_t.
This is more flexible and allows the function to be used when using the meta
data without an embedding notification object, e.g. when using the filter
chains.
This is more flexible and allows the function to be used when using the meta
data without an embedding notification object, e.g. when using the filter
chains.
perl plugin: Fixed a memory leak in pplugin_dispatch_notification().
Free the notification meta information that have possibly been allocated in
notification2hv().
Free the notification meta information that have possibly been allocated in
notification2hv().
perl plugin: Convert notification meta data as well.
The notification meta data are represented as an array of hash references:
[
{
name => <name>,
value => <value>
},
...
]
The notification meta data are represented as an array of hash references:
[
{
name => <name>,
value => <value>
},
...
]
perl plugin: Don't ignore the 'interval' member when converting value lists.
swap plugin: Be more sensitive about integer sizes in the *BSD code.
src/filter_chain.c: Document the `meta' argument passed to matches and targets inline.
configure.in: Improve checking for libstatgrab using pkg-config.
swap plugin: Fix another typo in the *BSD code.
Merge branch 'collectd-4.5'
Conflicts:
configure.in
Conflicts:
configure.in
Merge branch 'collectd-4.4' into collectd-4.5
Conflicts:
configure.in
Conflicts:
configure.in
collectd.conf(5): Removed references to the `main' chain.
The chains are now called `PreCache' and `PostCache'.
The chains are now called `PreCache' and `PostCache'.
collectd.conf(5): Add documentation for the `notify_email' plugin.
swap plugin: Fix two typos in the *BSD code.
swap plugin: Added support for OpenBSD and possibly other *BSDs.
ChangeLog: Document Simon's changes.
configure.in: Activate the cpu and swap plugins if sysctl is available.
cpu plugin: Check if all required sysctl defines are present.
Rather than checking for OpenBSD, since this interface may work with
other *BSDs, too. The order of the initialization code has been fixed,
too, and some other minor fixes..
Rather than checking for OpenBSD, since this interface may work with
other *BSDs, too. The order of the initialization code has been fixed,
too, and some other minor fixes..
cpu plugin: Fix indentation for the libstatgrab code.
cpu plugin: Use C99-like stack allocation.
As suggested by octo.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
As suggested by octo.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
cpu plugin: Add support for OpenBSD.
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
Bumped version to 4.6.0; Updated ChangeLog.
bind plugin: Implement per-zone statistics.
Also, the configuration schema has been improved - hopefully.
Also, the configuration schema has been improved - hopefully.
timediff match: Add a match for values with an invalid time.
The time is compared to the server's local time and values which differ
too much (configurable, of course) are matched.
The time is compared to the server's local time and values which differ
too much (configurable, of course) are matched.
src/utils_db_query.h: Fix a small typo.
15 years agosrc/utils_db_query.c: udb_query_pick_from_list* should add *all* queries of the desir...
src/utils_db_query.c: udb_query_pick_from_list* should add *all* queries of the desired name.
postgresql plugin: Use the DB query module.
The old (legacy) features should still be supported.
The old (legacy) features should still be supported.
src/utils_db_query.[ch]: Add the possibility to `pick' queries by name.
src/utils_db_query.c: Add support for the `Column' configuration option.
The support has been implemented as unobtrusively as possible:
- The `udb_result_t' type now has two new members:
`legacy_mode' and `legacy_position'. The `legacy_mode' member is used
to switch to a new set of functions for handling these special
results.
- Those ``legacy results'' use only a small subset of the members in
`udb_result_t'. The different behavior has been put in the following
functions:
udb_legacy_result_finish_result
udb_legacy_result_handle_result
udb_legacy_result_prepare_result
udb_legacy_result_create
- The non-legacy counterparts to finish, handle, and prepare
automatically call the legacy version if the `legacy_mode' member is
set to `1'.
WARNING: Untested code, the PostgreSQL plugin still needs to be ported.
The support has been implemented as unobtrusively as possible:
- The `udb_result_t' type now has two new members:
`legacy_mode' and `legacy_position'. The `legacy_mode' member is used
to switch to a new set of functions for handling these special
results.
- Those ``legacy results'' use only a small subset of the members in
`udb_result_t'. The different behavior has been put in the following
functions:
udb_legacy_result_finish_result
udb_legacy_result_handle_result
udb_legacy_result_prepare_result
udb_legacy_result_create
- The non-legacy counterparts to finish, handle, and prepare
automatically call the legacy version if the `legacy_mode' member is
set to `1'.
WARNING: Untested code, the PostgreSQL plugin still needs to be ported.
src/utils_db_query.[ch]: Introduces a ``legacy mode''.
When passing `1' as `legacy mode' to `udb_query_create', compatibility
with the postgresql plugin in version 4.5 is enabled. This means that
the options `Query', `MinPGVersion' and `MaxPGVersion' are understood in
the <Query> blocks.
Yet to do is support for the `Column' options. The `Param' option should
probably be implemented using the already existing callback function.
When passing `1' as `legacy mode' to `udb_query_create', compatibility
with the postgresql plugin in version 4.5 is enabled. This means that
the options `Query', `MinPGVersion' and `MaxPGVersion' are understood in
the <Query> blocks.
Yet to do is support for the `Column' options. The `Param' option should
probably be implemented using the already existing callback function.
Fixed various signedness issues identified by -Wextra.
The following two issues have been addressed:
* comparison between signed and unsigned - this was found in several places
throughout the code and has been fixed by switching to more appropriate
types or adding appropriate explicit casts.
* comparison of unsigned expression < 0 is always false - this was found in
the processes and vserver plugins where a size_t had wrongly been used
instead of a ssize_t and an int respectively.
The following two issues have been addressed:
* comparison between signed and unsigned - this was found in several places
throughout the code and has been fixed by switching to more appropriate
types or adding appropriate explicit casts.
* comparison of unsigned expression < 0 is always false - this was found in
the processes and vserver plugins where a size_t had wrongly been used
instead of a ssize_t and an int respectively.
Document unused parameters.
In all cases where unused parameters have to exist either because some API
requires it or for more consistency, they now have been documented using
__attribute__((unused)) (which is automatically disabled in case GCC is not
used to prevent problems with compilers not supporting attributes). In a few
other cases, the parameters have been removed.
This allows the use of -Wunused-parameter (which is enabled by -Wextra as
well, when using -Wall).
In all cases where unused parameters have to exist either because some API
requires it or for more consistency, they now have been documented using
__attribute__((unused)) (which is automatically disabled in case GCC is not
used to prevent problems with compilers not supporting attributes). In a few
other cases, the parameters have been removed.
This allows the use of -Wunused-parameter (which is enabled by -Wextra as
well, when using -Wall).
contrib/php-collection: Save/load graph list and fix HTTPS handling.
Hi,
An update to the graphing interface. (incremental patch attached)
This fixes security complaint by a few browsers when page is accessed
via HTTPS and also makes sure the graphs and lists will load if HTTP
and HTTPS paths differ.
Thanks to Mullet- for spotting this issue.
In addition to the fix above this patch adds support for saving
current graph list to a cookie and appending graph list read from
cookie to the currently displayed list.
A future extension would be to allow saving/loading named graph lists
so multiple list can coexist (pretty useful when monitoring multiple
servers/services)
Bruno
Hi,
An update to the graphing interface. (incremental patch attached)
This fixes security complaint by a few browsers when page is accessed
via HTTPS and also makes sure the graphs and lists will load if HTTP
and HTTPS paths differ.
Thanks to Mullet- for spotting this issue.
In addition to the fix above this patch adds support for saving
current graph list to a cookie and appending graph list read from
cookie to the currently displayed list.
A future extension would be to allow saving/loading named graph lists
so multiple list can coexist (pretty useful when monitoring multiple
servers/services)
Bruno
contrib/php-collection: Add a PHP frontend for graph generation.
Hi,
Attached is a patch with a set of PHP files for a complete graphing
environment for collectd-generated RRDs.
Before generating a graph with rrdtool it can tell collectd to flush
the RRDs that are about to be used.
The interface is built with dynamic HTML.
It provides following options:
- host selection
-> plugin selection
--> plugin instance selection
---> type selection
----> type instance selection (or meta graph)
- linear / logarithmic Y-scale
- verbose / minimal legend
- [Add Graph] [Remove all Graphs] [Refresh Graphs]
For each displayed graph:
- Move above previous graph
- Refresh graph
- Remove graph
- Move below following graph
I tested on following browsers:
- Firefox-3.0
- Safari-3.2 (Win32)
- Konqueror (KDE-4.1.3)
- Webkit (webkit-gtk-0_p40220)
- Internet Explorer (6, 7, 8rc - CSS layout issues with <8)
Dependencies:
- PHP-5 (might run with PHP-4)
> GD suport for error images
> Ability to execute rrdtool binary
> Unix socket for FLUSH support
- RRDTool (rrdtool graph, rrdtool info)
TODO: complete/improve graph definitions in definitions.php
though there is code to generate basic graph for any RRD of
unknown type, so definitions are rather a matter of color,
DS combination and stacking.
Bruno
File listing with short description:
- config.php
(configuration)
- functions.php
(common functions)
- definitions.php
(graph definitions for most? types from types.db
- based on collection.cgi)
- definitions.local.php
(place for site-local graph definitions, e.g. for
unixsock, tail, snmp generated RRDs)
- index.php
(main page)
- graph.php
(page returning the graph's PNG image)
- browser.js
(whole bunch of Javascript logic to show/hide/update graphs)
Not included are a few images:
- collectd-logo.png
(16x16, e.g. use collectd.org's favicon)
- favicon.png
(e.g. use the one in share/collection*)
- refresh.png
- move-up.png
- move-down.png
- delete.png
(16x16 take matching ones from your system's action-icons)
Hi,
Attached is a patch with a set of PHP files for a complete graphing
environment for collectd-generated RRDs.
Before generating a graph with rrdtool it can tell collectd to flush
the RRDs that are about to be used.
The interface is built with dynamic HTML.
It provides following options:
- host selection
-> plugin selection
--> plugin instance selection
---> type selection
----> type instance selection (or meta graph)
- linear / logarithmic Y-scale
- verbose / minimal legend
- [Add Graph] [Remove all Graphs] [Refresh Graphs]
For each displayed graph:
- Move above previous graph
- Refresh graph
- Remove graph
- Move below following graph
I tested on following browsers:
- Firefox-3.0
- Safari-3.2 (Win32)
- Konqueror (KDE-4.1.3)
- Webkit (webkit-gtk-0_p40220)
- Internet Explorer (6, 7, 8rc - CSS layout issues with <8)
Dependencies:
- PHP-5 (might run with PHP-4)
> GD suport for error images
> Ability to execute rrdtool binary
> Unix socket for FLUSH support
- RRDTool (rrdtool graph, rrdtool info)
TODO: complete/improve graph definitions in definitions.php
though there is code to generate basic graph for any RRD of
unknown type, so definitions are rather a matter of color,
DS combination and stacking.
Bruno
File listing with short description:
- config.php
(configuration)
- functions.php
(common functions)
- definitions.php
(graph definitions for most? types from types.db
- based on collection.cgi)
- definitions.local.php
(place for site-local graph definitions, e.g. for
unixsock, tail, snmp generated RRDs)
- index.php
(main page)
- graph.php
(page returning the graph's PNG image)
- browser.js
(whole bunch of Javascript logic to show/hide/update graphs)
Not included are a few images:
- collectd-logo.png
(16x16, e.g. use collectd.org's favicon)
- favicon.png
(e.g. use the one in share/collection*)
- refresh.png
- move-up.png
- move-down.png
- delete.png
(16x16 take matching ones from your system's action-icons)
perl plugin, configure: Check for struct mgvtbl.svt_local.
This member has been introduced in Perl 5.10 (I guess). To be able to
correctly (statically) initialize the magic tables used to access global
variables, we now check for its existence and then initialize the structs
accordingly.
This member has been introduced in Perl 5.10 (I guess). To be able to
correctly (statically) initialize the magic tables used to access global
variables, we now check for its existence and then initialize the structs
accordingly.
perl plugin / Collectd.pm: Export plugin_write() to Perl.
plugin_write() accepts, just like the C counterpart, three arguments,
'plugins', 'datasets' and 'valuelists'. In contrast to the C implementation,
all three arguments may either be a single scalar or a reference to an array -
just like the 'plugins' and 'identifiers' arguments of the Perl implementation
of plugin_flush().
plugin_write() accepts, just like the C counterpart, three arguments,
'plugins', 'datasets' and 'valuelists'. In contrast to the C implementation,
all three arguments may either be a single scalar or a reference to an array -
just like the 'plugins' and 'identifiers' arguments of the Perl implementation
of plugin_flush().
perl plugin: Don't do any type conversion in pplugin_dispatch_notification().
The conversion of the hash value to a notification_t object has been moved
into its own separate function.
The conversion of the hash value to a notification_t object has been moved
into its own separate function.
perl plugin: Don't do any type conversion in pplugin_register_data_set().
The conversion of the array value to a data_set_t object has been moved into
its own separate function.
The conversion of the array value to a data_set_t object has been moved into
its own separate function.
perl plugin: Don't do any type conversion in pplugin_dispatch_values().
The conversion of the hash value to a value_list_t object has been moved into
its own separate function.
The conversion of the hash value to a value_list_t object has been moved into
its own separate function.
src/plugin.h: Fixed some minor typos.
cpu plugin: Report interrupt separately when using sysctlbyname.
build.sh: Fix the check for libtoolize vs. glibtoolize.
The `which' command under Mac OS X exits with status 0 even if the program
wasn't found. Use
libtoolize --version
to check for the program instead..
The `which' command under Mac OS X exits with status 0 even if the program
wasn't found. Use
libtoolize --version
to check for the program instead..
collectd.conf(5): Document the curl plugin properly.
curl plugin: Enable the `Verify{Peer,Host}' options by default.
So the curl plugin behaves just like the apache plugin in this respect.
So the curl plugin behaves just like the apache plugin in this respect.
configure.in: Sort plugins and libraries alphabetically.
curl plugin: Add a generic plugin to retrieve and parse web pages.
Merge branch 'master' of octo@verplant.org:/var/lib/git/collectd
Merge branch 'ff/local'
contrib/collection.cgi: Add graph definition for libvirt/virt_cpu_total
src/utils_threshold.c: Properly document the `ut_check_interesting' function.
postgresql plugin: Updated copyright information.
;-)
;-)
src/plugin.[ch]: Removed obsolete plugin_{un,}register_filter().
These have been superseded by the advanced filter mechanism. Also, the
FILTER_* defines have been removed.
These have been superseded by the advanced filter mechanism. Also, the
FILTER_* defines have been removed.
Let plugin_dispatch_values() set value_list.time in case of 'now'.
Basically any (read) plugin was calling time(NULL) to set the time of a values
list. This is now done by plugin_dispatch_values() in case the time is zero
(which is the case when using VALUE_LIST_INIT or VALUE_LIST_STATIC).
This change slightly simplifies the code and makes future changes to the time
management (like the possibly upcoming subsecond resolution support) less
intrusive in respect to the amount of required code changes.
Basically any (read) plugin was calling time(NULL) to set the time of a values
list. This is now done by plugin_dispatch_values() in case the time is zero
(which is the case when using VALUE_LIST_INIT or VALUE_LIST_STATIC).
This change slightly simplifies the code and makes future changes to the time
management (like the possibly upcoming subsecond resolution support) less
intrusive in respect to the amount of required code changes.
Converted timeval_sub_timespec() to timeval_cmp().
The third (return) argument is now of type 'struct timeval' (instead of
'struct timespec') as well. Also, it may now be NULL, in which case the
difference is not returned. This is a more general and thus more flexible
approach that permitted to remove the custom timeval_sub*() implementations in
the multimeter and ntpd plugins.
The return value has been changed to reflect the return value used by
functions like strcmp(), i.e. it is less than, equal to, or greater than zero
if the first argument is less than, equal to, or greater than the second
argument respectively.
In the cases where a 'struct timespec' is required, the return value is now
converted by multiplying the tv_usec member with 1000.
The third (return) argument is now of type 'struct timeval' (instead of
'struct timespec') as well. Also, it may now be NULL, in which case the
difference is not returned. This is a more general and thus more flexible
approach that permitted to remove the custom timeval_sub*() implementations in
the multimeter and ntpd plugins.
The return value has been changed to reflect the return value used by
functions like strcmp(), i.e. it is less than, equal to, or greater than zero
if the first argument is less than, equal to, or greater than the second
argument respectively.
In the cases where a 'struct timespec' is required, the return value is now
converted by multiplying the tv_usec member with 1000.
configure: Do not conditionally use AM_CONDITIONAL().
Defining HAVE_BROKEN_PERL_LOAD_MODULE was done conditionally which would cause
configure to fail in case it's not defined.
Defining HAVE_BROKEN_PERL_LOAD_MODULE was done conditionally which would cause
configure to fail in case it's not defined.
collectd-exec(5): Fixed a typo.
collectd.conf(5): Explain the traffic collected by the vserver plugin.
The plugin collects the amount of traffic passing a socket instead of the
actual on-wire traffic.
Thanks to cedric for reporting this.
Resolves: #40
The plugin collects the amount of traffic passing a socket instead of the
actual on-wire traffic.
Thanks to cedric for reporting this.
Resolves: #40
collectd.conf(5): Added a note about rotating log files.
References: #39
References: #39
.gitignore: Added src/libcollectdclient/libcollectdclient.pc.
Also, removed some unnecessary entries.
Also, removed some unnecessary entries.
build system: Check for and work-around broken Perl_load_module().
Configure now checks for a broken Perl_load_module() definition as introduced
in Perl 5.10 which incorrectly uses __attribute__nonnull__(3). If that has been
detected, the perl plugin will now be built using -Wno-nonnull, thus ignoring
the warning / error produced by the nonnull attribute.
References: #41
Resolves: #42
Configure now checks for a broken Perl_load_module() definition as introduced
in Perl 5.10 which incorrectly uses __attribute__nonnull__(3). If that has been
detected, the perl plugin will now be built using -Wno-nonnull, thus ignoring
the warning / error produced by the nonnull attribute.
References: #41
Resolves: #42
src/utils_db_query.[ch]: Allow a callback function to be passed to udb_query_create.
This allows plugins to handle custom options in the <Query> blocks.
This allows plugins to handle custom options in the <Query> blocks.
filter_ignore: Remove this plugin.
The functionality is now implemented in the more general chain mechanism.
The functionality is now implemented in the more general chain mechanism.
AUTHORS: Add many people I forgot to add over the last months.
I think I got everybody covered. I definitely checked all post-4.5
commits.
I think I got everybody covered. I definitely checked all post-4.5
commits.
15 years agoipmi plugin: Improve error handling and handle a temporary error condition more grace...
ipmi plugin: Improve error handling and handle a temporary error condition more gracefully.
On a server IPMI readings suddenly failed causing the plugin to stop
collecting data.
The following entries got logged:
ipmi plugin: sensor_read_handler: Removing sensor Temp 7 processor (3.6), because it failed with status 0x10000d5.
ipmi plugin: sensor_read_handler: Removing sensor Temp 6 processor (3.5), because it failed with status 0x10000d5.
ipmi plugin: sensor_read_handler: Removing sensor Temp 5 power_supply (10.5), because it failed with status 0x10000d5.
ipmi plugin: sensor_read_handler: Removing sensor Temp 4 processor (3.4), because it failed with status 0x10000d5.
ipmi plugin: sensor_read_handler: Removing sensor Temp 3 processor (3.3), because it failed with status 0x10000d5.
ipmi plugin: sensor_read_handler: Removing sensor Temp 2 external_environment (39.1), because it failed with status 0x10000d5.
ipmi plugin: sensor_read_handler: Removing sensor Temp 1 system_internal_expansion_board (16.1), because it failed with status 0x10000d5.
This patch attempts to provide slightly better error message and just
skip current reading iteration if the error
IPMI_NOT_SUPPORTED_IN_PRESENT_STATE_CC is indicated.
This error happens e.g. when iLo firmware is upgraded (or reboots?) on
HP servers.
On a server IPMI readings suddenly failed causing the plugin to stop
collecting data.
The following entries got logged:
ipmi plugin: sensor_read_handler: Removing sensor Temp 7 processor (3.6), because it failed with status 0x10000d5.
ipmi plugin: sensor_read_handler: Removing sensor Temp 6 processor (3.5), because it failed with status 0x10000d5.
ipmi plugin: sensor_read_handler: Removing sensor Temp 5 power_supply (10.5), because it failed with status 0x10000d5.
ipmi plugin: sensor_read_handler: Removing sensor Temp 4 processor (3.4), because it failed with status 0x10000d5.
ipmi plugin: sensor_read_handler: Removing sensor Temp 3 processor (3.3), because it failed with status 0x10000d5.
ipmi plugin: sensor_read_handler: Removing sensor Temp 2 external_environment (39.1), because it failed with status 0x10000d5.
ipmi plugin: sensor_read_handler: Removing sensor Temp 1 system_internal_expansion_board (16.1), because it failed with status 0x10000d5.
This patch attempts to provide slightly better error message and just
skip current reading iteration if the error
IPMI_NOT_SUPPORTED_IN_PRESENT_STATE_CC is indicated.
This error happens e.g. when iLo firmware is upgraded (or reboots?) on
HP servers.
collectd.conf(5): Fix a typo.
collectd.conf(5): Documented the `{Pre,Post}CacheChain' options.
src/plugin.c: If the pre-cache chain returns `stop', dont update the cache.
Don't run the post-cache chain, either.
Don't run the post-cache chain, either.
src/plugin.c: Add the `{Pre,Post}CacheChain' options and appropriate chains.
The PreCacheChain is executed before the values are added to the cache, the
PostCacheChain afterwards. If no post-cache chain is given, values will be
dispatched to all write plugins by default.
The PreCacheChain is executed before the values are added to the cache, the
PostCacheChain afterwards. If no post-cache chain is given, values will be
dispatched to all write plugins by default.
collectd.conf(5): Document the `{Min,Max}Version' options of the dbi plugin.
src/utils_db_query.c: Implement the (deprecated) `{Min,Max}PGVersion' options.
This is for compatibility with old configuration of the postgresql plugin.
This is for compatibility with old configuration of the postgresql plugin.
dbi plugin: Use the server version to only use appropriate queries.
src/utils_db_query.[ch]: Add support for min-/max-version.
These settings can be used to check if a particular query is suited to the
database server version we're currently connected to.
These settings can be used to check if a particular query is suited to the
database server version we're currently connected to.
oracle plugin: Use the DB query module.
This simplifies the oracle plugin considerably.
This simplifies the oracle plugin considerably.
src/utils_db_query.c: When asked for the user data, return the user data.
Appreciate this patch, it cost me one fucking hour of my live!
Appreciate this patch, it cost me one fucking hour of my live!
dbi plugin: Put the row handling logic in an extra module.
The `utils_db_query' module now handles config parsing and row handling.
This unifies basically all of the <Query> blocks, so that the `dbi' and
`oracle' plugins behave exactly alike. Porting the `postgresql' plugin
should be possible, too, so that all three database plugins are in line.
The `utils_db_query' module now handles config parsing and row handling.
This unifies basically all of the <Query> blocks, so that the `dbi' and
`oracle' plugins behave exactly alike. Porting the `postgresql' plugin
should be possible, too, so that all three database plugins are in line.
collectd.conf: Updated the example postgresql plugin configuration.
dbi plugin: Fixed error handling in an inner loop.
The macro BAIL_OUT_CONTINUE() is used inside the loop iterating over the
result sets to clean up and continue with the next loop iteration. In two
cases this was used in a loop iterating over the instances and values lists
contained within that loop as well though. This would cause the memory that
was currently written to (the two target lists) to be freed and thus cause a
possible segfault. In any case it would leave behind inconsistent and most
probably uninitialized data. The usage of that macro has now been pulled out
of the inner loops.
The macro BAIL_OUT_CONTINUE() is used inside the loop iterating over the
result sets to clean up and continue with the next loop iteration. In two
cases this was used in a loop iterating over the instances and values lists
contained within that loop as well though. This would cause the memory that
was currently written to (the two target lists) to be freed and thus cause a
possible segfault. In any case it would leave behind inconsistent and most
probably uninitialized data. The usage of that macro has now been pulled out
of the inner loops.
postgresql plugin: Added support for the "interval" parameter.
This query parameter expands to the interval collectd is using.
This query parameter expands to the interval collectd is using.
postgresql plugin: Added support for <Result> blocks.
This is a replacement for the "Column" config option (which has been
deprecated). <Result> blocks allow for much more flexible handling of the
data. Besides being able to use data types with multiple data sources, the
plugin now supports to generate the type instance using information from the
database.
An example <Result> block might look like this (taken from the manpage):
<Result>
Type counter
InstancePrefix "rt36_tickets"
InstancesFrom "type"
ValuesFrom "count"
</Result>
This is a replacement for the "Column" config option (which has been
deprecated). <Result> blocks allow for much more flexible handling of the
data. Besides being able to use data types with multiple data sources, the
plugin now supports to generate the type instance using information from the
database.
An example <Result> block might look like this (taken from the manpage):
<Result>
Type counter
InstancePrefix "rt36_tickets"
InstancesFrom "type"
ValuesFrom "count"
</Result>
postgresql plugin: Reinitialize a database after reconnecting.
During initialization we get the right version of each query definition. After
reconnecting, the PostgreSQL server version might have changed, so we might
need to update some of the query definitions.
During initialization we get the right version of each query definition. After
reconnecting, the PostgreSQL server version might have changed, so we might
need to update some of the query definitions.
utils_complain: Added macro c_would_release().
This macro returns true if the specified complaint would be released, false
else. This is useful e.g. to do further actions when releasing a complaint.
This macro returns true if the specified complaint would be released, false
else. This is useful e.g. to do further actions when releasing a complaint.