src/utils_cache.[ch]: Implement a meta-data interface for cached values.
This should make it possible to write stateful matches and similar nifty
stuff - at last \o/
This should make it possible to write stateful matches and similar nifty
stuff - at last \o/
src/common.h: Remove the `ds' argument from the `FORMAT_VL' macro.
Since `type' is now included in `value_list_t' the `data_set_t' is no
longer required.
Since `type' is now included in `value_list_t' the `data_set_t' is no
longer required.
src/collectd.conf.in: Fix the default class path of the java plugin.
java bindings: JMXMemory: Remove an annoying folding.
src/collectd.conf.in: java plugin: Use @prefix@ when building the example class path.
java bindings: DataSource: Add `DERIVE' and `ABSOLUTE'.
df plugin, AUTHORS: Add Paul.
df plugin: Fix some "best practices" that have been changed.
Add option to collectd.conf
collectd.conf(5): Add new config option.
df plugin: Add option to report by mountpoint or devicename
match_empty_counter plugin: Match for zero counter values.
src/utils_cache.[ch]: Add uc_get_history[_by_name].
These two new functions can be used to get historical data of values in
the cache. This can be used to calculate floating averages, hysteresis
and a shipload of other aggregation and consolidation functions.
The current implementation is probably not yet perfect:
- If not enough values are available to satisfy the request, the buffer
will be enlarged and NaNs will be returned in the newly allocated
cells. The caller has no way to recognize this case.
- If a value is missing, no NaNs will be added to the cache. It's
unclear if this was desirable.
- The returned values are reversed, i. e. val[0] will be the newest
value, val[n-1] will be the oldest. Here, too, I'm unsure which way
is easier to comprehend / use. I went for this implementation because
it was easier to write.
These two new functions can be used to get historical data of values in
the cache. This can be used to calculate floating averages, hysteresis
and a shipload of other aggregation and consolidation functions.
The current implementation is probably not yet perfect:
- If not enough values are available to satisfy the request, the buffer
will be enlarged and NaNs will be returned in the newly allocated
cells. The caller has no way to recognize this case.
- If a value is missing, no NaNs will be added to the cache. It's
unclear if this was desirable.
- The returned values are reversed, i. e. val[0] will be the newest
value, val[n-1] will be the oldest. Here, too, I'm unsure which way
is easier to comprehend / use. I went for this implementation because
it was easier to write.
Merge branch 'collectd-4.7'
ChangeLog: Fix a typo.
Bumped version to 4.7.2; Updated ChangeLog.
Merge branch 'collectd-4.6' into collectd-4.7
Conflicts:
ChangeLog
version-gen.sh
Conflicts:
ChangeLog
version-gen.sh
Bumped version to 4.6.4; Updated ChangeLog.
Merge branch 'collectd-4.7'
Merge branch 'collectd-4.6' into collectd-4.7
Conflicts:
src/memcached.c
Conflicts:
src/memcached.c
src/configfile.c: Warn if an unexpected block is found.
If the `snmp' plugin isn't loaded (but a configuration exists), no
warning is printed because there are only blocks in the SNMP
configuration..
If the `snmp' plugin isn't loaded (but a configuration exists), no
warning is printed because there are only blocks in the SNMP
configuration..
build.sh, version-gen.sh: Remove bashisms.
Thanks to Peter Bray for pointing them out.
Thanks to Peter Bray for pointing them out.
src/collectd.conf.in: Fix a typo in tokyotyrant's sample config.
Merge branch 'ps/tokyotyrant'
collectd.conf(5): Improved markup of the tokyotyrant documentation.
.gitignore: Update the file.
The pattern `Makefile.in' will match `src/Makefile.in' and others,
because the pattern does not contain a match.
`/configure' will only match the configure script in the base directory
due to special syntax.
`.libs/' matches only directories named `.libs', special syntax again.
For more information see the `gitignore(5)' manual page. The syntax used
corresponds to Git 1.6.
The pattern `Makefile.in' will match `src/Makefile.in' and others,
because the pattern does not contain a match.
`/configure' will only match the configure script in the base directory
due to special syntax.
`.libs/' matches only directories named `.libs', special syntax again.
For more information see the `gitignore(5)' manual page. The syntax used
corresponds to Git 1.6.
tokyotyrant plugin: Lookup service names (port names) and minor fixes.
Build system: Improve detection of the tokyotyrant library.
src/utils_cache.c: `ce' *is* written to in `c_avl_remove'.
Therefore we should definitely free it.
Therefore we should definitely free it.
src/collectd.conf.in: Fix a typo.
src/utils_cache.c: uc_check_timeout: Don't free a `ce' from the previous iteration.
This may habe been a cause of the reported assertion failure, too.
This may habe been a cause of the reported assertion failure, too.
src/utils_cache.c: Add a missing `continue'.
tokkee on IRC & I think we found a bug with utils_cache.c. The uc_check_timeout
function is missing a continue after the "uninteresting" service check, that
causes a key to be null.
This probably caused an assertion failure in cache_compare as reported by
Mariusz.
tokkee on IRC & I think we found a bug with utils_cache.c. The uc_check_timeout
function is missing a continue after the "uninteresting" service check, that
causes a key to be null.
This probably caused an assertion failure in cache_compare as reported by
Mariusz.
tokyotyrant plugin: Make DB handle `static'.
.gitignore: Add some *.o files.
tokyotyrant plugin: Don't need to pass the db handle around, its global.
tokyotyrant plugin: Only connect once.
tokyotyrant plugin: Handle port config param as a string
Add some documentation for tokyotyrant to the collectd.conf manpage
cpu plugin: Fix a typo.
src/utils_threshold.c: Change the percentage code so it works with the DataSource option.
The percentage code used to *always* check the first data source. With this
patch, the code honors the `DataSource' option again, checking only the
configured data sources if applicable.
The percentage code used to *always* check the first data source. With this
patch, the code honors the `DataSource' option again, checking only the
configured data sources if applicable.
collectd.conf(5): Document the new `Percentage' option.
src/utils_threshold.c: Fix a typo.
src/utils_threshold.c: Add a percent sign to the minimum value, too.
src/utils_threshold.c: Percentage support in thresholds
Hi all!
I attach a patch to add percentage support in thresholds, like this example:
<Threshold>
<Type df>
WarningMax 90
Percentage true
</Type>
</Threshold>
The percentage option works like collectd-nagios, that is, calculate the
percentage of the value of the first DS over the total. For df plugin,
for example,
calculate the percentage of the "used" DS.
Bugs and suggestions are welcome :)
Enjoy!
Regards,
Andres
Hi all!
I attach a patch to add percentage support in thresholds, like this example:
<Threshold>
<Type df>
WarningMax 90
Percentage true
</Type>
</Threshold>
The percentage option works like collectd-nagios, that is, calculate the
percentage of the value of the first DS over the total. For df plugin,
for example,
calculate the percentage of the "used" DS.
Bugs and suggestions are welcome :)
Enjoy!
Regards,
Andres
Update README and add Paul to the AUTHORS file.
Fix a bug with recording of port
Port was getting written to plugin_instance as "1978.00000", because
apparently that's the value returned by the config.
Port was getting written to plugin_instance as "1978.00000", because
apparently that's the value returned by the config.
Changes suggested by Sebastian Harl.
* Separate Host and Port in config, report Host as hostname, and Port as
plugin instance.
* Submit before closing connection.
* Else-case in config, in case of invalid config params.
* Flounder around at using pkg-config in configure.in
* Remove forward declarations.
* Include plugin in config summary.
* Separate Host and Port in config, report Host as hostname, and Port as
plugin instance.
* Submit before closing connection.
* Else-case in config, in case of invalid config params.
* Flounder around at using pkg-config in configure.in
* Remove forward declarations.
* Include plugin in config summary.
Plugin for monitoring TokyoTyrant
This plugin monitors the record count and file size of the configured
tokyocabinet server.
TokyoTyrant: http://tokyocabinet.sourceforge.net/tyrantdoc/
This plugin monitors the record count and file size of the configured
tokyocabinet server.
TokyoTyrant: http://tokyocabinet.sourceforge.net/tyrantdoc/
memcached plugin: Pass `ai_hints' to `getaddrinfo'.
Merge branch 'collectd-4.7'
Merge branch 'collectd-4.6' into collectd-4.7
bindings/java/Makefile.am: Fully support $DESTDIR.
src/Makefile: Link the ping plugin against libm.
The plugin now uses sqrt() which is provided by the math lib.
The plugin now uses sqrt() which is provided by the math lib.
collectd2html.pl: Added --recursive command line option.
This option may be used to recursively scan the specified directory for RRD
files. This way, the script works reasonably well with collectd 4.
Thanks to 'ABL <abl@xxx.lt>' for providing an initial patch in Debian bug
#482185.
This option may be used to recursively scan the specified directory for RRD
files. This way, the script works reasonably well with collectd 4.
Thanks to 'ABL <abl@xxx.lt>' for providing an initial patch in Debian bug
#482185.
collectd2html.pl: Allow for --imgformat to be passed to rrdtool.
This was reported as Debian bug #482185.
Signed-off-by: Sebastian Harl <sh@tokkee.org>
This was reported as Debian bug #482185.
Signed-off-by: Sebastian Harl <sh@tokkee.org>
rrdcached plugin: Fix a typo.
network plugin: Cast data sources to their respective types.
Various plugins: Fix formatstring errors.
perl plugin: Improve handling of DERIVE and ABSOLUTE data source types.
java plugin: Improve handling of DERIVE and ABSOLUTE data source types.
csv plugin: Improve handling of DERIVE and ABSOLUTE data source types.
collectd-perl(5): Add the DERIVE and ABSOLUTE data source types.
gmond plugin: Add the DERIVE and ABSOLUTE data source types.
couchdb plugin: Add the DERIVE and ABSOLUTE data source types.
src/utils_cmd_putval.c: Use `parse_values'.
snmp plugin: Use `parse_value' instead of using a separate function here.
src/plugin.c: Introduce the `DS_TYPE_TO_STRING' macro.
src/common.c: Rewrite `parse_value'.
src/utils_cache.c: Add the DERIVE and ABSOLUTE data source types.
src/plugin.h: Use `int64_t' for `derive_t' and `uint64_t' for `absolute_t'.
network plugin: Add the DERIVE and ABSOLUTE data source types.
gmond plugin: Use `strtoull' to parse counter values.
Instead of `strtoll'.
Instead of `strtoll'.
src/common.c: More reliable error reporting in `parse_values'.
Introduce the DERIVE and ABSOLUTE data source types.
Hi,
i've updated my patch to 4.7.0, most of "data input" plugins (curl, java, exec,
perl, tail, couchdb) should work with derive. In case of couchdb and curl, if u
use absolute DS you can only "Set", no "Inc" or "Add" coz obviously that
wouldn't make much sense with it. Other plugins can be "enabled" globally to
use derive by changing "COUNTER" to "DERIVE" in types.db but that way is ugly
(but makes sense in some cases, like when u have lot of tunnels or ppp
interfaces) and either needs converting or recreating rrd files.
Regards
Mariusz
---
Hi,
ive been running my patch with 4.7.1, found a minor bug, but after repairing
that i didnt had any problems with it on my servers, im including patch
(against 4.7.1 from webpage),
Regards,
XANi
Hi,
i've updated my patch to 4.7.0, most of "data input" plugins (curl, java, exec,
perl, tail, couchdb) should work with derive. In case of couchdb and curl, if u
use absolute DS you can only "Set", no "Inc" or "Add" coz obviously that
wouldn't make much sense with it. Other plugins can be "enabled" globally to
use derive by changing "COUNTER" to "DERIVE" in types.db but that way is ugly
(but makes sense in some cases, like when u have lot of tunnels or ppp
interfaces) and either needs converting or recreating rrd files.
Regards
Mariusz
---
Hi,
ive been running my patch with 4.7.1, found a minor bug, but after repairing
that i didnt had any problems with it on my servers, im including patch
(against 4.7.1 from webpage),
Regards,
XANi
configure.in: Add -rpath to JAVA_LDFLAGS.
src/plugin.[ch]: Add meta data to value_list_t.
src/meta_data.[ch]: Add a boolean type.
Merge branch 'collectd-4.6' into collectd-4.7
src/utils_cache.c: Try to improve code readability.
Unfortunately, there is quite some magic going on there :/
Unfortunately, there is quite some magic going on there :/
src/utils_cache.c: Fix OKAY notifications for missing values.
src/Makefile.am: Link the `sensors' plugin against libsensors.
This regression was introduced in 451d75ba.
This regression was introduced in 451d75ba.
dns plugin: Improve debug message.
libcollectdclient/client.c: Made sstrerror() static.
This is a private helper function only.
This is a private helper function only.
Bumped version to 4.7.1; Updated ChangeLog.
Merge branch 'collectd-4.6' into collectd-4.7
Conflicts:
ChangeLog
src/collectd.conf.pod
version-gen.sh
Conflicts:
ChangeLog
src/collectd.conf.pod
version-gen.sh
Bumped version to 4.6.3; Updated ChangeLog.
configure: Include libganglia in the configuration summary.
ChangeLog: Fixed sorting of entries.
configfile.c: Fixed Include'ing empty files.
When including empty files, a typo prevented that the "Include" child (of the
config parse tree) was removed correctly, leaving behind garbage which in turn
led to a segfault if the Include option was not the last element of the config
file.
Also, another Include option following the inclusion of an empty file used to
be ignored. This has been fixed as well.
When including empty files, a typo prevented that the "Include" child (of the
config parse tree) was removed correctly, leaving behind garbage which in turn
led to a segfault if the Include option was not the last element of the config
file.
Also, another Include option following the inclusion of an empty file used to
be ignored. This has been fixed as well.
java plugin: Replace dots ('.') with slashes ('/') when loading a class.
Thanks to Randy Rizun for pointing this out:
Hi!
just wanted to point out an issue in cjni_config_load_plugin
the call to FindClass passes the "Name" verbatim from the LoadPlugin directive
one might intuitively say LoadPlugin "com.foobar.Plugin"
whereas FindClass wants to see it as "com/foobar/Plugin"
so I guess either (a) document LoadPlugin to say to use slashes or (b)
subst / for . in cjni_config_load_plugin or (c) something else?!?
of course, everything works fine if my plugin is in the 'default' java
package (i.e., no package name) =)
either way, thanks a lot for the great work!!
-Randy
Thanks to Randy Rizun for pointing this out:
Hi!
just wanted to point out an issue in cjni_config_load_plugin
the call to FindClass passes the "Name" verbatim from the LoadPlugin directive
one might intuitively say LoadPlugin "com.foobar.Plugin"
whereas FindClass wants to see it as "com/foobar/Plugin"
so I guess either (a) document LoadPlugin to say to use slashes or (b)
subst / for . in cjni_config_load_plugin or (c) something else?!?
of course, everything works fine if my plugin is in the 'default' java
package (i.e., no package name) =)
either way, thanks a lot for the great work!!
-Randy
java plugin: Use slashes rather than dots to lookup classes.
there are three (3) invocations of FindClass that use "." periods
instead of "/" slashes
java.lang.Long
java.lang.Double
org.collectd.api.DataSet
those need to be fixed up to use "/" slashes
Thanks!
there are three (3) invocations of FindClass that use "." periods
instead of "/" slashes
java.lang.Long
java.lang.Double
org.collectd.api.DataSet
those need to be fixed up to use "/" slashes
Thanks!
Merge branch 'collectd-4.7'
Merge branch 'collectd-4.6' into collectd-4.7
dns plugin: Fix a compile warning.
collectd.conf(5): Fixed alphabetic sorting of plugins.
collectd.conf(5): Mark {Min,Max}PGVersion as deprecated.
Instead, document the {Min,Max}Version options.
Instead, document the {Min,Max}Version options.
dns plugin: Implement the `SelectNumericQueryTypes' option.
I've added this patch to my collectd because I have my data dir overpopulated
by unknown query types (those not found in nameserv.h which are converted to
their #xxxx numeric form).
When enabled in configuration file, this option just prevent registering these
qtypes to the list.
I don't see any issues, so I decided to contribute this patch to the list.
This has being tested against 4.6.2, but shouldn't have problems with 4.7.0
Your comments are welcome.
Mirko
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
I've added this patch to my collectd because I have my data dir overpopulated
by unknown query types (those not found in nameserv.h which are converted to
their #xxxx numeric form).
When enabled in configuration file, this option just prevent registering these
qtypes to the list.
I don't see any issues, so I decided to contribute this patch to the list.
This has being tested against 4.6.2, but shouldn't have problems with 4.7.0
Your comments are welcome.
Mirko
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
collectd.conf: Added a sample ipmi config block.
rrdtool plugin: If `flush' cannot find the requested file, issue an `INFO'.
... and not a `WARNING' - this may happen under perfectly fine conditions.
(I. e. file exists but isn't updated anymore.)
... and not a `WARNING' - this may happen under perfectly fine conditions.
(I. e. file exists but isn't updated anymore.)
src/utils_cache.c: Fix incorrect checking of persistent thresholds.
I attached a patch to solve a problem related with notifications. When a value
is missing for a while (2 intervals), a FAILURE notification is raised, and if
Persist is false, the notification is repeated each interval, but man page
says:
If set to false (the default) then a notification is only generated if a
value is out of range but the previous value was okay.
So, I think that is a bug, if not I'm sorry for the noise :)
Regards,
Andres
P.S.: The problem is only a mixing in if conditions into uc_check_timeout
function.
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
I attached a patch to solve a problem related with notifications. When a value
is missing for a while (2 intervals), a FAILURE notification is raised, and if
Persist is false, the notification is repeated each interval, but man page
says:
If set to false (the default) then a notification is only generated if a
value is out of range but the previous value was okay.
So, I think that is a bug, if not I'm sorry for the noise :)
Regards,
Andres
P.S.: The problem is only a mixing in if conditions into uc_check_timeout
function.
Signed-off-by: Florian Forster <octo@huhu.verplant.org>