Marco Chiappero [Fri, 25 Sep 2009 07:18:02 +0000 (09:18 +0200)]
openvpn plugin: Add support for more versions of the “status file” (and more).
Hi all,
I have some news regarding the Openvpn plugin.
I recently upgraded to 4.7.2 and enabled the new (to me) openvpn plugin,
but unfortunately it didn't work and I couldn't understand why. So had a
look at the code and applied some changes. Here a list of things
added:
- support for multiple vpn/status files
- support for single endpoint status file and for multicontext version
1,3 (currently every status file type is supported)
- status file type auto-detection
- collection of overhead and compression stats for single mode status files
- "NoCompression" option to disable compression statistics collection
- new file naming schema correcting the previous wrong one
- debug and error output
The plugin has already been tested with my own openvpn setup and many
different files found on the net, but two major aspects have to be taken
into consideration. The first one is the new overhead collection and the
change in the compression statistics (now data is stored as they are
[1]). However, due to a bug in the previous code, no compression
collection was working and so the new one is not going to brake backward
compatibility. Unfortunately backward compatibility is broken by the
new naming schema, more collectd compliant (and necessary with multiple
conf/status files support). So plugin_istance is now the status file
name (or the status entry number), while the plugin_type is now the
hostname when in multicontext mode or the traffic and overhead when in
single.
About the plugin_instance value, I started using numbers like the cpu
plugin does, but I prefer to use the self explanatory file name, helping
in finding the right vpn and avoiding to mess things up when adding a
new status file. The downside is that filenames have to be unique (man
pages should mention this [2]), therefore I added a check. Nonetheless I
think it's very unlikely to happen, it is quite rare to find many vpn on
the same system and it's really hard to have the same log filename
stored in different dirs rather than the opposite; usually to different
tunnels should already correspond different status log name.
However, Florian, feel free to choose the other method if you prefer, I
can send you a patch to revert to the number based schema.
Hope you like the code.
Regards,
Marco
[1] This allows to retrieve multiple informations, not just the pure
compression ratio. For example we can now calculate the pure compression
ratio, the global compression level, the byte saved (eg. for a
overhead vs. saved bytes graph) and so on.
[2] Man pages should be updated as well, but I haven't written anything yet.
Florian Forster [Mon, 23 Nov 2009 21:25:32 +0000 (22:25 +0100)]
Various plugins: Remove trailing whitespaces.
Florian Forster [Sat, 14 Nov 2009 08:01:10 +0000 (09:01 +0100)]
Merge branch 'collectd-4.8'
Florian Forster [Sat, 14 Nov 2009 08:00:16 +0000 (09:00 +0100)]
snmp plugin: Rename a variable (missed during merge).
Florian Forster [Tue, 10 Nov 2009 19:18:05 +0000 (20:18 +0100)]
Merge branch 'collectd-4.8'
Florian Forster [Tue, 10 Nov 2009 19:17:36 +0000 (20:17 +0100)]
Merge branch 'collectd-4.7' into collectd-4.8
Conflicts:
src/snmp.c
Florian Forster [Mon, 9 Nov 2009 11:05:40 +0000 (12:05 +0100)]
contrib/snmp-data.conf: Add support for Mikrotik RouterBoards.
Florian Forster [Mon, 9 Nov 2009 11:04:23 +0000 (12:04 +0100)]
snmp plugin: Fix handling of strings with control characters.
If a byte of a string has a value <32, the string is printed as a
hex-string. This fixes issues with some devices returning MAC addresses
as "strings".
Florian Forster [Mon, 9 Nov 2009 11:03:20 +0000 (12:03 +0100)]
snmp plugin: Fix handling of negative values.
Sebastian Harl [Wed, 28 Oct 2009 18:32:36 +0000 (19:32 +0100)]
src/Makefile: Support parallel builds when creating the manpages.
A temporary file name is used when creating the manpages. So far, a static
file name had been used for that, thus causing race conditions. Now, a unique
suffix (PID) is used to fix that.
Thanks to BC^bd for reporting that on IRC!
Sebastian Harl [Wed, 28 Oct 2009 16:38:51 +0000 (17:38 +0100)]
rrdcached plugin: Work around a bug in RRDtool 1.4rc2.
rrd_client.h in that pre-release checked for HAVE_CONFIG_H and would then try
to include rrd_config.h, which, obviously, is not available in collectd.
Florian Forster [Wed, 28 Oct 2009 12:31:06 +0000 (13:31 +0100)]
GenericJMX plugin: Close and re-open the connection upon I/O-errors.
Doug MacEachern [Thu, 22 Oct 2009 22:52:22 +0000 (15:52 -0700)]
kern.cp_times needs array of length kern.smp.maxcpus
Doug MacEachern [Thu, 22 Oct 2009 22:50:57 +0000 (15:50 -0700)]
surpress gcc warnings on FreeBSD
cc1: warnings being treated as errors
processes.c: In function 'ps_read':
processes.c:343: warning: 'pse.io_rchar' is used uninitialized in this function
processes.c:1436: note: 'pse.io_rchar' was declared here
processes.c:344: warning: 'pse.io_wchar' is used uninitialized in this function
processes.c:1436: note: 'pse.io_wchar' was declared here
processes.c:345: warning: 'pse.io_syscr' is used uninitialized in this function
processes.c:1436: note: 'pse.io_syscr' was declared here
processes.c:346: warning: 'pse.io_syscw' is used uninitialized in this function
processes.c:1436: note: 'pse.io_syscw' was declared here
Florian Forster [Wed, 21 Oct 2009 09:36:17 +0000 (11:36 +0200)]
Merge branch 'collectd-4.8'
Florian Forster [Wed, 21 Oct 2009 09:34:07 +0000 (11:34 +0200)]
Merge branch 'collectd-4.7' into collectd-4.8
Conflicts:
.gitignore
Garret Heaton [Sun, 18 Oct 2009 22:34:13 +0000 (15:34 -0700)]
contrib/collectd_unixsock.py: Support all plain text protocol commands
Also rename class from Collect to Collectd and improve output when run
as standalone script.
Garret Heaton [Sun, 18 Oct 2009 21:19:26 +0000 (14:19 -0700)]
contrib/collectd_unixsock.py: Follow Python PEP-8 syntax requirements.
Also remove comment which seems to refer to a file outside of the
collectd project.
Garret Heaton [Sun, 18 Oct 2009 21:09:26 +0000 (14:09 -0700)]
gitignore: Ignore compiled python files
Garret Heaton [Sun, 18 Oct 2009 21:06:22 +0000 (14:06 -0700)]
Replace dashes with underscores in python modules
It's not possible to import python modules with dashes in the name.
See http://bit.ly/2t7fcy for more information.
Garret Heaton [Sun, 18 Oct 2009 20:29:23 +0000 (13:29 -0700)]
Ignore more java bindings classes
Florian Forster [Wed, 21 Oct 2009 09:21:30 +0000 (11:21 +0200)]
processes plugin: Rename the new types and use DERIVE data sources.
This is probably a much safer choice in this case.
Florian Forster [Wed, 21 Oct 2009 09:16:35 +0000 (11:16 +0200)]
processes plugin: Make “ps_read_io” static.
Andrés J. Díaz [Wed, 21 Oct 2009 09:12:40 +0000 (11:12 +0200)]
processes plugin: Add collection of IO-metrics.
I attach a patch for collectd-4.8.0 adding a new feature which read IO
data for a process using /proc/<pid>/io (only works on linux > 2.6.20),
it's very usefull to monitoring disk throughput and what process is
related with high disk IO. I'm using this patchs for days in some
database environments with good results, but I think that is not enough
stable yet (more testing is required). The patch read from
/proc/<pid>/io (where available) the data for syscr and syscw (read and
write operations) and rchar and wchar (read and write bytes).
Florian Forster [Wed, 21 Oct 2009 08:21:10 +0000 (10:21 +0200)]
Merge branch 'collectd-4.8'
Florian Forster [Wed, 21 Oct 2009 08:20:27 +0000 (10:20 +0200)]
Merge branch 'collectd-4.7' into collectd-4.8
Florian Forster [Wed, 14 Oct 2009 08:35:48 +0000 (10:35 +0200)]
configure.in: Fix auxiliary NetApp libraries.
Sebastian Harl [Tue, 13 Oct 2009 17:39:37 +0000 (19:39 +0200)]
gmond plugin: Fixed a typo.
For some reason, the value_t members "derive" and "absolute" had been spelled
in all capital letters, obviously resulting in a build error.
Sebastian Harl [Tue, 13 Oct 2009 17:34:20 +0000 (19:34 +0200)]
collectd.conf: Added the "madwifi" and "match_empty_counter" plugins.
Sven Trenkel [Tue, 13 Oct 2009 14:48:01 +0000 (16:48 +0200)]
Fixed a bug with newer NetApp Versions.
NetApp OnTAP API 7.3 and newer actually read this field and
expect the value "counter".
Sebastian Harl [Sun, 11 Oct 2009 16:43:00 +0000 (18:43 +0200)]
README: Added missing prerequisites.
Florian Forster [Sat, 10 Oct 2009 15:04:09 +0000 (17:04 +0200)]
network plugin: Implement statistics collection about the plugin itself.
Florian Forster [Thu, 8 Oct 2009 17:00:21 +0000 (19:00 +0200)]
configure.in: Don't use “find -L”.
Apparently the “-L” is a (new) GNU extension. :/
Florian Forster [Thu, 8 Oct 2009 16:57:04 +0000 (18:57 +0200)]
collectd-snmp(5): Fix a typo.
Thanks to mspo.
Florian Forster [Thu, 8 Oct 2009 09:34:20 +0000 (11:34 +0200)]
hashed match: Add a match to simplify load balancing.
Florian Forster [Wed, 7 Oct 2009 15:32:14 +0000 (17:32 +0200)]
netapp plugin: Use a separate read-thread for each host.
Possibly not as efficient as one thread for each metric, but better than
collecting this sequentially any day.
Florian Forster [Sun, 4 Oct 2009 07:45:00 +0000 (09:45 +0200)]
ChangeLog: Fix a stupid typo.
Florian Forster [Sun, 4 Oct 2009 07:06:18 +0000 (09:06 +0200)]
Bumped version to 4.8.1; Updated ChangeLog.
Florian Forster [Sun, 4 Oct 2009 07:02:31 +0000 (09:02 +0200)]
Merge branch 'collectd-4.7' into collectd-4.8
Conflicts:
ChangeLog
version-gen.sh
Florian Forster [Sat, 3 Oct 2009 15:44:24 +0000 (17:44 +0200)]
Bumped version to 4.7.4; Updated ChangeLog.
Florian Forster [Fri, 2 Oct 2009 16:02:08 +0000 (18:02 +0200)]
contrib/collection3: Improve configuration for "df_complex".
Florian Forster [Fri, 2 Oct 2009 16:01:38 +0000 (18:01 +0200)]
Various plugins: Use the IS_TRUE and IS_FALSE macros everywhere.
Florian Forster [Fri, 2 Oct 2009 09:37:05 +0000 (11:37 +0200)]
contextswitches, processes plugins: Don't print an error if number of fields don't match.
Because we pick the required line further down, having lines with more
fields is not illegal anymore.
Thanks to Patrik Weiskircher for noticing :)
Florian Forster [Fri, 2 Oct 2009 09:35:43 +0000 (11:35 +0200)]
df plugin: Implement the "ReportInodes" option.
This option can be used to enable / disable inode statistics collection.
Defaults to "false" for now.
Florian Forster [Fri, 2 Oct 2009 09:29:44 +0000 (11:29 +0200)]
df plugin: Implement the "ReportReserved" option.
When enabled, the reserved space is reported separately. The "df_complex"
type is used and the mount point or device name is used as plugin instance
(as it should be) instead of the type instance (which is now needed for
"free", "reserved" and "used").
The INode handling has been split up in the same manner.
Florian Forster [Fri, 2 Oct 2009 07:56:54 +0000 (09:56 +0200)]
AUTHORS: Added Patrik.
Florian Forster [Fri, 2 Oct 2009 07:55:17 +0000 (09:55 +0200)]
README: Added the contextswitch plugin.
Florian Forster [Fri, 2 Oct 2009 07:54:14 +0000 (09:54 +0200)]
Merge branch 'collectd-4.8'
Conflicts:
src/df.c
Florian Forster [Fri, 2 Oct 2009 07:50:20 +0000 (09:50 +0200)]
Merge branch 'collectd-4.7' into collectd-4.8
Conflicts:
README
Florian Forster [Fri, 2 Oct 2009 07:47:54 +0000 (09:47 +0200)]
README: Fix order of the curl_json plugin in the list.
Florian Forster [Fri, 2 Oct 2009 07:47:54 +0000 (09:47 +0200)]
README: Fix order of the curl plugin in the list.
Florian Forster [Fri, 2 Oct 2009 07:44:27 +0000 (09:44 +0200)]
contextswitch plugin: Only submit if we actually did find a value.
Also makes parsing more robust (strncmp would allow for garbage after the key,
strtoul does not overflow when given an invalid string).
Florian Forster [Fri, 2 Oct 2009 07:40:49 +0000 (09:40 +0200)]
processes plugin: Don't *abort* if a line has more than two fields.
Patrik Weiskircher [Thu, 1 Oct 2009 11:57:12 +0000 (13:57 +0200)]
Added contextswitch plugin (for linux).
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Florian Forster [Fri, 2 Oct 2009 07:06:41 +0000 (09:06 +0200)]
processes plugin: Improve the error handling.
The fork-rate function now returns ULONG_MAX upon error. The error detection
when using strtoul has been improved (overflow is not the only possible error).
Patrik Weiskircher [Thu, 1 Oct 2009 11:57:11 +0000 (13:57 +0200)]
Added fork rate collecting to processes plugin.
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Florian Forster [Fri, 2 Oct 2009 06:27:44 +0000 (08:27 +0200)]
df plugin: Fix a typo.
Patrik Weiskircher [Thu, 1 Oct 2009 11:57:10 +0000 (13:57 +0200)]
df plugin also collects inode count now.
Signed-off-by: Florian Forster <octo@huhu.verplant.org>
Florian Forster [Thu, 1 Oct 2009 19:34:21 +0000 (21:34 +0200)]
Merge branch 'collectd-4.8'
Conflicts:
src/types.db
Florian Forster [Thu, 1 Oct 2009 19:33:37 +0000 (21:33 +0200)]
Merge branch 'collectd-4.7' into collectd-4.8
Florian Forster [Thu, 1 Oct 2009 19:30:53 +0000 (21:30 +0200)]
src/types.db: Replace spaces with tabs.
Florian Forster [Thu, 1 Oct 2009 19:30:53 +0000 (21:30 +0200)]
src/types.db: Replace spaces with tabs.
Florian Forster [Thu, 1 Oct 2009 19:27:40 +0000 (21:27 +0200)]
src/plugin.c: plugin_log: Print to stderr if no log plugin has been loaded.
Sven Trenkel [Thu, 1 Oct 2009 11:25:17 +0000 (13:25 +0200)]
Merge commit 'octo/master'
Sven Trenkel [Thu, 1 Oct 2009 11:24:20 +0000 (13:24 +0200)]
Added new netapp data types to types.db.
Doug MacEachern [Thu, 1 Oct 2009 00:28:08 +0000 (17:28 -0700)]
include netinet/in.h for sockaddr_in on FreeBSD
Fixes:
common.c: In function 'service_name_to_port_number':
common.c:1112: error: dereferencing pointer to incomplete type
common.c:1119: error: dereferencing pointer to incomplete type
Florian Forster [Wed, 30 Sep 2009 20:49:16 +0000 (22:49 +0200)]
unixsock plugin: Fix a (well hidden) race condition.
Within the client handling thread, fdopen is called twice on the file
descriptor passed to the thread. Later those file handles are closed like:
fclose (fhin);
fclose (fhout);
This is a race condition, because the first call to fclose will close the file
descriptor. The second call to fclose will try the same. Usually, it would fail
silently and all is well. On a busy machine, however, another thread may just
have opened a file or accepted a socket. In that case an arbitrary file
descriptor is closed. If the file descriptor is opened yet again fast enough,
data may even end up in a totally wrong location.
As a work-around the file descriptor is not dup'ed so each fdopen operates on
its own file descriptor. As an alternative the "r+" mode and a single file
handle may be suitable, too.
Many thanks to Sven Trenkel for pointing me into the right directioin :)
Florian Forster [Wed, 30 Sep 2009 16:20:32 +0000 (18:20 +0200)]
Merge branch 'st/netapp'
Florian Forster [Wed, 30 Sep 2009 16:16:15 +0000 (18:16 +0200)]
netapp plugin: Subtract snap_norm_used from norm_used in any case.
Florian Forster [Wed, 30 Sep 2009 15:51:17 +0000 (17:51 +0200)]
collectd.conf(5): Updated the “GetSnapshot” entry.
Florian Forster [Wed, 30 Sep 2009 15:49:54 +0000 (17:49 +0200)]
netapp plugin: Use the “volume-” prefix for all volume related data.
Florian Forster [Wed, 30 Sep 2009 13:30:07 +0000 (15:30 +0200)]
netapp plugin: Create a notification when a volume goes offline or comes back.
Florian Forster [Wed, 30 Sep 2009 13:29:30 +0000 (15:29 +0200)]
netapp plugin: cna_handle_volume_snap_usage: Explain what's going on in a comment.
Sven Trenkel [Wed, 30 Sep 2009 12:13:44 +0000 (14:13 +0200)]
Fixed VolumePerf data collection.
Sven Trenkel [Wed, 30 Sep 2009 10:17:55 +0000 (12:17 +0200)]
Merge commit 'remotes/octo/st/netapp' into st/netapp
Sven Trenkel [Wed, 30 Sep 2009 10:17:39 +0000 (12:17 +0200)]
Added snapshot usage stats.
Florian Forster [Wed, 30 Sep 2009 08:59:30 +0000 (10:59 +0200)]
Build system: Link the netapp plugin with libnetapp.
D'oh! ;)
Florian Forster [Wed, 30 Sep 2009 06:11:10 +0000 (08:11 +0200)]
netapp plugin: Don't access a struct after freeing it.
Thanks Sven :)
Florian Forster [Tue, 29 Sep 2009 14:51:45 +0000 (16:51 +0200)]
netapp plugin: Add a shutdown callback.
Florian Forster [Tue, 29 Sep 2009 14:50:22 +0000 (16:50 +0200)]
netapp plugin: free_host_config: Close the connection if applicable.
Florian Forster [Tue, 29 Sep 2009 14:44:49 +0000 (16:44 +0200)]
collectd.conf(5): Document the “Interval” option in all blocks of the netapp plugin.
Florian Forster [Tue, 29 Sep 2009 14:37:48 +0000 (16:37 +0200)]
netapp plugin: Rename the “Capacity” and “Snapshot” options again.
They've been renamed to “GetCapacity” and “GetSnapshot” so the
names used within the “VolumeUsage” block are the same as the names
used elsewhere in the plugin.
Florian Forster [Tue, 29 Sep 2009 14:31:35 +0000 (16:31 +0200)]
netapp plugin: Remove left-over references to volume_t.
Florian Forster [Tue, 29 Sep 2009 14:29:30 +0000 (16:29 +0200)]
netapp plugin: Remove all left-over references to cfg_service_t.
Florian Forster [Tue, 29 Sep 2009 14:24:40 +0000 (16:24 +0200)]
netapp plugin: Refactor the VolumePerf collection.
Same procedure one last time. The “GetVolumePerfData” block has been
renamed to “VolumePerf”. The “Get{IO,Ops,Latency}” options now
use ignore lists, too. Appropriate “IgnoreSelected{IO,Ops,Latency}”
options have been introduced.
Florian Forster [Tue, 29 Sep 2009 13:53:12 +0000 (15:53 +0200)]
netapp plugin: Set the HAVE_VOLUME_USAGE_SIS_SAVED after determining the value.
Florian Forster [Tue, 29 Sep 2009 13:51:07 +0000 (15:51 +0200)]
netapp plugin: Fix handling of the SIS value.
Florian Forster [Tue, 29 Sep 2009 12:33:15 +0000 (14:33 +0200)]
netapp plugin: Refactored volume usage statistics.
Much of this is like disk, wafl and system statistics before. The
“GetVolumeData” has been renamed to “VolumeUsage” and the
“GetDiskUtil” and “GetSnapUtil” options have been changed, too. The
configuration now looks like this:
<VolumeUsage>
Capacity "vol0"
Capacity "vol1"
IgnoreSelectedCapacity false
Snapshot "vol1"
Snapshot "vol3"
IgnoreSelectedSnapshot false
</VolumeUsage>
The code now uses to "ignore lists" to check whether capacity and/or
snapshot information should be collected for a volume. This means the
order in which volumes are listed no longer matters and than you can
use such advanced options as selecting volumes via regular expressions.
Sven Trenkel [Mon, 28 Sep 2009 23:02:48 +0000 (01:02 +0200)]
Fixed NULL pointer bug.
Florian Forster [Mon, 28 Sep 2009 14:05:55 +0000 (16:05 +0200)]
netapp plugin: Inform the user when he screwed up the disk and system blocks, too.
Florian Forster [Mon, 28 Sep 2009 13:56:26 +0000 (15:56 +0200)]
netapp plugin: Print a notice if all WAFL values have been disabled.
This message is printed if the user did supply a <WAFL /> block but
then disabled all supported values. WAFL collection will be disabled
in this case to increase performance.
Florian Forster [Mon, 28 Sep 2009 13:45:13 +0000 (15:45 +0200)]
netapp plugin: Document the graceful return if statistics are not wanted.
Unfortunately this behavior isn't exactly obvious.
Florian Forster [Mon, 28 Sep 2009 13:42:42 +0000 (15:42 +0200)]
netapp plugin: Refactor system statistics.
Same procedure as before: Instead of using the “service handler”,
create a cfg_system_t pointer if the user wants system statistics. Then
call cna_query_system instead of the service handler.
The “GetSystemPerfData” block has been renamed to “System” and the
“Multiplier” option has been replaced by the “Interval” option.
Florian Forster [Mon, 28 Sep 2009 12:43:37 +0000 (14:43 +0200)]
Merge remote branch 'trenkel/st/netapp' into st/netapp
Florian Forster [Mon, 28 Sep 2009 12:41:10 +0000 (14:41 +0200)]
netapp plugin: Refactor handling of the WAFL data.
Basically the same structure as for the Disk data has been used. The
service handler has been removed and replaced by a call to
“cna_query_wafl”.
The “GetWaflPerfData” block has been renamed to “WAFL” to make the
config file easier to read. The “GetBufCache” config option has been
renamed to “GetBufferCache”. Maybe it should be renamed to
“GetBufferHash”, because that's what the NetApp API uses…?
Sven Trenkel [Mon, 28 Sep 2009 11:57:46 +0000 (13:57 +0200)]
Merge commit 'octo/st/netapp' into st/netapp
Florian Forster [Mon, 28 Sep 2009 11:27:13 +0000 (13:27 +0200)]
netapp plugin: Changed Sven's email address at his request.
Florian Forster [Mon, 28 Sep 2009 11:26:34 +0000 (13:26 +0200)]
netapp plugin: Refactored reading of disk data.
Instead of obscuring control-flow with generic function pointers, use a
clear and easy to read function hierarchy. All disk-related action now
starts with “cna_query_disk (host)” instead of
“service->handler (host, data, service->data)”.
The “GetDiskPerfData”block has been renamed to “Disks”. All those
blocks start with “Get” and most end with “PerfData”, distracting
from the actual relevant part.
The “Multiplier” option has been replaced by the “Interval” option,
which expects a time in seconds rather than a factor which is multiplied
to the host interval.
Florian Forster [Mon, 28 Sep 2009 11:14:12 +0000 (13:14 +0200)]
netapp plugin: Fix a typo.
Sven Trenkel [Mon, 28 Sep 2009 10:40:44 +0000 (12:40 +0200)]
Copypasta error in volume usage.