Various plugins: More fixes for the "cdtime_t" change.
java plugin: Fix conversion from / to Java.
libvirt plugin: Don't set the time explicitly.
Various plugins: Some more fixes with the time_t → cdtime_t change.
network plugin: Don't use the "true" and "false" macros from <stdbool.h>.
They cause more trouble with other includes that they are worth.
They cause more trouble with other includes that they are worth.
src/plugin.[ch]: Change the flush callbacks to take a "cdtime_t".
src/utils_time.h: Add macros for converting to "struct timespec" ..
.. and "struct timeval".
.. and "struct timeval".
src/plugin.[ch]: Change the "time" member to "cdtime_t".
src/configfile.[ch]: Add "cf_util_get_cdtime".
Merge branch 'master' into ff/subsecond
Various plugins: Don't call "time(2)" in the plugins to set vl.time.
vl.time is initialized to zero instead and the current time is filled in
by dispatch_values().
vl.time is initialized to zero instead and the current time is filled in
by dispatch_values().
src/utils_time.[ch]: Add module for sub-second time handling.
netapp plugin: Fixed a bug that prevented the configured interval to be passed on to the dispatch function.
lpar plugin: Calculate "pool busy" from "pool idle", not the other way around.
Merge remote branch 'trenkel/collectd-4.10' into collectd-4.10
Fixed epic documentation fail. Python3 and meta-data support was added with 4.10 but is still listed as missing.
Add sys.argv. Not too many programs consider the possibility that it might not exist resulting in unhandled exceptions.
Fixed possible memory leak in case of broken match_value configs.
src/types.db: Remove unused type "pinba_view".
network plugin: Increase default buffer size to 1452.
src/utils_cache.c: Replace a left-over hard-coded default of "2" with "timeout_g".
Merge branch 'kr/ctxt'
contextswitch plugin: Some coding style changes.
contextswitch plugin: Add copyright and author information.
mysql plugin: Remove some inactive (legacy) code.
apache plugin: Remove legacy code.
Configurations without an "<Instance />" block are not supported
anymore. The documentation and default config have been adapted.
Configurations without an "<Instance />" block are not supported
anymore. The documentation and default config have been adapted.
curl_json plugin: Improve error handling.
curl_json plugin: Restore struct when handling error.
src/collectd.h: Do not include <sensors/sensors.h> here.
lpar plugin: Use a global "perfstat_partition_total_t" struct.
lpar plugin: Account "idle" pool time rather than "max".
PATCH apache.c: support IBM HTTP Server.
IBM HTTP Server is a version of apache 2 that comes with Websphere.
IBM change the server name header to:
Server: IBM_HTTP_Server
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
IBM HTTP Server is a version of apache 2 that comes with Websphere.
IBM change the server name header to:
Server: IBM_HTTP_Server
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
lpar plugin: Explain donations a bit more.
lpar plugin: Rename the "system" metric (from "sys").
Fix errno thread-safety under AIX
Unlike Linux or Solaris, errno under AIX is not thread-safe by
default.
This patch sets _THREAD_SAFE_ERRNO when AIX is detected in order to
force the thread-safe implementation of errno. Without this, calls
like stat() in the rrdtool plugin fail with errno incorrectly set,
leading to the inability to create previously absent rrd files.
Maybe _THREAD_SAFE should be set instead, to prevent other possible
threads-related problems, but this is enough to scratch my current
itch...
Here is the relevant part of /usr/include/errno.h on AIX:
#if defined(_THREAD_SAFE) || defined(_THREAD_SAFE_ERRNO)
/*
* Per thread errno is provided by the threads provider. Both the extern
* int
* and the per thread value must be maintained by the threads library.
*/
extern int *_Errno( void );
#define errno (*_Errno())
#else
extern int errno;
#endif /* _THREAD_SAFE || _THREAD_SAFE_ERRNO */
Signed-off-by: Aurelien Reynaud <collectd@wattapower.net>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Unlike Linux or Solaris, errno under AIX is not thread-safe by
default.
This patch sets _THREAD_SAFE_ERRNO when AIX is detected in order to
force the thread-safe implementation of errno. Without this, calls
like stat() in the rrdtool plugin fail with errno incorrectly set,
leading to the inability to create previously absent rrd files.
Maybe _THREAD_SAFE should be set instead, to prevent other possible
threads-related problems, but this is enough to scratch my current
itch...
Here is the relevant part of /usr/include/errno.h on AIX:
#if defined(_THREAD_SAFE) || defined(_THREAD_SAFE_ERRNO)
/*
* Per thread errno is provided by the threads provider. Both the extern
* int
* and the per thread value must be maintained by the threads library.
*/
extern int *_Errno( void );
#define errno (*_Errno())
#else
extern int errno;
#endif /* _THREAD_SAFE || _THREAD_SAFE_ERRNO */
Signed-off-by: Aurelien Reynaud <collectd@wattapower.net>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
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>
collection3: Add graph for "ps_disk_octets".
notify_email plugin: Check for "session == NULL" and return gracefully.
I don't know how libesmtp handles NULL pointers and I don't want to take
my chances.
I don't know how libesmtp handles NULL pointers and I don't want to take
my chances.
notify_email plugin: Serialize all accesses to libesmtp using a mutex.
collection3: fix multiple hosts selection issue
When selecting multiple hosts in collection3's hosts list, and with some
plugins only (the ones that use a specific resource name such as memory
or tcpconns), the resulting graph list will be limited to one single
graph (instead of one per host).
This patch addresses this issue by modifying the name of the hash key
in the group_files_by_plugin_instance function, making it less prone
to name collisions by prefixing it by the host name.
Comments and enhancements will be welcome.
Signed-off-by: Jerome Oufella <jerome.oufella@savoirfairelinux.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
When selecting multiple hosts in collection3's hosts list, and with some
plugins only (the ones that use a specific resource name such as memory
or tcpconns), the resulting graph list will be limited to one single
graph (instead of one per host).
This patch addresses this issue by modifying the name of the hash key
in the group_files_by_plugin_instance function, making it less prone
to name collisions by prefixing it by the host name.
Comments and enhancements will be welcome.
Signed-off-by: Jerome Oufella <jerome.oufella@savoirfairelinux.com>
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
nginx plugin: Make the cURL callback code easier to understand.
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>
network plugin: Use the complain mechanism to inform the user about ignored signatures.
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.
add support for sysctlbyname: vm.stats.sys.v_swtch
src/utils_tail: Remove newline characters at the end of a line.
The tool is supposed to work line-based, so a) the newline character is
implicit and b) imho, does not belong to the string which is then further
processed.
Also, this allows '$' to match the end of a line when applying a regex to the
line, no matter if the REG_NEWLINE flag has been used when compiling the regex
or not.
The tool is supposed to work line-based, so a) the newline character is
implicit and b) imho, does not belong to the string which is then further
processed.
Also, this allows '$' to match the end of a line when applying a regex to the
line, no matter if the REG_NEWLINE flag has been used when compiling the regex
or not.
utils_match: Let '^' and '$' affect lines rather than the full string.
The regcomp() flag REG_NEWLINE is required for that, even though regex(7)
might make people think otherwise.
The regcomp() flag REG_NEWLINE is required for that, even though regex(7)
might make people think otherwise.
src/collectd.conf.in: Move "TimeToLive" before the "Server" and "Listen" statements.
Thanks to Renaud Chaput for pointing this out!
Thanks to Renaud Chaput for pointing this out!
Merge branch 'master' into ff/netlib
Conflicts:
src/collectdctl.c
Conflicts:
src/collectdctl.c
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-tg: Implement the "-i" argument to specify the interval setting.
collectd-tg: Improve handling of the interval setting.
collectd-tg: Remove the unused "dump_network_buffer" function.
collectd-tg: Improve handling of integer command line args.
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.
collectd-tg: Add option parsing and usage information.
It's now possible to configure the parameters on the command line.
It's now possible to configure the parameters on the command line.
collectd-tg: Implemented continuous sending of values.
collectd-tg: Use the heap to manage the value lists.
libcollectdclient: Implement encryption of network packets.
Warning: Untested code.
Warning: Untested code.
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.
libcollectdclient: Sending signed network packages works now.
Whether the signature is actually correct hasn't been tested yet, though.
Whether the signature is actually correct hasn't been tested yet, though.
libcollectdclient: Link with libgcrypt if available.
collectd-tg: Use the networking interface rather than the buffer.
libcollectdclient: Add initial network interface.
Still incomplete though.
Still incomplete though.
collectd-tg: Add a first draft of a collectd traffic generator.
lcc: network.h: Fix an include.
libcollectdclient: Add "lcc_identifier_compare".
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.
libcollectdclient: Move the header files to a subdirectory.
This makes it easier since the header files depend on one another.
(At least they will in the future.)
This makes it easier since the header files depend on one another.
(At least they will in the future.)
libcollectdclient: Add an implementation of the network encoding.
Only support standard values for now, but notifications and the security
features will be added later.
Only support standard values for now, but notifications and the security
features will be added later.
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.