Merge branch 'ka/pinba'
ChangeLog: Updated for version 4.10.0.
routeros plugin: Removed some "FIXME"s that no longer need fixing.
Merge branch 'collectd-4.9'
Conflicts:
configure.in
Conflicts:
configure.in
Merge branch 'collectd-4.8' into collectd-4.9
configure.in: Put conditionals around <inttypes.h>, too, for consistency's sake.
Solaris 8 fixes: Check for <stdint.h> before inclusion.
Solaris 8 fixes: Fall back to putenv(3).
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>
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>
src/collectd.c: Fix initialization of the "timeout_g" variable.
The default value is "2", not "10".
The default value is "2", not "10".
collectd.conf(5): Document the "Timeout" option.
Timeout for missing values
Hi!
I attach here a patch which adds Timeout option in configuration file.
This option is global (i.e. at the same level as Interval) and it's
the max number of intervals that a package can be missed before a
missing notification would be raised. By dafault collectd wait 2
intervals and it's a hardcoded value AFAIK, if plugin cannot get data
for more than 2 intervals, then (if it's an interesting value),
collectd send a missing notification. Setting Timeout to an high value
you can be more tolerant with that missing.
It's usefull on large networks. In my case, the company LAN is
distributed on distant locations and sometimes (due to network issues)
UDP packages are lost, I use the Timeout to be more tolerant to this
networks fails. For example setting Internval to 10 and Timeout to 6,
a missing notification will be raised only if none data was reported
in last 60s.
I hope that things explained well enough, and (who knows!) maybe this
could be usefull to anybody ;)
Regards,
Andrés
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Hi!
I attach here a patch which adds Timeout option in configuration file.
This option is global (i.e. at the same level as Interval) and it's
the max number of intervals that a package can be missed before a
missing notification would be raised. By dafault collectd wait 2
intervals and it's a hardcoded value AFAIK, if plugin cannot get data
for more than 2 intervals, then (if it's an interesting value),
collectd send a missing notification. Setting Timeout to an high value
you can be more tolerant with that missing.
It's usefull on large networks. In my case, the company LAN is
distributed on distant locations and sometimes (due to network issues)
UDP packages are lost, I use the Timeout to be more tolerant to this
networks fails. For example setting Internval to 10 and Timeout to 6,
a missing notification will be raised only if none data was reported
in last 60s.
I hope that things explained well enough, and (who knows!) maybe this
could be usefull to anybody ;)
Regards,
Andrés
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
python plugin: Try to work around a "dereferencing type-punned pointer" warning.
Merge branch 'collectd-4.9'
Bumped version to 4.9.2; Updated ChangeLog.
Merge branch 'collectd-4.8' into collectd-4.9
Conflicts:
ChangeLog
Conflicts:
ChangeLog
Bumped version to 4.8.5; Updated ChangeLog.
Merge remote branch 'trenkel/st/python'
Merge branch 'collectd-4.9'
Merge branch 'collectd-4.8' into collectd-4.9
Conflicts:
ChangeLog
Conflicts:
ChangeLog
python: Added documentation and an example on how to handle SIGCHLD.
python: Fix a metadata memleak and a missing include (for some versions of python)
src/plugin.c: plugin_log: Append newline to message …
… even when no log-plugin was loaded.
… even when no log-plugin was loaded.
modbus plugin: Adapt for the new "plugin_register_complex_read" interface.
network plugin: Don't access values in an already freed array.
contrib/exec-nagios.px: Whitespace and POD fixes.
pinba plugin: Fix the "request" type and dispatch the document size data.
pinba plugin: Multiply the derive data sources by a factor.
Otherwise the change is too slow to be really useful.
Otherwise the change is too slow to be really useful.
pinba plugin: Fix a sever typo.
src/collectd.conf.in: Add the Pinba plugin.
Build system: Link the pinba plugin with "protobuf-c".
Configure checks are still missing.
Configure checks are still missing.
pinba plugin: Looked up the default port on the Pinba homepage.
pinba plugin: Coding style changes.
pinba plugin: Remove unused type definitions.
pinba plugin: Fix a folding marker.
pinba plugin: Make the config parsing easier to read ...
... by using "cf_util_get_string".
... by using "cf_util_get_string".
pinba plugin: Turn most metrics into DERIVEs.
This way we don't need to keep track of the time ourselves. The new type
"float_counter_t" is used to convert floats into derive_ts.
This way we don't need to keep track of the time ourselves. The new type
"float_counter_t" is used to convert floats into derive_ts.
pinba plugin: Remove the "NI_MAXSERV" define.
pinba plugin: Turn the "Port" config option into a string.
This way service names can be used, too.
This way service names can be used, too.
pinba plugin: Added folding markers to all functions.
pinba plugin: Removed the dependency to libevent.
The filedescriptors are now watched using poll(2).
The filedescriptors are now watched using poll(2).
pinba plugin: Use mutexes rather than R/W-locks.
Mutexes are more portable and since only write locks were used they
act exactly the same way.
Mutexes are more portable and since only write locks were used they
act exactly the same way.
pinba plugin: pinba_socket_open: Rewrote the function ...
... with protocol independence (IPv6 support).
... with protocol independence (IPv6 support).
pinba plugin: Rename custom types to follow the "*_t" convention.
pinba plugin: pinba_udp_read_callback_fn: Streamlined the function a bit.
pinba plugin: service_statnode_collect: Coding style changes.
pinba plugin: Add temporary defines for default address and port.
Pinba plugin: Add Antony Dovgal as copyright holder.
A note stating where the original code was taken from has been added,
too.
A note stating where the original code was taken from has been added,
too.
Pinba plugin: Reorder the functions to get the callgraph right.
This fixes build issues introduced by removing the forward declarations.
This fixes build issues introduced by removing the forward declarations.
Pinba plugin: Picked some low-hanging fruit.
Removed includes already included via "collectd.h", moved variable
declarations before function declarations, fixed missing return
statements, and removed void statements.
Removed includes already included via "collectd.h", moved variable
declarations before function declarations, fixed missing return
statements, and removed void statements.
Build system: Make it possible to (conditionally) build the protobuf stuff.
The dependency for the module is still missing, but I don't know how to
specify that from the top of my head.
The dependency for the module is still missing, but I don't know how to
specify that from the top of my head.
src/Makefile.am: Order the plugins alphabetically.
And add "pinba.proto" to the distribution.
And add "pinba.proto" to the distribution.
Build system: Check for protoc-c and enable the Pinba plugin if it is found.
network plugin: Add the "network:username" meta data.
Writing autotools rules for pinba.
Add pinba plugin.
Bumped version to 4.8.2; Updated ChangeLog.
Merge branch 'collectd-4.9'
Merge branch 'collectd-4.8' into collectd-4.9
network plugin: Fix a severe memory leak.
A couple of bytes were leaked with every encrypted packet received.
A couple of bytes were leaked with every encrypted packet received.
rrdtool plugin: Correctly free the cache when shutting down.
network plugin: Be more strict when checking the return value of "setsockopt".
network plugin: Be more strict when checking the return value of "setsockopt".
network plugin: Print a warning when setting the interface on a unicast socket is not possible.
Build system: Check for the "if_indextoname" function.
Use this information rather than hard-coding "if Linux …"
Use this information rather than hard-coding "if Linux …"
Build system: Check for "struct ip_mreqn".
Use this rather than hard-coding "if Linux …"
Use this rather than hard-coding "if Linux …"
network plugin: Interface option moved to Server/Listen block
Hello list!
On Tue, Mar 09, 2010 at 06:17:35PM +0100, Florian Forster wrote:
[...]
> On Fri, Feb 26, 2010 at 12:49:02PM +0100, Max Henkel wrote:
[...]
> > @@ -2842,6 +2929,8 @@ static int network_config (oconfig_item_t *ci) /* {{{ */
> > network_config_add_server (child);
> > else if (strcasecmp ("TimeToLive", child->key) == 0)
> > network_config_set_ttl (child);
> > + else if (strcasecmp ("Interface", child->key) == 0)
> > + network_config_set_interface (child);
> > else if (strcasecmp ("MaxPacketSize", child->key) == 0)
> > network_config_set_buffer_size (child);
> > else if (strcasecmp ("Forward", child->key) == 0)
>
> Starting with the signing and encryption option, we have <Server> and
> <Listen> blocks that take socket specific options. It'd be kind of
> inconsistent with the "TimeToLive" and other options, but maybe adding
> this to those blocks would be even better. It would enable to forward
> data from one multicast group on interface-0 to the *same* multicast
> group on interface-1, which I guess could be useful. But maybe it's an
> academic case, I dunno.. Thoughts, anyone?
[...]
This patch provides the configuration possibility inside the
Server/Listen-block, but I'm unsure if the "int interface" is
located properly inside the sockent_t.
Best regards,
Max
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Hello list!
On Tue, Mar 09, 2010 at 06:17:35PM +0100, Florian Forster wrote:
[...]
> On Fri, Feb 26, 2010 at 12:49:02PM +0100, Max Henkel wrote:
[...]
> > @@ -2842,6 +2929,8 @@ static int network_config (oconfig_item_t *ci) /* {{{ */
> > network_config_add_server (child);
> > else if (strcasecmp ("TimeToLive", child->key) == 0)
> > network_config_set_ttl (child);
> > + else if (strcasecmp ("Interface", child->key) == 0)
> > + network_config_set_interface (child);
> > else if (strcasecmp ("MaxPacketSize", child->key) == 0)
> > network_config_set_buffer_size (child);
> > else if (strcasecmp ("Forward", child->key) == 0)
>
> Starting with the signing and encryption option, we have <Server> and
> <Listen> blocks that take socket specific options. It'd be kind of
> inconsistent with the "TimeToLive" and other options, but maybe adding
> this to those blocks would be even better. It would enable to forward
> data from one multicast group on interface-0 to the *same* multicast
> group on interface-1, which I guess could be useful. But maybe it's an
> academic case, I dunno.. Thoughts, anyone?
[...]
This patch provides the configuration possibility inside the
Server/Listen-block, but I'm unsure if the "int interface" is
located properly inside the sockent_t.
Best regards,
Max
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
network plugin: Bind to device for unicast
Hello list!
On Tue, Mar 09, 2010 at 06:17:35PM +0100, Florian Forster wrote:
[...]
> On Fri, Feb 26, 2010 at 12:49:02PM +0100, Max Henkel wrote:
[...]
> > + if (! IN_MULTICAST (ntohl (addr->sin_addr.s_addr)))
> > + return (0);
>
> Doesn't it make sense to be able to set the interface in unicast mode,
> too? For example if the host has multiple default gateways. The
> socket(7) option "SO_BINDTODEVICE" could be used for this I guess.
[...]
Thus this patch binds the socket to a specific interface for unicast
traffic, too. But, as Sebastian already mentioned, the behaviour is
Linux specific.
Best regards,
Max
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Hello list!
On Tue, Mar 09, 2010 at 06:17:35PM +0100, Florian Forster wrote:
[...]
> On Fri, Feb 26, 2010 at 12:49:02PM +0100, Max Henkel wrote:
[...]
> > + if (! IN_MULTICAST (ntohl (addr->sin_addr.s_addr)))
> > + return (0);
>
> Doesn't it make sense to be able to set the interface in unicast mode,
> too? For example if the host has multiple default gateways. The
> socket(7) option "SO_BINDTODEVICE" could be used for this I guess.
[...]
Thus this patch binds the socket to a specific interface for unicast
traffic, too. But, as Sebastian already mentioned, the behaviour is
Linux specific.
Best regards,
Max
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
network plugin: Added Interface option
Hello list!
Again I'm providing an interface option for the network plugin for
the manual selection of an incoming or outgoing interface,
incorporating the changes proposed by Florian and Sebastian.
Please look through it and feedback or suggest new changes! :-)
Best regards,
Max
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Hello list!
Again I'm providing an interface option for the network plugin for
the manual selection of an incoming or outgoing interface,
incorporating the changes proposed by Florian and Sebastian.
Please look through it and feedback or suggest new changes! :-)
Best regards,
Max
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Merge branch 'ff/modbus'
README: Fix a typo.
README: Add information about the modbus plugin.
Merge branch 'schmurfy/re_invert'
collectd.conf(5): Document the new "Invert" option …
… of the Regex match.
… of the Regex match.
Regex match: Whitespace fixes.
now using cf_util_get_boolean
Merge commit 'tokkee/sh/collectd-4.8' into collectd-4.8
postgresql plugin: Relicensed to (2-clause) BSD license.
All (most?) of PostgreSQL is licensed under a BSD license …
Florian, the only other copyright holder, agreed with this.
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
All (most?) of PostgreSQL is licensed under a BSD license …
Florian, the only other copyright holder, agreed with this.
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
collectd.conf.in: Change the basename of the Perl plugin to "Collectd::Plugins".
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.
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.
target_scale: Fixed a `break strict-aliasing rules' compiler warning.
… identified by GCC 4.4.3 using -O3.
… identified by GCC 4.4.3 using -O3.
configure: In the summary, say which plugins have been disabled by the user.
postgresql plugin: Let the read callback fail if all queries failed.
csv plugin: Use the value list's interval when outputting to STDOUT.
utils_db_query: Added support for custom plugin intervals.
The interval is specified when calling udb_query_prepare_result(). A value
less than or equal to zero may be used to let udb use the default
(interval_g).
The dbi, oracle, and postgresql plugins have been updated accordingly.
The interval is specified when calling udb_query_prepare_result(). A value
less than or equal to zero may be used to let udb use the default
(interval_g).
The dbi, oracle, and postgresql plugins have been updated accordingly.
utils_db_query: Introduced the query & result preparation areas.
These objects are used to store the temporary data needed during execution of
a query, which was previously stored in the query object itself. This allows
the query object to be used read-only, making it possible to use it from
multiple threads in parallel.
The dbi, oracle and postgresql plugins have been updated to use that
(mandatory) new feature.
These objects are used to store the temporary data needed during execution of
a query, which was previously stored in the query object itself. This allows
the query object to be used read-only, making it possible to use it from
multiple threads in parallel.
The dbi, oracle and postgresql plugins have been updated to use that
(mandatory) new feature.
added an "Invert" option for regex
modbus plugin: Downgrade to use the libmodbus 1.2.5 API.
The API of the library changes every other month, so be conservative and
use the "stable" version, released in May 2008, and hope *that* API is
somewhat stable.
The API of the library changes every other month, so be conservative and
use the "stable" version, released in May 2008, and hope *that* API is
somewhat stable.
postgresql plugin: Don't abort read(), if a query's version doesn't match.
There is no reason to skip unrelated queries because of that.
There is no reason to skip unrelated queries because of that.
postgresql plugin: Use the "right" `interval' when passing a param to a query.
… i.e., use the database specific interval, if configured.
… i.e., use the database specific interval, if configured.
postgresql plugin: Added the ``Interval'' config option.
This option may be used to specify the read interval with which to query a
database.
This option may be used to specify the read interval with which to query a
database.
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.
postgresql plugin: Use the "complex read" mechanism.
This way, multiple databases are queried in parallel (depending on the number
of read threads).
This way, multiple databases are queried in parallel (depending on the number
of read threads).
postgresql plugin: Connect to the database in the read function.
… rather than the init function. This way, we don't need access to some global
list of databases in the init function and it's done in preparation to using
the "complex read" system.
… rather than the init function. This way, we don't need access to some global
list of databases in the init function and it's done in preparation to using
the "complex read" system.
README: Fix typo.
README: Fix typo.
plugin: Introduced a concept of ``read groups''.
Using a new parameter added to plugin_register_complex_read(), it's now
possible to specify a group name for the registered callback. This name may
later be used to unregister *all* callbacks belonging to that group using the
newly added function plugin_unregister_read_group().
This might come in handy for plugins that register multiple read callbacks but
do not want to keep track of all of them in order to be able to unregister
them.
Using a new parameter added to plugin_register_complex_read(), it's now
possible to specify a group name for the registered callback. This name may
later be used to unregister *all* callbacks belonging to that group using the
newly added function plugin_unregister_read_group().
This might come in handy for plugins that register multiple read callbacks but
do not want to keep track of all of them in order to be able to unregister
them.
utils_llist: Added `llist_search_custom()'.
This function may be used for lookups using a custom compare function, i.e.
lookups that are not necessarily based on the name of the registered list
entry but some information specific to the used data-type.
This function may be used for lookups using a custom compare function, i.e.
lookups that are not necessarily based on the name of the registered list
entry but some information specific to the used data-type.
src/utils_format_json.c: Use a format string to add strings to the buffer.
While I hope that DS names can be trusted, I'm feeling more comfortable this
way nonetheless.
While I hope that DS names can be trusted, I'm feeling more comfortable this
way nonetheless.
utils_format_json: include ds names and types in json output.
Make it easier for external systems (i.e. those without visibility into
types.db) to interpret collectd json data.
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Make it easier for external systems (i.e. those without visibility into
types.db) to interpret collectd json data.
Signed-off-by: Florian Forster <octo@huhu.verplant.org>