collectd.git
15 years agojava plugin: Change the API to use the `DataSet' class.
Florian Forster [Sun, 22 Feb 2009 10:29:12 +0000 (11:29 +0100)]
java plugin: Change the API to use the `DataSet' class.

15 years agojava plugin: Use the changed plugin infrastructure to call read and write functions...
Florian Forster [Sat, 21 Feb 2009 17:39:57 +0000 (18:39 +0100)]
java plugin: Use the changed plugin infrastructure to call read and write functions directly.

The read and write functions implemented in Java are now registered with
the "complex" interface as "java:<class name>". This way the cjni_read and
cjni_write functions can determine which Java function to call.

The patch is bigger than it'd need to be, because the order of some
functions has been changed..

15 years agosrc/plugin.c: Change the write callbacks to receive a user_data_t pointer.
Florian Forster [Sat, 21 Feb 2009 17:35:45 +0000 (18:35 +0100)]
src/plugin.c: Change the write callbacks to receive a user_data_t pointer.

There are by far not as many write callbacks, so I've just changed the
callback in general rather than introducing a `complex write' callback.

15 years agosrc/plugin.c: Implement `plugin_register_complex_read'
Florian Forster [Sat, 21 Feb 2009 17:29:52 +0000 (18:29 +0100)]
src/plugin.c: Implement `plugin_register_complex_read'

These read callbacks will receive a user pointer. This is nice for the
Java plugin, because the plugin infrastructure can now call one specific
Java read function.

AfaIk, the Perl plugin can make use of this, too.

15 years agojava plugin: Update the full name of the moved classes.
Florian Forster [Sat, 21 Feb 2009 17:20:44 +0000 (18:20 +0100)]
java plugin: Update the full name of the moved classes.

15 years agoRevert "src/plugin.[ch]: Implement `plugin_dispatch_values_async'."
Florian Forster [Sat, 21 Feb 2009 11:25:29 +0000 (12:25 +0100)]
Revert "src/plugin.[ch]: Implement `plugin_dispatch_values_async'."

This reverts commit ba6497bdffb6a225eb6c86c8b8fa57a2520f0c5f.

15 years agobindings/java: Moved the `PluginData' and `ValueList' classes.
Florian Forster [Sat, 21 Feb 2009 10:39:25 +0000 (11:39 +0100)]
bindings/java: Moved the `PluginData' and `ValueList' classes.

And implemented various (trivial) `Collectd*Interface' classes.

15 years agojava plugin: Implement a reference counter for the JVMEnv pointers.
Florian Forster [Sat, 21 Feb 2009 08:13:43 +0000 (09:13 +0100)]
java plugin: Implement a reference counter for the JVMEnv pointers.

This way one thread entering the Java plugin twice, e. g. with the
following call-chain, will not detach itself from the JVM before it is
completely done with it.

The problematic situation is:
  -> cjni_read
  -> ALLOC JVM
  -> `Read' (in Java)
  -> `DispatchValues' (in Java)
  -> plugin_dispatch_values
  -> cjni_write
  -> ALLOC JVM (this is a no-op!)
  -> `Write' (in Java)
  -> DEALLOC JVM

This last dealloc is prematurely, because the thread is not done with
the JVM yet: It'd like to continue and return from `DispatchValues' to
execute some more Java code..

15 years agoMerge branch 'ff/java' of /var/lib/git/collectd into ff/java
Florian Forster [Fri, 20 Feb 2009 10:13:38 +0000 (11:13 +0100)]
Merge branch 'ff/java' of /var/lib/git/collectd into ff/java

15 years agocollectd-java(5): Fix a typo.
Florian Forster [Fri, 20 Feb 2009 10:13:21 +0000 (11:13 +0100)]
collectd-java(5): Fix a typo.

15 years agojava plugin: Use the new `plugin_dispatch_values_async' function.
Florian Forster [Thu, 19 Feb 2009 22:38:52 +0000 (23:38 +0100)]
java plugin: Use the new `plugin_dispatch_values_async' function.

Having Java read- and write-functions at the same time works now \o/

15 years agosrc/plugin.[ch]: Implement `plugin_dispatch_values_async'.
Florian Forster [Thu, 19 Feb 2009 22:28:16 +0000 (23:28 +0100)]
src/plugin.[ch]: Implement `plugin_dispatch_values_async'.

This function differs from `plugin_dispatch_values' in that it will add
the value_list_t to a queue rather than calling the write functions
right away. This as at least two advantages:

  - The _async function will often return faster, since no file
    operation is done.

  - The ``read thread'' and the ``write thread'' are not the same
    thread. This makes it much easier for plugins that provide both,
    `read' and `write' callbacks.

15 years agojava plugin: Conditionally register read, write, and shutdown callbacks.
Florian Forster [Thu, 19 Feb 2009 20:59:52 +0000 (21:59 +0100)]
java plugin: Conditionally register read, write, and shutdown callbacks.

Right now, this is a quick and dirty work around to get read functions
working again.

15 years agojava plugin: Implement `plugin_get_ds' aka. GetDS.
Florian Forster [Thu, 19 Feb 2009 20:59:09 +0000 (21:59 +0100)]
java plugin: Implement `plugin_get_ds' aka. GetDS.

15 years agojava plugin: Add some comments to a nasty if-cascade.
Florian Forster [Wed, 18 Feb 2009 22:40:23 +0000 (23:40 +0100)]
java plugin: Add some comments to a nasty if-cascade.

15 years agojava plugin: Divide times received from Java by 1000.
Florian Forster [Wed, 18 Feb 2009 22:39:57 +0000 (23:39 +0100)]
java plugin: Divide times received from Java by 1000.

Java keeps time as milliseconds in 64bit integers. Let's keep it that
way and translate to epoch transparently.

The other way around, from C to Java, already multiplies by 1000.

15 years agojava plugin: Have "DispatchValues" return a meaningful status.
Florian Forster [Wed, 18 Feb 2009 22:38:23 +0000 (23:38 +0100)]
java plugin: Have "DispatchValues" return a meaningful status.

I. e. the status of "plugin_dispatch_values". That's as meaningful as
we're going to get.

15 years agocollectd-java(5): Add a manual page for the java plugin.
Florian Forster [Wed, 18 Feb 2009 22:35:59 +0000 (23:35 +0100)]
collectd-java(5): Add a manual page for the java plugin.

15 years agojava plugin: Added the possibility to configure java plugins.
Florian Forster [Wed, 18 Feb 2009 17:43:27 +0000 (18:43 +0100)]
java plugin: Added the possibility to configure java plugins.

15 years agoMerge branch 'master' into ff/java
Florian Forster [Wed, 18 Feb 2009 17:46:40 +0000 (18:46 +0100)]
Merge branch 'master' into ff/java

15 years agosrc/liboconfig/oconfig.[ch]: Add `oconfig_clone'.
Florian Forster [Wed, 18 Feb 2009 17:41:20 +0000 (18:41 +0100)]
src/liboconfig/oconfig.[ch]: Add `oconfig_clone'.

This new function clones an entire sub-tree, that can be free'd again
using `oconfig_free'.

15 years agojava plugin: Implemented oconfig types in Java.
Florian Forster [Wed, 18 Feb 2009 15:43:26 +0000 (16:43 +0100)]
java plugin: Implemented oconfig types in Java.

The CollectdAPI class has been moved to the `org.collectd.api'
namespace, too, so that this stuff is together..

15 years agojava plugin: Added some configuration possibilities.
Florian Forster [Wed, 18 Feb 2009 13:20:02 +0000 (14:20 +0100)]
java plugin: Added some configuration possibilities.

15 years agojava plugin: Added the ability to have `Write' callbacks in Java modules.
Florian Forster [Wed, 18 Feb 2009 11:49:56 +0000 (12:49 +0100)]
java plugin: Added the ability to have `Write' callbacks in Java modules.

I think right now having both, a `Read' and a `Write' function, would be
a problem, because the same thread would enter the JVM twice, possibly
detaching itself from the JVM when the write callback is finished, while
it actually still is in the read callback. Adding a `dispatch thread' or
something similar should take care of this problem.

Other than that, converting `data_set_t' and `value_list_t' to their
Java equivalents and back works fine now.

15 years agocollectd.conf(5): Removed the section about filter_pcre.
Sebastian Harl [Wed, 18 Feb 2009 11:09:34 +0000 (12:09 +0100)]
collectd.conf(5): Removed the section about filter_pcre.

This plugin no longer exists ...

15 years agoDon't unnecessarily link match_regex against libpcre.
Sebastian Harl [Wed, 18 Feb 2009 11:06:18 +0000 (12:06 +0100)]
Don't unnecessarily link match_regex against libpcre.

Since no plugin currently uses libpcre, configure no longer checks for it and
it has been removed from README.

15 years agoREADME: Replaced filter plugins with matches and targets.
Sebastian Harl [Wed, 18 Feb 2009 10:52:34 +0000 (11:52 +0100)]
README: Replaced filter plugins with matches and targets.

15 years agoREADME: Added the oracle plugin and libclntsh.
Sebastian Harl [Wed, 18 Feb 2009 10:36:05 +0000 (11:36 +0100)]
README: Added the oracle plugin and libclntsh.

15 years agoREADME: Added curl plugin.
Sebastian Harl [Wed, 18 Feb 2009 10:24:40 +0000 (11:24 +0100)]
README: Added curl plugin.

15 years agojava plugin: Add an early prototype of a Java binding, similar to the Perl plugin.
Florian Forster [Tue, 17 Feb 2009 22:45:40 +0000 (23:45 +0100)]
java plugin: Add an early prototype of a Java binding, similar to the Perl plugin.

It's totally proof-of-concept, but it's possible to dispatch values from
a Java class using the ValueList implementation provided by Doug
MacEachern from Hyperic. The other way around is not yet implemented,
but that's just a matter of time and code. Configuration, notifications,
targets, matches - all that is still missing.

Right now, the code requires JNI version 1.2. Maybe I'll try to
introduce compatibility with JNI 1.1 at a later point, if it's really
useful for somebody.

Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
15 years agoMerge branch 'sh/next' collectd-4.6.0
Florian Forster [Mon, 16 Feb 2009 21:56:37 +0000 (22:56 +0100)]
Merge branch 'sh/next'

15 years agopostgresql: Fixed calculation of a database's max_params_num.
Sebastian Harl [Mon, 16 Feb 2009 21:41:19 +0000 (22:41 +0100)]
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().

15 years agocollectd.conf(5): Fixed some typos.
Sebastian Harl [Mon, 16 Feb 2009 21:16:22 +0000 (22:16 +0100)]
collectd.conf(5): Fixed some typos.

15 years agolibcollectdclient: Use `EILSEQ' rather than `EPROTO'.
Florian Forster [Mon, 16 Feb 2009 21:08:45 +0000 (22:08 +0100)]
libcollectdclient: Use `EILSEQ' rather than `EPROTO'.

EPROTO is an XSR (XSI streams) extension and not supported on some
platforms (OpenBSD, apparently).

15 years agosrc/utils_db_query.c: Make `InstancePrefix' and `InstancesFrom' optional.
Florian Forster [Mon, 16 Feb 2009 17:17:53 +0000 (18:17 +0100)]
src/utils_db_query.c: Make `InstancePrefix' and `InstancesFrom' optional.

This is required by the default PostgreSQL queries.

15 years agoMerge branch 'sh/next'
Florian Forster [Mon, 16 Feb 2009 16:51:26 +0000 (17:51 +0100)]
Merge branch 'sh/next'

Conflicts:

ChangeLog

15 years agocollectd.conf(5): Fixed and improved the section about the filter mechanism.
Florian Forster [Mon, 16 Feb 2009 16:49:38 +0000 (17:49 +0100)]
collectd.conf(5): Fixed and improved the section about the filter mechanism.

15 years agosrc/Makefile.am: Link utils_db_query into the postgresql plugin.
Sebastian Harl [Mon, 16 Feb 2009 15:40:40 +0000 (16:40 +0100)]
src/Makefile.am: Link utils_db_query into the postgresql plugin.

15 years agocollectd-perl(5): Documented the filter chain support.
Sebastian Harl [Mon, 16 Feb 2009 15:35:54 +0000 (16:35 +0100)]
collectd-perl(5): Documented the filter chain support.

15 years agoChangeLog: Updated date and fixed a typo.
Florian Forster [Mon, 16 Feb 2009 14:45:15 +0000 (15:45 +0100)]
ChangeLog: Updated date and fixed a typo.

15 years agocollectd.conf(5): Fix a minor formatting error.
Florian Forster [Mon, 16 Feb 2009 13:31:50 +0000 (14:31 +0100)]
collectd.conf(5): Fix a minor formatting error.

15 years agoChangeLog: Added changes to the perl plugin.
Sebastian Harl [Mon, 16 Feb 2009 14:43:17 +0000 (15:43 +0100)]
ChangeLog: Added changes to the perl plugin.

15 years agosrc/filter_chain.c: Made match_proc_t.create optional.
Sebastian Harl [Mon, 16 Feb 2009 14:16:48 +0000 (15:16 +0100)]
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.

15 years agosrc/filter_chain.c: Fixed typos in warning / error messages.
Sebastian Harl [Mon, 16 Feb 2009 14:07:27 +0000 (15:07 +0100)]
src/filter_chain.c: Fixed typos in warning / error messages.

15 years agoperl plugin, Collectd.pm: Added support for filter chains.
Sebastian Harl [Mon, 16 Feb 2009 13:59:57 +0000 (14:59 +0100)]
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.

15 years agoperl plugin: Do not pass NULL to newRV().
Sebastian Harl [Mon, 16 Feb 2009 12:39:54 +0000 (13:39 +0100)]
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.

15 years agoChanged plugin_notification_meta_free()'s argument to a notification_meta_t.
Sebastian Harl [Mon, 16 Feb 2009 11:02:09 +0000 (12:02 +0100)]
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.

15 years agoperl plugin: Fixed a memory leak in pplugin_dispatch_notification().
Sebastian Harl [Mon, 16 Feb 2009 10:53:02 +0000 (11:53 +0100)]
perl plugin: Fixed a memory leak in pplugin_dispatch_notification().

Free the notification meta information that have possibly been allocated in
notification2hv().

15 years agoperl plugin: Convert notification meta data as well.
Sebastian Harl [Sat, 14 Feb 2009 18:33:35 +0000 (19:33 +0100)]
perl plugin: Convert notification meta data as well.

The notification meta data are represented as an array of hash references:

  [
    {
      name  => <name>,
      value => <value>
    },
    ...
  ]

15 years agoperl plugin: Don't ignore the 'interval' member when converting value lists.
Sebastian Harl [Sat, 14 Feb 2009 15:45:55 +0000 (16:45 +0100)]
perl plugin: Don't ignore the 'interval' member when converting value lists.

15 years agoswap plugin: Be more sensitive about integer sizes in the *BSD code.
Florian Forster [Mon, 16 Feb 2009 12:34:44 +0000 (13:34 +0100)]
swap plugin: Be more sensitive about integer sizes in the *BSD code.

15 years agosrc/filter_chain.c: Document the `meta' argument passed to matches and targets inline.
Florian Forster [Mon, 16 Feb 2009 12:26:25 +0000 (13:26 +0100)]
src/filter_chain.c: Document the `meta' argument passed to matches and targets inline.

15 years agoconfigure.in: Improve checking for libstatgrab using pkg-config.
Florian Forster [Mon, 16 Feb 2009 12:08:06 +0000 (13:08 +0100)]
configure.in: Improve checking for libstatgrab using pkg-config.

15 years agoswap plugin: Fix another typo in the *BSD code.
Simon Kuhnle [Mon, 16 Feb 2009 12:06:06 +0000 (13:06 +0100)]
swap plugin: Fix another typo in the *BSD code.

15 years agoMerge branch 'collectd-4.5'
Florian Forster [Mon, 16 Feb 2009 11:48:22 +0000 (12:48 +0100)]
Merge branch 'collectd-4.5'

Conflicts:

configure.in

15 years agoMerge branch 'collectd-4.4' into collectd-4.5
Florian Forster [Mon, 16 Feb 2009 11:35:23 +0000 (12:35 +0100)]
Merge branch 'collectd-4.4' into collectd-4.5

Conflicts:

configure.in

15 years agocollectd.conf(5): Removed references to the `main' chain.
Florian Forster [Mon, 16 Feb 2009 11:33:23 +0000 (12:33 +0100)]
collectd.conf(5): Removed references to the `main' chain.

The chains are now called `PreCache' and `PostCache'.

15 years agocollectd.conf(5): Add documentation for the `notify_email' plugin.
Florian Forster [Mon, 16 Feb 2009 11:30:13 +0000 (12:30 +0100)]
collectd.conf(5): Add documentation for the `notify_email' plugin.

15 years agoswap plugin: Fix two typos in the *BSD code.
Simon Kuhnle [Mon, 16 Feb 2009 11:00:35 +0000 (12:00 +0100)]
swap plugin: Fix two typos in the *BSD code.

15 years agoswap plugin: Added support for OpenBSD and possibly other *BSDs.
Florian Forster [Mon, 16 Feb 2009 10:42:28 +0000 (11:42 +0100)]
swap plugin: Added support for OpenBSD and possibly other *BSDs.

15 years agoChangeLog: Document Simon's changes.
Florian Forster [Sun, 15 Feb 2009 17:30:39 +0000 (18:30 +0100)]
ChangeLog: Document Simon's changes.

15 years agoconfigure.in: Activate the cpu and swap plugins if sysctl is available.
Florian Forster [Sun, 15 Feb 2009 17:30:20 +0000 (18:30 +0100)]
configure.in: Activate the cpu and swap plugins if sysctl is available.

15 years agocpu plugin: Check if all required sysctl defines are present.
Florian Forster [Sun, 15 Feb 2009 14:01:05 +0000 (15:01 +0100)]
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..

15 years agocpu plugin: Fix indentation for the libstatgrab code.
Florian Forster [Sun, 15 Feb 2009 13:33:39 +0000 (14:33 +0100)]
cpu plugin: Fix indentation for the libstatgrab code.

15 years agocpu plugin: Use C99-like stack allocation.
Simon Kuhnle [Sun, 15 Feb 2009 13:32:56 +0000 (14:32 +0100)]
cpu plugin: Use C99-like stack allocation.

As suggested by octo.

Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
15 years agocpu plugin: Add support for OpenBSD.
Simon Kuhnle [Sun, 8 Feb 2009 12:16:19 +0000 (13:16 +0100)]
cpu plugin: Add support for OpenBSD.

Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
15 years agoBumped version to 4.6.0; Updated ChangeLog.
Florian Forster [Sun, 15 Feb 2009 11:43:50 +0000 (12:43 +0100)]
Bumped version to 4.6.0; Updated ChangeLog.

15 years agobind plugin: Implement per-zone statistics.
Florian Forster [Sat, 14 Feb 2009 22:38:48 +0000 (23:38 +0100)]
bind plugin: Implement per-zone statistics.

Also, the configuration schema has been improved - hopefully.

15 years agotimediff match: Add a match for values with an invalid time.
Florian Forster [Sat, 14 Feb 2009 18:18:23 +0000 (19:18 +0100)]
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.

15 years agosrc/utils_db_query.h: Fix a small typo.
Florian Forster [Sat, 14 Feb 2009 17:39:43 +0000 (18:39 +0100)]
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...
Florian Forster [Sat, 14 Feb 2009 17:31:49 +0000 (18:31 +0100)]
src/utils_db_query.c: udb_query_pick_from_list* should add *all* queries of the desired name.

15 years agopostgresql plugin: Use the DB query module.
Florian Forster [Sat, 14 Feb 2009 16:26:37 +0000 (17:26 +0100)]
postgresql plugin: Use the DB query module.

The old (legacy) features should still be supported.

15 years agosrc/utils_db_query.[ch]: Add the possibility to `pick' queries by name.
Florian Forster [Sat, 14 Feb 2009 16:09:40 +0000 (17:09 +0100)]
src/utils_db_query.[ch]: Add the possibility to `pick' queries by name.

15 years agosrc/utils_db_query.c: Add support for the `Column' configuration option.
Florian Forster [Sat, 14 Feb 2009 14:44:07 +0000 (15:44 +0100)]
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.

15 years agosrc/utils_db_query.[ch]: Introduces a ``legacy mode''.
Florian Forster [Sat, 14 Feb 2009 13:04:02 +0000 (14:04 +0100)]
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.

15 years agotail plugin: Fix a format string for a size_t.
Florian Forster [Sat, 14 Feb 2009 13:13:00 +0000 (14:13 +0100)]
tail plugin: Fix a format string for a size_t.

Probably a result of f50ada19.

15 years agoFixed various signedness issues identified by -Wextra.
Sebastian Harl [Wed, 11 Feb 2009 10:31:30 +0000 (11:31 +0100)]
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.

15 years agoDocument unused parameters.
Sebastian Harl [Wed, 11 Feb 2009 09:43:25 +0000 (10:43 +0100)]
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).

15 years agocontrib/php-collection: Save/load graph list and fix HTTPS handling. collectd-4.4
Bruno Prémont [Tue, 10 Feb 2009 20:38:23 +0000 (21:38 +0100)]
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

15 years agocontrib/php-collection: Add a PHP frontend for graph generation.
Bruno Prémont [Tue, 10 Feb 2009 20:35:44 +0000 (21:35 +0100)]
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)

15 years agoperl plugin, configure: Check for struct mgvtbl.svt_local.
Sebastian Harl [Tue, 10 Feb 2009 20:31:17 +0000 (21:31 +0100)]
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.

15 years agoperl plugin / Collectd.pm: Export plugin_write() to Perl.
Sebastian Harl [Mon, 9 Feb 2009 20:07:31 +0000 (21:07 +0100)]
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().

15 years agoperl plugin: Don't do any type conversion in pplugin_dispatch_notification().
Sebastian Harl [Mon, 9 Feb 2009 18:20:13 +0000 (19:20 +0100)]
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.

15 years agoperl plugin: Don't do any type conversion in pplugin_register_data_set().
Sebastian Harl [Mon, 9 Feb 2009 18:05:29 +0000 (19:05 +0100)]
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.

15 years agoperl plugin: Don't do any type conversion in pplugin_dispatch_values().
Sebastian Harl [Mon, 9 Feb 2009 17:48:33 +0000 (18:48 +0100)]
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.

15 years agosrc/plugin.h: Fixed some minor typos.
Sebastian Harl [Mon, 9 Feb 2009 16:54:05 +0000 (17:54 +0100)]
src/plugin.h: Fixed some minor typos.

15 years agocpu plugin: Report interrupt separately when using sysctlbyname.
Florian Forster [Sun, 8 Feb 2009 14:36:58 +0000 (15:36 +0100)]
cpu plugin: Report interrupt separately when using sysctlbyname.

15 years agobuild.sh: Fix the check for libtoolize vs. glibtoolize.
Florian Forster [Sat, 7 Feb 2009 09:27:08 +0000 (10:27 +0100)]
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..

15 years agocollectd.conf(5): Document the curl plugin properly.
Florian Forster [Fri, 6 Feb 2009 15:55:15 +0000 (16:55 +0100)]
collectd.conf(5): Document the curl plugin properly.

15 years agocurl plugin: Enable the `Verify{Peer,Host}' options by default.
Florian Forster [Fri, 6 Feb 2009 15:53:49 +0000 (16:53 +0100)]
curl plugin: Enable the `Verify{Peer,Host}' options by default.

So the curl plugin behaves just like the apache plugin in this respect.

15 years agoconfigure.in: Sort plugins and libraries alphabetically.
Florian Forster [Fri, 6 Feb 2009 15:28:24 +0000 (16:28 +0100)]
configure.in: Sort plugins and libraries alphabetically.

15 years agocurl plugin: Add a generic plugin to retrieve and parse web pages.
Florian Forster [Fri, 6 Feb 2009 15:27:02 +0000 (16:27 +0100)]
curl plugin: Add a generic plugin to retrieve and parse web pages.

15 years agoMerge branch 'master' of octo@verplant.org:/var/lib/git/collectd
Florian Forster [Thu, 5 Feb 2009 21:54:40 +0000 (22:54 +0100)]
Merge branch 'master' of octo@verplant.org:/var/lib/git/collectd

15 years agoMerge branch 'ff/local'
Florian Forster [Thu, 5 Feb 2009 21:54:24 +0000 (22:54 +0100)]
Merge branch 'ff/local'

15 years agocontrib/collection.cgi: Add graph definition for libvirt/virt_cpu_total
John Leach [Thu, 5 Feb 2009 21:40:41 +0000 (22:40 +0100)]
contrib/collection.cgi: Add graph definition for libvirt/virt_cpu_total

15 years agosrc/utils_threshold.c: Properly document the `ut_check_interesting' function.
Florian Forster [Thu, 5 Feb 2009 21:38:52 +0000 (22:38 +0100)]
src/utils_threshold.c: Properly document the `ut_check_interesting' function.

15 years agopostgresql plugin: Updated copyright information.
Sebastian Harl [Thu, 5 Feb 2009 20:33:33 +0000 (21:33 +0100)]
postgresql plugin: Updated copyright information.

;-)

15 years agosrc/plugin.[ch]: Removed obsolete plugin_{un,}register_filter().
Sebastian Harl [Thu, 5 Feb 2009 20:05:01 +0000 (21:05 +0100)]
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.

15 years agoLet plugin_dispatch_values() set value_list.time in case of 'now'.
Sebastian Harl [Tue, 3 Feb 2009 13:08:32 +0000 (14:08 +0100)]
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.

15 years agoConverted timeval_sub_timespec() to timeval_cmp().
Sebastian Harl [Tue, 3 Feb 2009 12:05:21 +0000 (13:05 +0100)]
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.