Code

core: Changed internal API to allow for per-plugin intervals.
authorSebastian Harl <sh@tokkee.org>
Fri, 17 Jun 2011 08:53:24 +0000 (10:53 +0200)
committerSebastian Harl <sh@teamix.net>
Mon, 19 Sep 2011 07:47:12 +0000 (09:47 +0200)
commit2139f51939cc70f5668ab68a16fefdb3d52bd663
treed126477e5b12ab34d8e70674f65bdccbe87fda48
parent30d9db08c7608d1a9edf00c72d8728212a39bb82
core: Changed internal API to allow for per-plugin intervals.

This is the basic support for configuring custom intervals on a per-plugin
basis. The following API changes have been introduced:

 - Each plugin's 'module_register()' function is now required to accept and
   respect an argument passing the custom interval (if configured). This is
   done by passing a pointer to a struct 'plugin_loaddata_t' which (currently)
   contains a single cdtime_t member storing the custom interval (0 if none
   has been configured).
 - A new plugin-global variable, 'plugin_interval', has been introduced. It is
   defined in 'plugin.h', and, thus, defined and available in all plugins.
 - A new macro, 'PLUGIN_INIT_INTERVAL', has been introduced to initialize
   'plugin_interval' in 'module_register'. It requires the passed loaddata
   object as argument. In order for this mechanism to work, this macro has to
   be used in all plugins.
 - The macro 'VALUE_LIST_INIT' now requires the default interval as an
   argument. In most cases 'plugin_interval' should be used.
 - 'plugin_register_read' now requires a third argument specifying the
   interval. Usually, 'plugin_interval' should be passed.
 - The <LoadPlugin> block now accepts an option 'Interval' to configure the
   custom interval.
117 files changed:
src/amqp.c
src/apache.c
src/apcups.c
src/apple_sensors.c
src/ascent.c
src/battery.c
src/bind.c
src/configfile.c
src/configfile.h
src/conntrack.c
src/contextswitch.c
src/cpu.c
src/cpufreq.c
src/cpython.h
src/csv.c
src/curl.c
src/curl_json.c
src/curl_xml.c
src/dbi.c
src/df.c
src/disk.c
src/dns.c
src/email.c
src/entropy.c
src/exec.c
src/filecount.c
src/fscache.c
src/gmond.c
src/hddtemp.c
src/interface.c
src/ipmi.c
src/iptables.c
src/ipvs.c
src/irq.c
src/java.c
src/libvirt.c
src/load.c
src/logfile.c
src/lpar.c
src/madwifi.c
src/match_empty_counter.c
src/match_hashed.c
src/match_regex.c
src/match_timediff.c
src/match_value.c
src/mbmon.c
src/memcachec.c
src/memcached.c
src/memory.c
src/modbus.c
src/multimeter.c
src/mysql.c
src/netapp.c
src/netlink.c
src/network.c
src/nfs.c
src/nginx.c
src/notify_desktop.c
src/notify_email.c
src/ntpd.c
src/nut.c
src/olsrd.c
src/onewire.c
src/openvpn.c
src/oracle.c
src/perl.c
src/pinba.c
src/ping.c
src/plugin.c
src/plugin.h
src/postgresql.c
src/powerdns.c
src/processes.c
src/protocols.c
src/python.c
src/pyvalues.c
src/redis.c
src/routeros.c
src/rrdcached.c
src/rrdtool.c
src/sensors.c
src/serial.c
src/snmp.c
src/swap.c
src/syslog.c
src/table.c
src/tail.c
src/tape.c
src/target_notification.c
src/target_replace.c
src/target_scale.c
src/target_set.c
src/target_v5upgrade.c
src/tcpconns.c
src/teamspeak2.c
src/ted.c
src/thermal.c
src/threshold.c
src/tokyotyrant.c
src/unixsock.c
src/uptime.c
src/users.c
src/utils_cache.c
src/utils_cmd_putval.c
src/utils_cmd_putval.h
src/utils_db_query.c
src/utils_tail_match.c
src/utils_tail_match.h
src/uuid.c
src/varnish.c
src/vmem.c
src/vserver.c
src/wireless.c
src/write_http.c
src/write_redis.c
src/xmms.c
src/zfs_arc.c