Sebastian Harl [Thu, 15 Nov 2012 12:42:29 +0000 (13:42 +0100)]
postgresql plugin: Simplified transaction handling a bit.
Don't set any next commit time after committing a transaction but only when
starting a new transaction. This way, db->next_commit == 0 always means that
we're outside of a transaction. Also, this removes the need to restart a
transaction right away. Rather, the write callback will take care of that the
next time it gets any data.
Sebastian Harl [Thu, 15 Nov 2012 06:43:02 +0000 (07:43 +0100)]
postgresql plugin: Unregister all writers on shutdown.
This will make sure that all pending transactions will be committed. Else, the
open transactions would be rolled back by the PostgreSQL backend when closing
the connection.
In order to do so, all database connections are now stored in a plugin-global
array (this will also make further changes possible). Also, a ref-count has
been added to the database object in order to support "deleting" an object
twice when having it in use by a connection doing queries and writes.
If specified, this option causes a writer to put several updates into a single
transaction. This transaction will last for the specified amount of time (in
seconds). By default, each update would be executed in a separate transaction
causing quite some overhead.
Florian Forster [Wed, 14 Nov 2012 09:33:29 +0000 (10:33 +0100)]
rrdtool plugin: Remove warnings.
They made sense when all data was collected at the same interval. This
has not been true for a while now and these warnings don't make any sense
anymore.
We could transform them into a per-VL check and use complaints to notify
the user, but I don't think it's worth it. There is an "I told you so"
in the manpage in big bold letters ...
Florian Forster [Sun, 11 Nov 2012 09:57:55 +0000 (10:57 +0100)]
ping plugin: Don't abort the "ping_thread" when ping_send() fails.
This may happen when the network is down. If the thread fails, the read
callback will indicate an error and the exponential back-off will start.
This is not optimal for this scenario, since you usually want to have
ping stats from right when the network is back up.
Florian Forster [Sat, 10 Nov 2012 20:36:17 +0000 (21:36 +0100)]
aggregation plugin: Implement the "GroupBy" option.
This new configuration format has two benefits:
1) It is easier to understand by users, because they don't have to know
about two types of wildcards.
2) In the future matching of Host, Plugin, Type, ... may support regular
expressions. In that case, this configuration syntax doesn't need to
be adapted.
Brian Aker [Fri, 26 Oct 2012 06:02:15 +0000 (02:02 -0400)]
1) Cleans up one configure.ac error AC_LINK_IFELSE requires AC_LANG_PROGRAM (or something similar) to get the setup right.
2) Fix for maintaier-clean so that you can run the autoreconf build script multiple times.
3) Clean up the generated man pages when running cleanup.
Sebastian Harl [Thu, 25 Oct 2012 09:32:38 +0000 (11:32 +0200)]
oconfig: Allow empty statement lists (in blocks and files).
This allows to use empty blocks (which is useful during development and
testing) and empty files (which may happen when including config directories,
cf. Debian #592881).
In order not to generate a shift/reduce error, rather than allowing a
'statement_list' to be empty, this has been implemented by explicitly allowing
empty blocks and an empty 'entire_file'.
KIvosak [Sat, 13 Oct 2012 10:50:40 +0000 (12:50 +0200)]
Change the libnetlink function used to query link statistics to match iproute2's behavior and thus not trip on the kernel's new parsing of optional attributes for RTM_GETLINK.
Sebastian Harl [Thu, 18 Oct 2012 11:06:37 +0000 (13:06 +0200)]
postgresql plugin: Added "Instance" option to <Database> config block.
This option may be used to specify the plugin instance that should be used
instead of the database name. This allows to query multiple databases of the
same name on the same host (e.g. when running multiple database server
versions in parallel).
Sebastian Harl [Sun, 14 Oct 2012 15:52:39 +0000 (17:52 +0200)]
Use plugin_thread_create() rather than pthread_create() in all plugins.
This function copies the plugin context from the calling thread to the new
thread. While this might not strictly be necessary in most/many cases, this
will make sure that any code within a plugin uses the same context
information, thus avoiding possible problems in the future.
Sebastian Harl [Sun, 14 Oct 2012 14:53:57 +0000 (16:53 +0200)]
plugin: Don't switch plugin context in 'write', 'notification' and 'log'.
Rather, keep the context (i.e. interval) information of the calling (read)
plugin. This allows the write, notify and log callbacks to access the correct
interval settings appropriate for the current data-set.
Sebastian Harl [Sun, 14 Oct 2012 14:42:35 +0000 (16:42 +0200)]
Initialize plugin context to global interval before loading a plugin.
This ensures that the actual interval for each plugin is available through its
context. It is a preparation for removing 'interval_g' (which has limited use
after introducing per-plugin intervals and, thus, its use is rather error-
prone).
Sebastian Harl [Sun, 14 Oct 2012 14:31:01 +0000 (16:31 +0200)]
plugin: Added plugin_get_interval().
This function returns the current value of the plugin's interval. If no
interval has been set in the plugin context, it will fall back to the global
interval or ten seconds as a last resort.