network plugin: Implemented cache flush.
rrdtool plugin: Serialise access to the cache and to the function from the librrd.
logfile plugin: Don't use `access' when adding a logfile: It does not work as expected.
Of as advertised in the manpage, for that matter.
Of as advertised in the manpage, for that matter.
network plugin: Don't loop multicast-pakets back to ourself.
Also, some debug-messages have been changed.
Also, some debug-messages have been changed.
network plugin: Implemented duplicate detection and a `Forward' option.
The plugin will now only send values received via the network, if the `Forward'
option is set to `true'. Also, duplicates are detected and discarded,
preventing loops, duplicate entries and errors from RRDTool.
The plugin will now only send values received via the network, if the `Forward'
option is set to `true'. Also, duplicates are detected and discarded,
preventing loops, duplicate entries and errors from RRDTool.
unixsock plugin: Use `format_name' rather than the local `cache_alloc_name'.
common.[ch]: Provide a function `format_name' to turn a value-list into its string representation.
{processes,unixsock} plugin: Remove annoying debug messages.
network plugin: Fix shutdown code.
plugin.[ch]: Implemented `plugin_unregister_config'.
sensors plugin: Fix programming mistakes.
syslog plugin: Fixed typo. s/sevetiry/severity/g;
collectd.conf(5): Documented the `iptables', `logfile', `processes', `syslog', and `unixsock' plugin.
collectd.conf.in: Added the `df' and `email' plugins.
logfile plugin: Don't call `access' with `stdout' and `stderr'.
Removed the `LOGFILE' and `COLLECT_{STEP,HEARTBEAT,XFF,RRAROWS}' defines.
network plugin: Fixed quite some bugs.
Added Perl-module `Collectd::Unixsock' to contrib/
unixsock plugin: Fixed many issues. `GETVAL' and `PUTVAL' are now mostly working as intended.
collectd.conf.in: Updated and sorted the example configfile.
interface plugin: Renamed the `traffic' plugin to `interface'.
logfile plugin: Renamed functions and changed error-messages to reflect the renaming.
Removed `utils_debug.[ch]' since debugging output is now handeled by the logging-statements.
logfile plugin: Renamed the `stderr' to `logfile'.
stderr plugin: Add `File' config option to log to a certain file.
Also make the actual log-action thread-safe.
Also make the actual log-action thread-safe.
stderr plugin: Added "stderr" plugin to log to stderr.
This plugin is heavily based on Florian's syslog plugin.
Signed-off-by: Sebastian Harl <sh@tokkee.org>
This plugin is heavily based on Florian's syslog plugin.
Signed-off-by: Sebastian Harl <sh@tokkee.org>
plugin.c: Check if `list_log' is not NULL.
Replace all calls to `strerror' with `sstrerror'
.. which internally uses the thread-safe function `strerror_r'.
.. which internally uses the thread-safe function `strerror_r'.
src/collectd.h: Don't load `syslog.h'.
Plugins should use `plugin_log' now.
Plugins should use `plugin_log' now.
Replace all syslog-calls with one of the new logging-macros.
iptables plugin: Converted to the new plugin interface.
Merge branch 'master' into collectd-4
Conflicts:
configure.in
Conflicts:
configure.in
Merge branch 'sb/iptables'
Conflicts:
configure.in
src/Makefile.am
src/collectd.conf.in
Conflicts:
configure.in
src/Makefile.am
src/collectd.conf.in
src/collectd.conf.in: Added the iptables plugin.
iptables plugin: Implemented selection by rule-numbers.
syslog plugin: Added a `syslog' plugin which logs to syslog, using the new `log' interface.
src/plugin.[ch]: Add `log' callbacks.
collectd-nagios, rrdtool plugin, unixsock plugin: Use `isnan' rather than `==' or `!='.
src/collectd.h: Define a useable `NAN', based on `configure's findings.
configure.in: Added checks that find out how to include/define `NAN'.
email plugin: Converted to the new plugin interface.
Merge branch 'pull/collectd-4' into collectd-4
unixsock plugin: Replace `getgrnam' with `getgrnam_r'.
exec plugin: Replace `getpwnam' with `getpwnam_r'.
csv plugin: Replace `localtime' with `localtime_r'.
Replace all occurrences of `strtok' with `strtok_r'.
iptables plugin: Fix building under non-Linux systems.
iptables plugin: Use a global `libiptc' if it exists.
Will likely not build under non-Linux systems yet.
Will likely not build under non-Linux systems yet.
iptables plugin: Adds a plugin to collect iptables'-counters.
My first attempt at a module for this is an iptables modules This will try to
read out the rules from iptables for a specific table and chain.
It will go through the rules looking for ones with "comment" matches and will
use the comment as a base for the generated filename.
So basically looking for lines like
$ iptables -t mangle -A incoming -p tcp -m comment --comment "tcp"
will generate a iptables-incoming/tcp.rrd file from the byte counters
There used to also be an account iptables module but that seems to have been
neglected, which would generate /proc entries for specific rules, don't know
what would work better. Either way, this seems to work somewhat.
My first attempt at a module for this is an iptables modules This will try to
read out the rules from iptables for a specific table and chain.
It will go through the rules looking for ones with "comment" matches and will
use the comment as a base for the generated filename.
So basically looking for lines like
$ iptables -t mangle -A incoming -p tcp -m comment --comment "tcp"
will generate a iptables-incoming/tcp.rrd file from the byte counters
There used to also be an account iptables module but that seems to have been
neglected, which would generate /proc entries for specific rules, don't know
what would work better. Either way, this seems to work somewhat.
irq plugin: Fix for non-Linux systems.
src/common.c: Allow `check_create_dir' to create absolute directories.
Since the `DataDir' of the `csv' and `rrdtool' plugins are seperate from the
`BaseDir' setting, it makes sense to allow absolute directories here. The
(possibly more secure) alternative would be to disallow absolute directories
and force the user to create SymLinks instead.
Since the `DataDir' of the `csv' and `rrdtool' plugins are seperate from the
`BaseDir' setting, it makes sense to allow absolute directories here. The
(possibly more secure) alternative would be to disallow absolute directories
and force the user to create SymLinks instead.
src/collectd.conf.in: Added default entries for the `csv' and `rrdtool' plugins
.. and their options.
.. and their options.
csv plugin: Add a `DataDir' option.
Since the `rrdtool' and `csv' plugins may be loaded at the same time, one may
want to configure another path for this plugin, too.
Since the `rrdtool' and `csv' plugins may be loaded at the same time, one may
want to configure another path for this plugin, too.
Merge branch 'ff/vserver' into collectd-4
users plugin: Remove old `DBG' statement.
load plugin: Use `gauge_t' rather than `double'.
vserver plugin: Converted to the new plugin interface.
users plugin: Converted to the new plugin interface.
rrdtool plugin: Implemented the settings `StepSize', `HeartBeat', `RRARows', and `XFF'.
The documentation has been updated, too.
The documentation has been updated, too.
Introduce two global variables: `hostname_g' and `interval_g'.
hostname_g: Hostname we're running on. May be set in the configfile with the
`Hostname'-option. This replaces the global `hostname'-variable exported by
`plugin.c'.
interval_g: Interval in which we query the read plugins. This replaces the
`COLLECTD_STEP'-define and is configurable using the `Interval'-option.
hostname_g: Hostname we're running on. May be set in the configfile with the
`Hostname'-option. This replaces the global `hostname'-variable exported by
`plugin.c'.
interval_g: Interval in which we query the read plugins. This replaces the
`COLLECTD_STEP'-define and is configurable using the `Interval'-option.
Documented the lighttpd-support in `collectd(1)' and `collectd.conf(5)'.
irq plugin: Converted to the new plugin interface.
Merge branch 'master' into merge/collectd-4
Conflicts:
src/apache.c
Conflicts:
src/apache.c
Merge branch 'ph/irq'
irq plugin: Fixed some issues, renamed RRD-files.
I've looked into your plugin in more detail just now and fixed the
following issues:
- Moved the RRD-files into a subdirectory called `irq'. That's how it's
going to be done in the next major version.
- Renamed the DS to `value' and set the maximum value to 65535. I'm not
sure if this maximum value is big enough..?
- Don't use `LOG_EMERG' when config-problems are found. Rather, print to
`STDERR' since it's still available during configuration.
- Use `strsplit' when parsing `/proc/interrupts'. This makes much of the
pointer-arithmetic obsolete and the code much more readable.
- The device names are not used in the filename, though I'm not certain
if that's the way to go here.. On my workstation there is a line like
this:
193: 28492 IO-APIC-level uhci_hcd, uhci_hcd, uhci_hcd, ehci_hcd
Apparently the interrupt is shared among several USB-controllers. My
problem here is, that as soon as one device is deactivated or the
order changes, so does the filename. Besides, a filename along the
lines of `irq-193-uhci_hcd-ehci_hcd.rrd' would be nice.
On another machine I have this line:
217: 50173955 0 IO-APIC-level 3ware Storage Controller
Where one device somehow manages to write a _description_ in there.
This makes detection of such shared interrupts as above tricky.
If anyone has a good idea how to use the last part of the lines for a
filename, please let me know.
I've looked into your plugin in more detail just now and fixed the
following issues:
- Moved the RRD-files into a subdirectory called `irq'. That's how it's
going to be done in the next major version.
- Renamed the DS to `value' and set the maximum value to 65535. I'm not
sure if this maximum value is big enough..?
- Don't use `LOG_EMERG' when config-problems are found. Rather, print to
`STDERR' since it's still available during configuration.
- Use `strsplit' when parsing `/proc/interrupts'. This makes much of the
pointer-arithmetic obsolete and the code much more readable.
- The device names are not used in the filename, though I'm not certain
if that's the way to go here.. On my workstation there is a line like
this:
193: 28492 IO-APIC-level uhci_hcd, uhci_hcd, uhci_hcd, ehci_hcd
Apparently the interrupt is shared among several USB-controllers. My
problem here is, that as soon as one device is deactivated or the
order changes, so does the filename. Besides, a filename along the
lines of `irq-193-uhci_hcd-ehci_hcd.rrd' would be nice.
On another machine I have this line:
217: 50173955 0 IO-APIC-level 3ware Storage Controller
Where one device somehow manages to write a _description_ in there.
This makes detection of such shared interrupts as above tricky.
If anyone has a good idea how to use the last part of the lines for a
filename, please let me know.
rrdtool plugin: Updated the documentation in `collectd.conf(5)'
.. and the sample config file.
.. and the sample config file.
src/configfile.c: Actually set the `BaseDir' option.
irq plugin: Added plugin to collect interrupt counters.
-- 8< --
Hi!
This plugin collects interrupts from /proc/interrupts
Usually all interrupts are collected but
you can configure what interruptnumbers are collected or not.
Example:
collect only wanted irqs:
<Plugin irq>
Irq 0
Irq 14
IgnoreSelected false
</Plugin>
collect all but no these irqs:
<Plugin irq>
Irq 7
Irq 8
Irq 9
IgnoreSelected true
</Plugin>
cu Peter
-- >8 --
-- 8< --
Hi!
This plugin collects interrupts from /proc/interrupts
Usually all interrupts are collected but
you can configure what interruptnumbers are collected or not.
Example:
collect only wanted irqs:
<Plugin irq>
Irq 0
Irq 14
IgnoreSelected false
</Plugin>
collect all but no these irqs:
<Plugin irq>
Irq 7
Irq 8
Irq 9
IgnoreSelected true
</Plugin>
cu Peter
-- >8 --
exec plugin: Implemented a first version.
liboconfig: Import version 0.1.1.
rrdtool plugin: Fix another memory leak..
..or, possibly, fixed the first one correctly. It's kind of hard to tell with
that caching code :/
..or, possibly, fixed the first one correctly. It's kind of hard to tell with
that caching code :/
rrdtool plugin: Fix a memory leak.
rrdtool plugin: Use the AVL-tree to implement the cache.
src/utils_avltree.[ch]: Fix the iterator, since it's actually usefull with caches.
The rrdtool-plugin will use the iterator to find outdated cache-entries and
flush only them, not the entire cache.
The rrdtool-plugin will use the iterator to find outdated cache-entries and
flush only them, not the entire cache.
src/utils_avltree.[ch]: Documented the interface of the AVL-tree.
The iterator-code has been disabled, because it's not very practical and
`utils_llist' should be used if order matters. `avl_node_{next,prev}' have been
made `static', because they're not exported.
The iterator-code has been disabled, because it's not very practical and
`utils_llist' should be used if order matters. `avl_node_{next,prev}' have been
made `static', because they're not exported.
src/utils_avltree.c: Fix `avl_pick'.
Merge branch 'ff/avl-tree'
src/utils_avltree.c: Added `avl_pick'.
src/utils_avltree.c: Removal works, too.
src/utils_avltree.c: Insertion works correktly.
apache plugin: Support for lighttpd's `BusyServers' field was added.
src/collectd.conf.pod: Removed the part about the `ExtendedNaming' in the sensors plugin.
rrdtool plugin: Implemented a `DataDir' config option to be able to store the RRD-files anywhere.
src/collectd.conf.{in,pod}: Update the sample config and the config's documentation.
Removed `src/libconfig/*'.
src/collectd.conf.in: Added the `network' plugin.
src/common.c: Removed the (extern) variable `operating_mode'.
src/collectd.c: Removed `Mode' code and other old stuff.
Changed from the old `libconfig' to the new `liboconfig'.
Much work lies in front of us.. :/
Much work lies in front of us.. :/
Merge branch 'collectd-3.11' into merge/master
Conflicts:
contrib/fedora/collectd.spec
Conflicts:
contrib/fedora/collectd.spec
Merge branch 'collectd-3.11' into merge/collectd-4
Conflicts:
src/multimeter.c
src/plugin.c
Conflicts:
src/multimeter.c
src/plugin.c
Bumped version to 3.11.2; Updated ChangeLog.
{email,multimeter,users} plugin: Don't pass NULL-pointers to `plugin_submit'.
plugin.c: Catch NULL-pointers and fix it or ignore the values.
Some systems, such as Solaris, cannot handle NULL-pointers being passed to
`printf ("%s", NULL);' or the like. This caused a crash when sending the users
plugin's values over the network under Solaris.
Some systems, such as Solaris, cannot handle NULL-pointers being passed to
`printf ("%s", NULL);' or the like. This caused a crash when sending the users
plugin's values over the network under Solaris.
Merge branch 'collectd-3.11' into merge/collectd-4
Conflicts:
configure.in
src/processes.c
Conflicts:
configure.in
src/processes.c
README: Updated the informatioin about plugins and prerequisites.
dns plugin: Only include and build with `utils_dns.c' if it's actually used.
configure.in: Don't link all objects with `libkstat' and `libdevinfo'.
configure.in: Bump to 3.11.1; Improve the detection of `netinet/udp.h'.
ChangeLog: Added changes for version 3.11.1.