lpar plugin: update commen t regarding poll_idle vs pool_busy
Signed-off-by: Aurelien Reynaud <collectd@wattapower.net>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Signed-off-by: Aurelien Reynaud <collectd@wattapower.net>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
lpar plugin: check for donation support in libperfstat
Signed-off-by: Aurelien Reynaud <collectd@wattapower.net>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Signed-off-by: Aurelien Reynaud <collectd@wattapower.net>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
lpar plugin: Calculate "pool busy" from "pool idle", not the other way around.
lpar plugin: Use a global "perfstat_partition_total_t" struct.
lpar plugin: Account "idle" pool time rather than "max".
lpar plugin: Explain donations a bit more.
lpar plugin: Rename the "system" metric (from "sys").
lpar plugin: Introduce a "NS_TO_TICKS" macro.
This makes the code easier to read, IMHO.
This makes the code easier to read, IMHO.
lpar plugin: Move / add comments.
lpar plugin update
Hello,
here is a new patch against ar/lpar with the following features :
- get back to the original implementation with gauges only. A new type
"vcpu" is created (it was "lpar_pcpu" in the original)
- I tried to keep as much as possible of your changes, but some have
been reverted (the init function is back) because it was simpler for me
to port my previous code rather than adapt it to the current form. Feel
free to change them again
- the "consumed" metric might seem superfluous at first sight as it
could be calculated in the frontend in the general case. But I thought
it might come in handy when dealing with dedicated partitions, where
donated and stolen values are no easy concepts. Not everyone wants to
dig into the code and the APIs to find out what they mean and whether
they should be added to or substracted from other values...
As a side note, one of the changes you introduced was better checking
of the return status from perfstat_partition_total() using errno. This
reminded me that under AIX errno is by default unsafe to use in a
multithreaded environment (which collectd is). I posted a fix ("Fix
errno thread-safety under AIX") on Sat, 19 Jun 2010, which if I am not
mistaken has not been merged yet.
Best regards,
Aurélien Reynaud
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Hello,
here is a new patch against ar/lpar with the following features :
- get back to the original implementation with gauges only. A new type
"vcpu" is created (it was "lpar_pcpu" in the original)
- I tried to keep as much as possible of your changes, but some have
been reverted (the init function is back) because it was simpler for me
to port my previous code rather than adapt it to the current form. Feel
free to change them again
- the "consumed" metric might seem superfluous at first sight as it
could be calculated in the frontend in the general case. But I thought
it might come in handy when dealing with dedicated partitions, where
donated and stolen values are no easy concepts. Not everyone wants to
dig into the code and the APIs to find out what they mean and whether
they should be added to or substracted from other values...
As a side note, one of the changes you introduced was better checking
of the return status from perfstat_partition_total() using errno. This
reminded me that under AIX errno is by default unsafe to use in a
multithreaded environment (which collectd is). I posted a fix ("Fix
errno thread-safety under AIX") on Sat, 19 Jun 2010, which if I am not
mistaken has not been merged yet.
Best regards,
Aurélien Reynaud
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
lpar plugin: Fix error handling of the "perfstat_partition_total" function.
According to the documentation the function returns -1 on error. The
code now assumes anything but one (the number of structures filled) as
error.
According to the documentation the function returns -1 on error. The
code now assumes anything but one (the number of structures filled) as
error.
lpar plugin: Document why comsumed ticks may be larger than entitled ticks.
lpar plugin: Refactor reading of "shared partitions".
Especially calculating the ticks unavailable to the partition has been
improved. The "pool statistics" may need some further work.
The code has been written without an AIX machine at hand, so it's
absolutely untested and may not even compile. Sorry.
Especially calculating the ticks unavailable to the partition has been
improved. The "pool statistics" may need some further work.
The code has been written without an AIX machine at hand, so it's
absolutely untested and may not even compile. Sorry.
lpar plugin: Use booleans for the config options.
lpar plugin: new attempt
Hello Florian,
here is a new version of my lpar plugin. I tried to address the
shortcomings of the previous attempt:
- Minimum and maximum proc capacity are gone, being static values
- The plugin now uses the cpu type for every value, so there is no need
anymore for the lpar_cpu type
- This also means there is no need anymore to compute rates in the
plugin, so the code is IMHO much more elegant
- There is a config option "ReportBySerial", as described in my previous
email
- We now use pool_busy_time directly instead of computing it from total
and idle
The patch is against the current 4.10 branch, rather than against
ar/lpar, because it is more of a complete rewrite than just fixes. I
could provide a patch against ar/lpar however if you prefer so.
Regards,
Aurélien Reynaud
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
Hello Florian,
here is a new version of my lpar plugin. I tried to address the
shortcomings of the previous attempt:
- Minimum and maximum proc capacity are gone, being static values
- The plugin now uses the cpu type for every value, so there is no need
anymore for the lpar_cpu type
- This also means there is no need anymore to compute rates in the
plugin, so the code is IMHO much more elegant
- There is a config option "ReportBySerial", as described in my previous
- We now use pool_busy_time directly instead of computing it from total
and idle
The patch is against the current 4.10 branch, rather than against
ar/lpar, because it is more of a complete rewrite than just fixes. I
could provide a patch against ar/lpar however if you prefer so.
Regards,
Aurélien Reynaud
Signed-off-by: Florian Forster <octo@leeloo.lan.home.verplant.org>
lpar plugin: Use the "cpu" type for the general CPU statistics.
New plugin - lpar
Hello,
here is a patch against 4.10 adding a new plugin "lpar".
LPAR stands for Logical PARtitions, which is the virtualization solution
for IBM high-end power systems running AIX.
The standard cpu plugin shows cpu usage as a percentage of each cpu
available to the system, but in an LPAR the number of cpus and their
apparent power can vary according to the load of every LPAR sharing the
same hardware and to the policy set by the admin.
This new plugin allows to monitor real (physical) CPU usage of the
virtualized system, as well as some other metrics specific to IBM's
partitioning solution.
Regards,
Aurélien Reynaud
--
Love is like PI - natural, irrational, endless, and very important.
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Hello,
here is a patch against 4.10 adding a new plugin "lpar".
LPAR stands for Logical PARtitions, which is the virtualization solution
for IBM high-end power systems running AIX.
The standard cpu plugin shows cpu usage as a percentage of each cpu
available to the system, but in an LPAR the number of cpus and their
apparent power can vary according to the load of every LPAR sharing the
same hardware and to the policy set by the admin.
This new plugin allows to monitor real (physical) CPU usage of the
virtualized system, as well as some other metrics specific to IBM's
partitioning solution.
Regards,
Aurélien Reynaud
--
Love is like PI - natural, irrational, endless, and very important.
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
perl plugin: Remove the deprecated "plugin_flush_{all,one}" functions.
perl plugin: Remove deprecated compatibility code from "Collectd_plugin_dispatch_values".
src/types.db: Remove the "mysql_qcache" and "mysql_threads" types.
Use the "v5upgrade" taret to preserve compatibility.
Use the "v5upgrade" taret to preserve compatibility.
Merge branch 'collectd-4.10'
Merge branch 'collectd-4.9' into collectd-4.10
src/utils_heap.c: Fix calculation of the parent's index.
This resulted in the "upwards" reheap function to return prematurely,
leaving the heap condition violated.
This resulted in the "upwards" reheap function to return prematurely,
leaving the heap condition violated.
collectd-nagios: Remove forgotten commend.
collectd-nagios: Remove unnecessary includes.
The UNIX socket is now handled in the library, no need for including
those files anymore.
The UNIX socket is now handled in the library, no need for including
those files anymore.
collectdctl: Reorder includes and set strict C99/POSIX mode.
This enables NAN on some systems, e.g. old Linux boxes.
This enables NAN on some systems, e.g. old Linux boxes.
collectdctl: Fix comparison with uninitialized variable.
collectdctl: Fix problems with strict aliasing.
Merge branch 'collectd-4.10'
Merge branch 'collectd-4.9' into collectd-4.10
src/plugin.c: Improve an info message.
Based on a patch by Sebastian, which didn't use the handy "FORMAT_VL"
macro.
Based on a patch by Sebastian, which didn't use the handy "FORMAT_VL"
macro.
Merge branch 'ad/redis'
Merge branch 'ff/redis' into ad/redis
write_redis plugin: Add all identifiers to a "set".
This should make it easy for front-ends to discover available metrics.
This should make it easy for front-ends to discover available metrics.
write_redis plugin: Use an "append" macro to fill the values buffer.
This way we don't have to copy the entire buffer, which is hopefully
faster.
This way we don't have to copy the entire buffer, which is hopefully
faster.
write_redis plugin: Fix copyright information.
redis plugin: Add default configuration.
redis plugin: Improve the types used for storing information.
redis plugin: Use a linked list rather than an AVL tree.
Since the main purpose of the data structure is to iterate over it, using
an AVL tree here is less efficient than a linked list. Also, it's easier
to read.
Since the main purpose of the data structure is to iterate over it, using
an AVL tree here is less efficient than a linked list. Also, it's easier
to read.
collectd.conf(5): Document he "Derive*" and "AbsoluteSet" DSTypes of the tail plugin.
src/utils_match.c: Use strtoull(3) for counter and absolute data sources.
src/utils_match.h: Fix a bug preventing derive values from being handled correctly.
Due to the bit-wise check, the value for derive (0x30) matches the check
for gauge (0x10), too. This commit fixes the behavior by assigning other
numeric values to the defines.
Due to the bit-wise check, the value for derive (0x30) matches the check
for gauge (0x10), too. This commit fixes the behavior by assigning other
numeric values to the defines.
src/configfile.c: Continue parsing config files if stat'ing one file fails.
src/utils_db_query.[ch]: Remove legacy code.
The "legacy mode" supported an old configuration schema of the
PostgreSQL plugin. This commit removes it, so only the recommended
configuration remains possible.
The "legacy mode" supported an old configuration schema of the
PostgreSQL plugin. This commit removes it, so only the recommended
configuration remains possible.
write_redis plugin: Add a new plugin writing collectd data to an instance of Redis.
collectd.conf(5): Improve the "Redis plugin" documentation a bit.
configure.in: Reorder the library checks alphabetically.
redis plugin: Simplify configuration handling.
Fix a number of minor bugs.
- The Port configuration option is a string, not a number. Fix
documentation.
- Fix a bad status assignement in port parser.
- Remove default node. Now node is mandatory to prevent
duplicates in tree.
- Update configuration example too.
- The Port configuration option is a string, not a number. Fix
documentation.
- Fix a bad status assignement in port parser.
- Remove default node. Now node is mandatory to prevent
duplicates in tree.
- Update configuration example too.
14 years agocollectdctl: Explicitly cast "long" to "int". This might be a problem on 32bit archit...
collectdctl: Explicitly cast "long" to "int". This might be a problem on 32bit architectures.
collectdctl: Added support for ‘U’ (undef) values in ‘putval’.
libcollectdclient: Fixed handling of ‘U’ (undef) in ‘PUTVAL’.
collectdctl: Improved error reporting.
collectdctl: Added support for the ‘putval’ command.
libcollectdclient: Added missing element to LCC_VALUE_LIST_INIT.
collectdctl: Moved examples section from help output to manpage.
collectdctl: ‘flush’ now supports multiple plugins/identifiers.
… just like the ‘unixsock’ plugin does.
… just like the ‘unixsock’ plugin does.
collectdctl(1): Updated the manpage according to the latest changes.
collectdctl: Improved error reporting.
collectdctl: Added ‘listval’ command.
Renamed ‘collectd-flush’ to ‘collectdctl’ (collectd control interface).
collectd-flush: Added ‘getval’ to the help output.
collectd-flush: Added support for the ‘getval’ command.
collectd-flush: Moved connection handling out of ‘flush()’.
collectd-flush: Switched to a command based syntax.
Basically, the command line now looks similar to the ‘unixsock’ text protocol,
i.e., a command is specified as first non-option argument followed by any
options of that command as defined by the protocol.
Basically, the command line now looks similar to the ‘unixsock’ text protocol,
i.e., a command is specified as first non-option argument followed by any
options of that command as defined by the protocol.
curl json: Fix checking the response code.
src/Makefile: Build and ship (in the tarball) the collectd-flush manpage.
collectd-flush: Include version and author information in usage output.
Just like the other tools.
Just like the other tools.
collectd-flush: Determine default socket from configured localstatedir.
collectd-flush: Do not use ‘getopt_long()’.
This is a GNU extension and, thus, not portable.
Also, pimped the usage output a bit.
This is a GNU extension and, thus, not portable.
Also, pimped the usage output a bit.
collectd-flush: Simplified ‘usage()’ a bit.
src/utils_cmd_putval.[ch]: Implement "create_putval".
write_http plugin: Move "wh_value_list_to_string" to src/common.[ch].
collectd-flush: Minor coding style changes.
collectd-flush: Add a missing "break" in a "switch" case.
Update Makefile.am to build collectd-flush
As I am no automake expert, I basically copied
the lines for collectd-nagios and changed them
to collectd-flush. It works, but maybe there could
be better ways to do it. I don't know. :)
As I said in the previous mail:
If this message is not properly encoded as utf-8, something wrong must have
happened with my mailer. If that's the case, I'm sorry. The only non-ascii character
in the patch is the second character of my name, which is an å.
Signed-off-by: Håkon J Dugstad Johnsen <hakon-dugstad.johnsen@telenor.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
As I am no automake expert, I basically copied
the lines for collectd-nagios and changed them
to collectd-flush. It works, but maybe there could
be better ways to do it. I don't know. :)
As I said in the previous mail:
If this message is not properly encoded as utf-8, something wrong must have
happened with my mailer. If that's the case, I'm sorry. The only non-ascii character
in the patch is the second character of my name, which is an å.
Signed-off-by: Håkon J Dugstad Johnsen <hakon-dugstad.johnsen@telenor.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Add collectd-flush command line utility.
collectd-flush is a small command-line utility which uses libcollectdclient
to flush collectd through the unixsock plugin. As far as I know, there is
no easy way to work with unix sockets from the shell, so if someone
wanted to flush collectd without this program, they would need to do it
through some other language (or restart the deamon).
I am no C wizard, so please bear with me if I have
done something a stupid way. :)
The code is based on/inspired by collectd-nagios.
If this message is not properly encoded as utf-8, something wrong must have
happened with my mailer. If that's the case, I'm sorry. The only non-ascii character
in the patch is the second character of my name, which is an å.
Signed-off-by: Håkon J Dugstad Johnsen <hakon-dugstad.johnsen@telenor.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
collectd-flush is a small command-line utility which uses libcollectdclient
to flush collectd through the unixsock plugin. As far as I know, there is
no easy way to work with unix sockets from the shell, so if someone
wanted to flush collectd without this program, they would need to do it
through some other language (or restart the deamon).
I am no C wizard, so please bear with me if I have
done something a stupid way. :)
The code is based on/inspired by collectd-nagios.
If this message is not properly encoded as utf-8, something wrong must have
happened with my mailer. If that's the case, I'm sorry. The only non-ascii character
in the patch is the second character of my name, which is an å.
Signed-off-by: Håkon J Dugstad Johnsen <hakon-dugstad.johnsen@telenor.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Fix incorrect error logging.
Was calling sys.stderror instead of sys.stderr.
Was calling sys.stderror instead of sys.stderr.
redis plugin: Use "sizeof" rather than repeating the size.
curl_json plugin: Use a more descriptive define as return value.
redis plugin: Whitespace fixes.
I've re-indented the entire plugin because indentation was all over the
place. Sorry, if this breaks any patches for you. I'm not usually a
friend of doing this, but I felt it'd be best to do this early on to
annoy the smallest possible number of people.
I've re-indented the entire plugin because indentation was all over the
place. Sorry, if this breaks any patches for you. I'm not usually a
friend of doing this, but I felt it'd be best to do this early on to
annoy the smallest possible number of people.
redis plugin: Fix typos preventing a successful build.
Add redis plugin.
This commit adds a new redis plugin, which connect to a number of redis
server and get information about their status, using the libcredis > 0.2.2
library. The plugin get the following information:
* bgsave_in_progress
* change_since_last_save
* connected_clients
* connected_slaves
* total_command_processed
* total_connection_received
* uptime_in_seconds
* used_memory
Here is an example of configuration file:
<Plugin redis>
<Node example>
Host "localhost"
Timeout 2000
</Node>
</Plugin>
And the output of rrdtool plugin must be something similar to this:
redis-example/bgsave_in_progress.rrd
redis-example/changes_since_last_save.rrd
redis-example/connected_clients.rrd
redis-example/connected_slaves.rrd
redis-example/total_commands_processed.rrd
redis-example/total_connections_received.rrd
redis-example/uptime_in_seconds.rrd
redis-example/used_memory.rrd
Enjoy! :)
This commit adds a new redis plugin, which connect to a number of redis
server and get information about their status, using the libcredis > 0.2.2
library. The plugin get the following information:
* bgsave_in_progress
* change_since_last_save
* connected_clients
* connected_slaves
* total_command_processed
* total_connection_received
* uptime_in_seconds
* used_memory
Here is an example of configuration file:
<Plugin redis>
<Node example>
Host "localhost"
Timeout 2000
</Node>
</Plugin>
And the output of rrdtool plugin must be something similar to this:
redis-example/bgsave_in_progress.rrd
redis-example/changes_since_last_save.rrd
redis-example/connected_clients.rrd
redis-example/connected_slaves.rrd
redis-example/total_commands_processed.rrd
redis-example/total_connections_received.rrd
redis-example/uptime_in_seconds.rrd
redis-example/used_memory.rrd
Enjoy! :)
collectd-perl(5): Mention that "Globals" should be enabled.
collectd.conf(5): Documents LoadPlugin's "Globals" option.
Fix incorrect error logging.
Was calling sys.stderror instead of sys.stderr.
Was calling sys.stderror instead of sys.stderr.
curl_json plugin: Use the "number" callback of libyajl.
The "integer" callback only works with "long"s, which are 32bit on
x86 and other 32bit architectures. The "number" callback gets the raw
string for us to parse ourselves – honoring the data source type in the
process.
The "integer" and "double" callbacks have been removed, since they are not
used if the "number" callback is present.
The "integer" callback only works with "long"s, which are 32bit on
x86 and other 32bit architectures. The "number" callback gets the raw
string for us to parse ourselves – honoring the data source type in the
process.
The "integer" and "double" callbacks have been removed, since they are not
used if the "number" callback is present.
README: Add the "varnish" plugin.
varnish plugin: Update the copyright and author information.
Merge branch 'collectd-4.10'
Bumped version to 4.10.1; Updated ChangeLog.
Merge branch 'collectd-4.9' into collectd-4.10
Conflicts:
ChangeLog
version-gen.sh
Conflicts:
ChangeLog
version-gen.sh
ChangeLog: Fix the release date for 4.9.3.
Bumped version to 4.9.3; Updated ChangeLog.
src/plugin.c: Check "read_loop" when returning from "pthread_cond_timedwait".
Otherwise it may take up to $Interval seconds until all read threads
shut down. This bug was introduced in version 4.8.4 (commit dbe1a7d).
Otherwise it may take up to $Interval seconds until all read threads
shut down. This bug was introduced in version 4.8.4 (commit dbe1a7d).
network plugin: Remove the "CacheFlush" config option.
df plugin: Remove the "ReportReserved" config option.
hddtemp plugin: Remove the "TranslateDevicename" config option.
v5upgrade target: Implement handling of the "mysql_qcache" and "mysql_threads" types.