author | Pierre-Yves Ritschard <pyr@spootnik.org> | |
Mon, 18 Apr 2016 08:10:47 +0000 (10:10 +0200) | ||
committer | Pierre-Yves Ritschard <pyr@spootnik.org> | |
Mon, 18 Apr 2016 08:10:47 +0000 (10:10 +0200) |
23 files changed:
diff --git a/configure.ac b/configure.ac
index 9cc9b552d24ba9a4d12b66d0ac3bd67517e4c696..de24293c7c4a640c2e066ad6fc6916facfb66062 100644 (file)
--- a/configure.ac
+++ b/configure.ac
if test "x$ac_system" = "xLinux"
then
plugin_battery="yes"
+ plugin_cgroups="yes"
plugin_conntrack="yes"
plugin_contextswitch="yes"
- plugin_cgroups="yes"
plugin_cpu="yes"
plugin_cpufreq="yes"
plugin_disk="yes"
if test "x$ac_system" = "xNetBSD"
then
+ plugin_disk="yes"
plugin_entropy="yes"
plugin_irq="yes"
plugin_processes="yes"
- plugin_disk="yes"
fi
# Mac OS X devices
if test "x$ac_system" = "xAIX"
then
- plugin_tcpconns="yes"
plugin_ipc="yes"
+ plugin_tcpconns="yes"
fi
# FreeBSD
if test "x$with_perfstat" = "xyes"
then
- plugin_cpu="yes"
plugin_contextswitch="yes"
+ plugin_cpu="yes"
plugin_disk="yes"
- plugin_memory="yes"
- plugin_swap="yes"
plugin_interface="yes"
plugin_load="yes"
+ plugin_memory="yes"
+ plugin_swap="yes"
plugin_uptime="yes"
fi
m4_divert_once([HELP_ENABLE], [])
-AC_PLUGIN([aggregation], [yes], [Aggregation plugin])
-AC_PLUGIN([amqp], [$with_librabbitmq], [AMQP output plugin])
-AC_PLUGIN([apache], [$with_libcurl], [Apache httpd statistics])
-AC_PLUGIN([apcups], [yes], [Statistics of UPSes by APC])
-AC_PLUGIN([apple_sensors], [$with_libiokit], [Apple's hardware sensors])
-AC_PLUGIN([aquaero], [$with_libaquaero5], [Aquaero's hardware sensors])
-AC_PLUGIN([ascent], [$plugin_ascent], [AscentEmu player statistics])
-AC_PLUGIN([barometer], [$plugin_barometer], [Barometer sensor on I2C])
-AC_PLUGIN([battery], [$plugin_battery], [Battery statistics])
-AC_PLUGIN([bind], [$plugin_bind], [ISC Bind nameserver statistics])
-AC_PLUGIN([ceph], [$plugin_ceph], [Ceph daemon statistics])
-AC_PLUGIN([conntrack], [$plugin_conntrack], [nf_conntrack statistics])
-AC_PLUGIN([contextswitch], [$plugin_contextswitch], [context switch statistics])
-AC_PLUGIN([cpufreq], [$plugin_cpufreq], [CPU frequency statistics])
-AC_PLUGIN([cpu], [$plugin_cpu], [CPU usage statistics])
-AC_PLUGIN([csv], [yes], [CSV output plugin])
-AC_PLUGIN([curl], [$with_libcurl], [CURL generic web statistics])
-AC_PLUGIN([curl_json], [$plugin_curl_json], [CouchDB statistics])
-AC_PLUGIN([curl_xml], [$plugin_curl_xml], [CURL generic xml statistics])
-AC_PLUGIN([cgroups], [$plugin_cgroups], [CGroups CPU usage accounting])
-AC_PLUGIN([dbi], [$with_libdbi], [General database statistics])
-AC_PLUGIN([df], [$plugin_df], [Filesystem usage statistics])
-AC_PLUGIN([disk], [$plugin_disk], [Disk usage statistics])
-AC_PLUGIN([drbd], [$plugin_drbd], [DRBD statistics])
-AC_PLUGIN([dns], [$with_libpcap], [DNS traffic analysis])
-AC_PLUGIN([email], [yes], [EMail statistics])
-AC_PLUGIN([entropy], [$plugin_entropy], [Entropy statistics])
-AC_PLUGIN([ethstat], [$plugin_ethstat], [Stats from NIC driver])
-AC_PLUGIN([exec], [yes], [Execution of external programs])
-AC_PLUGIN([fhcount], [$plugin_fhcount], [File handles statistics])
-AC_PLUGIN([filecount], [yes], [Count files in directories])
-AC_PLUGIN([fscache], [$plugin_fscache], [fscache statistics])
-AC_PLUGIN([gmond], [$with_libganglia], [Ganglia plugin])
-AC_PLUGIN([hddtemp], [yes], [Query hddtempd])
-AC_PLUGIN([interface], [$plugin_interface], [Interface traffic statistics])
-AC_PLUGIN([ipc], [$plugin_ipc], [IPC statistics])
-AC_PLUGIN([ipmi], [$plugin_ipmi], [IPMI sensor statistics])
-AC_PLUGIN([iptables], [$with_libiptc], [IPTables rule counters])
-AC_PLUGIN([ipvs], [$plugin_ipvs], [IPVS connection statistics])
-AC_PLUGIN([irq], [$plugin_irq], [IRQ statistics])
-AC_PLUGIN([java], [$with_java], [Embed the Java Virtual Machine])
-AC_PLUGIN([load], [$plugin_load], [System load])
-AC_PLUGIN([logfile], [yes], [File logging plugin])
-AC_PLUGIN([log_logstash], [$plugin_log_logstash], [Logstash json_event compatible logging])
-AC_PLUGIN([lpar], [$with_perfstat], [AIX logical partitions statistics])
-AC_PLUGIN([lvm], [$with_liblvm2app], [LVM statistics])
-AC_PLUGIN([madwifi], [$have_linux_wireless_h], [Madwifi wireless statistics])
-AC_PLUGIN([match_empty_counter], [yes], [The empty counter match])
-AC_PLUGIN([match_hashed], [yes], [The hashed match])
-AC_PLUGIN([match_regex], [yes], [The regex match])
-AC_PLUGIN([match_timediff], [yes], [The timediff match])
-AC_PLUGIN([match_value], [yes], [The value match])
-AC_PLUGIN([mbmon], [yes], [Query mbmond])
-AC_PLUGIN([md], [$have_linux_raid_md_u_h], [md (Linux software RAID) devices])
-AC_PLUGIN([memcachec], [$with_libmemcached], [memcachec statistics])
-AC_PLUGIN([memcached], [yes], [memcached statistics])
-AC_PLUGIN([memory], [$plugin_memory], [Memory usage])
-AC_PLUGIN([mic], [$with_mic], [Intel Many Integrated Core stats])
-AC_PLUGIN([modbus], [$with_libmodbus], [Modbus plugin])
-AC_PLUGIN([mqtt], [$with_libmosquitto], [MQTT output plugin])
-AC_PLUGIN([multimeter], [$plugin_multimeter], [Read multimeter values])
-AC_PLUGIN([mysql], [$with_libmysql], [MySQL statistics])
-AC_PLUGIN([netapp], [$with_libnetapp], [NetApp plugin])
-AC_PLUGIN([netlink], [$with_libmnl], [Enhanced Linux network statistics])
-AC_PLUGIN([network], [yes], [Network communication plugin])
-AC_PLUGIN([nfs], [$plugin_nfs], [NFS statistics])
-AC_PLUGIN([nginx], [$with_libcurl], [nginx statistics])
-AC_PLUGIN([notify_desktop], [$with_libnotify], [Desktop notifications])
-AC_PLUGIN([notify_email], [$with_libesmtp], [Email notifier])
-AC_PLUGIN([notify_nagios], [yes], [Nagios notification plugin])
-AC_PLUGIN([ntpd], [yes], [NTPd statistics])
-AC_PLUGIN([numa], [$plugin_numa], [NUMA virtual memory statistics])
-AC_PLUGIN([nut], [$with_libupsclient], [Network UPS tools statistics])
-AC_PLUGIN([olsrd], [yes], [olsrd statistics])
-AC_PLUGIN([onewire], [$with_libowcapi], [OneWire sensor statistics])
-AC_PLUGIN([openldap], [$with_libldap], [OpenLDAP statistics])
-AC_PLUGIN([openvpn], [yes], [OpenVPN client statistics])
-AC_PLUGIN([oracle], [$with_oracle], [Oracle plugin])
-AC_PLUGIN([perl], [$plugin_perl], [Embed a Perl interpreter])
-AC_PLUGIN([pf], [$have_net_pfvar_h], [BSD packet filter (PF) statistics])
+AC_PLUGIN([aggregation], [yes], [Aggregation plugin])
+AC_PLUGIN([amqp], [$with_librabbitmq], [AMQP output plugin])
+AC_PLUGIN([apache], [$with_libcurl], [Apache httpd statistics])
+AC_PLUGIN([apcups], [yes], [Statistics of UPSes by APC])
+AC_PLUGIN([apple_sensors], [$with_libiokit], [Apple hardware sensors])
+AC_PLUGIN([aquaero], [$with_libaquaero5], [Aquaero hardware sensors])
+AC_PLUGIN([ascent], [$plugin_ascent], [AscentEmu player statistics])
+AC_PLUGIN([barometer], [$plugin_barometer], [Barometer sensor on I2C])
+AC_PLUGIN([battery], [$plugin_battery], [Battery statistics])
+AC_PLUGIN([bind], [$plugin_bind], [ISC Bind nameserver statistics])
+AC_PLUGIN([ceph], [$plugin_ceph], [Ceph daemon statistics])
+AC_PLUGIN([cgroups], [$plugin_cgroups], [CGroups CPU usage accounting])
+AC_PLUGIN([conntrack], [$plugin_conntrack], [nf_conntrack statistics])
+AC_PLUGIN([contextswitch], [$plugin_contextswitch], [context switch statistics])
+AC_PLUGIN([cpu], [$plugin_cpu], [CPU usage statistics])
+AC_PLUGIN([cpufreq], [$plugin_cpufreq], [CPU frequency statistics])
+AC_PLUGIN([csv], [yes], [CSV output plugin])
+AC_PLUGIN([curl], [$with_libcurl], [CURL generic web statistics])
+AC_PLUGIN([curl_json], [$plugin_curl_json], [CouchDB statistics])
+AC_PLUGIN([curl_xml], [$plugin_curl_xml], [CURL generic xml statistics])
+AC_PLUGIN([dbi], [$with_libdbi], [General database statistics])
+AC_PLUGIN([df], [$plugin_df], [Filesystem usage statistics])
+AC_PLUGIN([disk], [$plugin_disk], [Disk usage statistics])
+AC_PLUGIN([dns], [$with_libpcap], [DNS traffic analysis])
+AC_PLUGIN([drbd], [$plugin_drbd], [DRBD statistics])
+AC_PLUGIN([email], [yes], [EMail statistics])
+AC_PLUGIN([entropy], [$plugin_entropy], [Entropy statistics])
+AC_PLUGIN([ethstat], [$plugin_ethstat], [Stats from NIC driver])
+AC_PLUGIN([exec], [yes], [Execution of external programs])
+AC_PLUGIN([fhcount], [$plugin_fhcount], [File handles statistics])
+AC_PLUGIN([filecount], [yes], [Count files in directories])
+AC_PLUGIN([fscache], [$plugin_fscache], [fscache statistics])
+AC_PLUGIN([gmond], [$with_libganglia], [Ganglia plugin])
+AC_PLUGIN([hddtemp], [yes], [Query hddtempd])
+AC_PLUGIN([interface], [$plugin_interface], [Interface traffic statistics])
+AC_PLUGIN([ipc], [$plugin_ipc], [IPC statistics])
+AC_PLUGIN([ipmi], [$plugin_ipmi], [IPMI sensor statistics])
+AC_PLUGIN([iptables], [$with_libiptc], [IPTables rule counters])
+AC_PLUGIN([ipvs], [$plugin_ipvs], [IPVS connection statistics])
+AC_PLUGIN([irq], [$plugin_irq], [IRQ statistics])
+AC_PLUGIN([java], [$with_java], [Embed the Java Virtual Machine])
+AC_PLUGIN([load], [$plugin_load], [System load])
+AC_PLUGIN([log_logstash], [$plugin_log_logstash], [Logstash json_event compatible logging])
+AC_PLUGIN([logfile], [yes], [File logging plugin])
+AC_PLUGIN([lpar], [$with_perfstat], [AIX logical partitions statistics])
+AC_PLUGIN([lvm], [$with_liblvm2app], [LVM statistics])
+AC_PLUGIN([madwifi], [$have_linux_wireless_h], [Madwifi wireless statistics])
+AC_PLUGIN([match_empty_counter], [yes], [The empty counter match])
+AC_PLUGIN([match_hashed], [yes], [The hashed match])
+AC_PLUGIN([match_regex], [yes], [The regex match])
+AC_PLUGIN([match_timediff], [yes], [The timediff match])
+AC_PLUGIN([match_value], [yes], [The value match])
+AC_PLUGIN([mbmon], [yes], [Query mbmond])
+AC_PLUGIN([md], [$have_linux_raid_md_u_h], [md (Linux software RAID) devices])
+AC_PLUGIN([memcachec], [$with_libmemcached], [memcachec statistics])
+AC_PLUGIN([memcached], [yes], [memcached statistics])
+AC_PLUGIN([memory], [$plugin_memory], [Memory usage])
+AC_PLUGIN([mic], [$with_mic], [Intel Many Integrated Core stats])
+AC_PLUGIN([modbus], [$with_libmodbus], [Modbus plugin])
+AC_PLUGIN([mqtt], [$with_libmosquitto], [MQTT output plugin])
+AC_PLUGIN([multimeter], [$plugin_multimeter], [Read multimeter values])
+AC_PLUGIN([mysql], [$with_libmysql], [MySQL statistics])
+AC_PLUGIN([netapp], [$with_libnetapp], [NetApp plugin])
+AC_PLUGIN([netlink], [$with_libmnl], [Enhanced Linux network statistics])
+AC_PLUGIN([network], [yes], [Network communication plugin])
+AC_PLUGIN([nfs], [$plugin_nfs], [NFS statistics])
+AC_PLUGIN([nginx], [$with_libcurl], [nginx statistics])
+AC_PLUGIN([notify_desktop], [$with_libnotify], [Desktop notifications])
+AC_PLUGIN([notify_email], [$with_libesmtp], [Email notifier])
+AC_PLUGIN([notify_nagios], [yes], [Nagios notification plugin])
+AC_PLUGIN([ntpd], [yes], [NTPd statistics])
+AC_PLUGIN([numa], [$plugin_numa], [NUMA virtual memory statistics])
+AC_PLUGIN([nut], [$with_libupsclient], [Network UPS tools statistics])
+AC_PLUGIN([olsrd], [yes], [olsrd statistics])
+AC_PLUGIN([onewire], [$with_libowcapi], [OneWire sensor statistics])
+AC_PLUGIN([openldap], [$with_libldap], [OpenLDAP statistics])
+AC_PLUGIN([openvpn], [yes], [OpenVPN client statistics])
+AC_PLUGIN([oracle], [$with_oracle], [Oracle plugin])
+AC_PLUGIN([perl], [$plugin_perl], [Embed a Perl interpreter])
+AC_PLUGIN([pf], [$have_net_pfvar_h], [BSD packet filter (PF) statistics])
# FIXME: Check for libevent, too.
-AC_PLUGIN([pinba], [$have_protoc_c], [Pinba statistics])
-AC_PLUGIN([ping], [$with_liboping], [Network latency statistics])
-AC_PLUGIN([postgresql], [$with_libpq], [PostgreSQL database statistics])
-AC_PLUGIN([powerdns], [yes], [PowerDNS statistics])
-AC_PLUGIN([processes], [$plugin_processes], [Process statistics])
-AC_PLUGIN([protocols], [$plugin_protocols], [Protocol (IP, TCP, ...) statistics])
-AC_PLUGIN([python], [$with_python], [Embed a Python interpreter])
-AC_PLUGIN([redis], [$with_libhiredis], [Redis plugin])
-AC_PLUGIN([routeros], [$with_librouteros], [RouterOS plugin])
-AC_PLUGIN([rrdcached], [$librrd_rrdc_update], [RRDTool output plugin])
-AC_PLUGIN([rrdtool], [$with_librrd], [RRDTool output plugin])
-AC_PLUGIN([sensors], [$with_libsensors], [lm_sensors statistics])
-AC_PLUGIN([serial], [$plugin_serial], [serial port traffic])
-AC_PLUGIN([sigrok], [$with_libsigrok], [sigrok acquisition sources])
-AC_PLUGIN([smart], [$with_libatasmart], [SMART statistics])
-AC_PLUGIN([snmp], [$with_libnetsnmp], [SNMP querying plugin])
-AC_PLUGIN([statsd], [yes], [StatsD plugin])
-AC_PLUGIN([swap], [$plugin_swap], [Swap usage statistics])
-AC_PLUGIN([syslog], [$have_syslog], [Syslog logging plugin])
-AC_PLUGIN([table], [yes], [Parsing of tabular data])
-AC_PLUGIN([tail], [yes], [Parsing of logfiles])
-AC_PLUGIN([tail_csv], [yes], [Parsing of CSV files])
-AC_PLUGIN([tape], [$plugin_tape], [Tape drive statistics])
-AC_PLUGIN([target_notification], [yes], [The notification target])
-AC_PLUGIN([target_replace], [yes], [The replace target])
-AC_PLUGIN([target_scale],[yes], [The scale target])
-AC_PLUGIN([target_set], [yes], [The set target])
-AC_PLUGIN([target_v5upgrade], [yes], [The v5upgrade target])
-AC_PLUGIN([tcpconns], [$plugin_tcpconns], [TCP connection statistics])
-AC_PLUGIN([teamspeak2], [yes], [TeamSpeak2 server statistics])
-AC_PLUGIN([ted], [$plugin_ted], [Read The Energy Detective values])
-AC_PLUGIN([thermal], [$plugin_thermal], [Linux ACPI thermal zone statistics])
-AC_PLUGIN([threshold], [yes], [Threshold checking plugin])
-AC_PLUGIN([tokyotyrant], [$with_libtokyotyrant], [TokyoTyrant database statistics])
-AC_PLUGIN([turbostat], [$plugin_turbostat], [Advanced statistic on Intel cpu states])
-AC_PLUGIN([unixsock], [yes], [Unixsock communication plugin])
-AC_PLUGIN([uptime], [$plugin_uptime], [Uptime statistics])
-AC_PLUGIN([users], [$plugin_users], [User statistics])
-AC_PLUGIN([uuid], [yes], [UUID as hostname plugin])
-AC_PLUGIN([varnish], [$with_libvarnish], [Varnish cache statistics])
-AC_PLUGIN([virt], [$plugin_virt], [Virtual machine statistics])
-AC_PLUGIN([vmem], [$plugin_vmem], [Virtual memory statistics])
-AC_PLUGIN([vserver], [$plugin_vserver], [Linux VServer statistics])
-AC_PLUGIN([wireless], [$plugin_wireless], [Wireless statistics])
-AC_PLUGIN([write_graphite], [yes], [Graphite / Carbon output plugin])
-AC_PLUGIN([write_http], [$with_libcurl], [HTTP output plugin])
-AC_PLUGIN([write_kafka], [$with_librdkafka], [Kafka output plugin])
-AC_PLUGIN([write_log], [yes], [Log output plugin])
-AC_PLUGIN([write_mongodb], [$with_libmongoc], [MongoDB output plugin])
-AC_PLUGIN([write_redis], [$with_libhiredis], [Redis output plugin])
-AC_PLUGIN([write_riemann], [$with_riemann_c], [Riemann output plugin])
-AC_PLUGIN([write_sensu], [yes], [Sensu output plugin])
-AC_PLUGIN([write_tsdb], [yes], [TSDB output plugin])
-AC_PLUGIN([xmms], [$with_libxmms], [XMMS statistics])
-AC_PLUGIN([zfs_arc], [$plugin_zfs_arc], [ZFS ARC statistics])
-AC_PLUGIN([zone], [$plugin_zone], [Solaris container statistics])
-AC_PLUGIN([zookeeper], [yes], [Zookeeper statistics])
+AC_PLUGIN([pinba], [$have_protoc_c], [Pinba statistics])
+AC_PLUGIN([ping], [$with_liboping], [Network latency statistics])
+AC_PLUGIN([postgresql], [$with_libpq], [PostgreSQL database statistics])
+AC_PLUGIN([powerdns], [yes], [PowerDNS statistics])
+AC_PLUGIN([processes], [$plugin_processes], [Process statistics])
+AC_PLUGIN([protocols], [$plugin_protocols], [Protocol (IP, TCP, ...) statistics])
+AC_PLUGIN([python], [$with_python], [Embed a Python interpreter])
+AC_PLUGIN([redis], [$with_libhiredis], [Redis plugin])
+AC_PLUGIN([routeros], [$with_librouteros], [RouterOS plugin])
+AC_PLUGIN([rrdcached], [$librrd_rrdc_update], [RRDTool output plugin])
+AC_PLUGIN([rrdtool], [$with_librrd], [RRDTool output plugin])
+AC_PLUGIN([sensors], [$with_libsensors], [lm_sensors statistics])
+AC_PLUGIN([serial], [$plugin_serial], [serial port traffic])
+AC_PLUGIN([sigrok], [$with_libsigrok], [sigrok acquisition sources])
+AC_PLUGIN([smart], [$with_libatasmart], [SMART statistics])
+AC_PLUGIN([snmp], [$with_libnetsnmp], [SNMP querying plugin])
+AC_PLUGIN([statsd], [yes], [StatsD plugin])
+AC_PLUGIN([swap], [$plugin_swap], [Swap usage statistics])
+AC_PLUGIN([syslog], [$have_syslog], [Syslog logging plugin])
+AC_PLUGIN([table], [yes], [Parsing of tabular data])
+AC_PLUGIN([tail], [yes], [Parsing of logfiles])
+AC_PLUGIN([tail_csv], [yes], [Parsing of CSV files])
+AC_PLUGIN([tape], [$plugin_tape], [Tape drive statistics])
+AC_PLUGIN([target_notification], [yes], [The notification target])
+AC_PLUGIN([target_replace], [yes], [The replace target])
+AC_PLUGIN([target_scale], [yes], [The scale target])
+AC_PLUGIN([target_set], [yes], [The set target])
+AC_PLUGIN([target_v5upgrade], [yes], [The v5upgrade target])
+AC_PLUGIN([tcpconns], [$plugin_tcpconns], [TCP connection statistics])
+AC_PLUGIN([teamspeak2], [yes], [TeamSpeak2 server statistics])
+AC_PLUGIN([ted], [$plugin_ted], [Read The Energy Detective values])
+AC_PLUGIN([thermal], [$plugin_thermal], [Linux ACPI thermal zone statistics])
+AC_PLUGIN([threshold], [yes], [Threshold checking plugin])
+AC_PLUGIN([tokyotyrant], [$with_libtokyotyrant], [TokyoTyrant database statistics])
+AC_PLUGIN([turbostat], [$plugin_turbostat], [Advanced statistic on Intel cpu states])
+AC_PLUGIN([unixsock], [yes], [Unixsock communication plugin])
+AC_PLUGIN([uptime], [$plugin_uptime], [Uptime statistics])
+AC_PLUGIN([users], [$plugin_users], [User statistics])
+AC_PLUGIN([uuid], [yes], [UUID as hostname plugin])
+AC_PLUGIN([varnish], [$with_libvarnish], [Varnish cache statistics])
+AC_PLUGIN([virt], [$plugin_virt], [Virtual machine statistics])
+AC_PLUGIN([vmem], [$plugin_vmem], [Virtual memory statistics])
+AC_PLUGIN([vserver], [$plugin_vserver], [Linux VServer statistics])
+AC_PLUGIN([wireless], [$plugin_wireless], [Wireless statistics])
+AC_PLUGIN([write_graphite], [yes], [Graphite / Carbon output plugin])
+AC_PLUGIN([write_http], [$with_libcurl], [HTTP output plugin])
+AC_PLUGIN([write_kafka], [$with_librdkafka], [Kafka output plugin])
+AC_PLUGIN([write_log], [yes], [Log output plugin])
+AC_PLUGIN([write_mongodb], [$with_libmongoc], [MongoDB output plugin])
+AC_PLUGIN([write_redis], [$with_libhiredis], [Redis output plugin])
+AC_PLUGIN([write_riemann], [$with_riemann_c], [Riemann output plugin])
+AC_PLUGIN([write_sensu], [yes], [Sensu output plugin])
+AC_PLUGIN([write_tsdb], [yes], [TSDB output plugin])
+AC_PLUGIN([xmms], [$with_libxmms], [XMMS statistics])
+AC_PLUGIN([zfs_arc], [$plugin_zfs_arc], [ZFS ARC statistics])
+AC_PLUGIN([zone], [$plugin_zone], [Solaris container statistics])
+AC_PLUGIN([zookeeper], [yes], [Zookeeper statistics])
dnl Default configuration file
# Load either syslog or logfile
index 4d4e0aa21a254289efddd9a29166599cd485e6a2..d6805640638dc9221e7f0de3329d89f163136dcd 100644 (file)
Summary: statistics collection and monitoring daemon
Name: collectd
-Version: 5.5.0
+Version: 5.5.1
Release: 1%{?dist}
URL: http://collectd.org
Source: http://collectd.org/files/%{name}-%{version}.tar.bz2
index c7806feddd905e1bc18de179e81cadf7ca057fcb..d0f1bdea9c049a757a2ce2ae06a8f96146994815 100644 (file)
[Unit]
-Description=Collectd
-After=local-fs.target network.target
-Requires=local-fs.target network.target
+Description=Collectd statistics daemon
+Documentation=man:collectd(1) man:collectd.conf(5)
+After=local-fs.target network-online.target
+Requires=local-fs.target network-online.target
[Service]
ExecStart=/usr/sbin/collectd
# socket once the daemon is ready. See systemd.service(5) for more details.
Type=notify
-# Restart the collectd daemon after a 10 seconds delay, in case it crashes.
+# Restart the collectd daemon when it fails.
Restart=on-failure
[Install]
diff --git a/src/collectd.conf.in b/src/collectd.conf.in
index 20b17b2db170062f5562560abe303750d9f68995..41d10ee32c8ff13afbfba5c05db00fdf41783cd4 100644 (file)
--- a/src/collectd.conf.in
+++ b/src/collectd.conf.in
# ClientKey "/etc/ssl/client.pem"
# ClientCert "/etc/ssl/client.crt"
# ClientKeyPass "secret"
+# Header "X-Custom-Header: custom_value"
# SSLVersion "TLSv1"
# Format "Command"
# StoreRates false
diff --git a/src/collectd.conf.pod b/src/collectd.conf.pod
index 3788d7e4f37580256921de54215505b2a33a6ad5..3f2b2effd52422194df1dfc7ae273d0401d471a2 100644 (file)
--- a/src/collectd.conf.pod
+++ b/src/collectd.conf.pod
in combination with recursively including a directory to easily be able to
arbitrarily mix configuration files and other documents (e.g. README files).
The given example is similar to the first example above but includes all files
-matching C<*.conf> in any subdirectory of C</etc/collectd.d>:
-
- Include "/etc/collectd.d" "*.conf"
+matching C<*.conf> in any subdirectory of C</etc/collectd.d>.
=back
Password required to load the private key in B<ClientKey>.
+=item B<Header> I<Header>
+
+A HTTP header to add to the request. Multiple headers are added if this option is specified more than once. Example:
+
+ Header "X-Custom-Header: custom_value"
+
=item B<SSLVersion> B<SSLv2>|B<SSLv3>|B<TLSv1>|B<TLSv1_0>|B<TLSv1_1>|B<TLSv1_2>
Define which SSL protocol version must be used. By default C<libcurl> will
=item B<TypeInstance> I<String>
+=item B<MetaDataSet> I<String> I<String>
+
Set the appropriate field to the given string. The strings for plugin instance
and type instance may be empty, the strings for host and plugin may not be
empty. It's currently not possible to set the type of a value this way.
diff --git a/src/collectdctl.c b/src/collectdctl.c
index 7d3cbce8c1551ca062c199882fb87b576e8e97e8..ee11c45da0753ab61f6eafc8035883ebe0482410 100644 (file)
--- a/src/collectdctl.c
+++ b/src/collectdctl.c
values_len = 0;
value = tmp;
- while (value != 0) {
+ while (value != NULL) {
char *dot, *endptr;
tmp = strchr (value, (int)':');
diff --git a/src/curl.c b/src/curl.c
index 5f782074d3251d0e6fc132974c818f8ee84aec55..4bb58e2c9925e5984d340fda2105b6a44f0278fd 100644 (file)
--- a/src/curl.c
+++ b/src/curl.c
static int cc_config_append_string (const char *name, struct curl_slist **dest, /* {{{ */
oconfig_item_t *ci)
{
+ struct curl_slist *temp = NULL;
if ((ci->values_num != 1) || (ci->values[0].type != OCONFIG_TYPE_STRING))
{
WARNING ("curl plugin: `%s' needs exactly one string argument.", name);
return (-1);
}
- *dest = curl_slist_append(*dest, ci->values[0].value.string);
- if (*dest == NULL)
+ temp = curl_slist_append(*dest, ci->values[0].value.string);
+ if (temp == NULL)
return (-1);
+ *dest = temp;
+
return (0);
} /* }}} int cc_config_append_string */
diff --git a/src/curl_json.c b/src/curl_json.c
index 33b1a6fead7f9db643f71386f390dde345605333..79ae68fced0293ef392fa777385d022d3e9fb0e0 100644 (file)
--- a/src/curl_json.c
+++ b/src/curl_json.c
static int cj_config_append_string (const char *name, struct curl_slist **dest, /* {{{ */
oconfig_item_t *ci)
{
+ struct curl_slist *temp = NULL;
if ((ci->values_num != 1) || (ci->values[0].type != OCONFIG_TYPE_STRING))
{
WARNING ("curl_json plugin: `%s' needs exactly one string argument.", name);
return (-1);
}
- *dest = curl_slist_append(*dest, ci->values[0].value.string);
- if (*dest == NULL)
+ temp = curl_slist_append(*dest, ci->values[0].value.string);
+ if (temp == NULL)
return (-1);
+ *dest = temp;
+
return (0);
} /* }}} int cj_config_append_string */
diff --git a/src/curl_xml.c b/src/curl_xml.c
index 03ac0c1332f39f8bfc61f4c22889dbadd2b1e6e9..58cb42db7e20daf818c82253fb7e7b17e03696fb 100644 (file)
--- a/src/curl_xml.c
+++ b/src/curl_xml.c
static int cx_config_append_string (const char *name, struct curl_slist **dest, /* {{{ */
oconfig_item_t *ci)
{
+ struct curl_slist *temp = NULL;
if ((ci->values_num != 1) || (ci->values[0].type != OCONFIG_TYPE_STRING))
{
WARNING ("curl_xml plugin: `%s' needs exactly one string argument.", name);
return (-1);
}
- *dest = curl_slist_append(*dest, ci->values[0].value.string);
- if (*dest == NULL)
+ temp = curl_slist_append(*dest, ci->values[0].value.string);
+ if (temp == NULL)
return (-1);
+ *dest = temp;
+
return (0);
} /* }}} int cx_config_append_string */
diff --git a/src/daemon/meta_data.c b/src/daemon/meta_data.c
index f87e35e41c78607d1eb3609688d6982c02d341c8..b3f892a22061804ef0cfa79de2323dca3b55c7b0 100644 (file)
--- a/src/daemon/meta_data.c
+++ b/src/daemon/meta_data.c
return (e);
} /* }}} meta_entry_t *md_entry_alloc */
-static meta_entry_t *md_entry_clone (const meta_entry_t *orig) /* {{{ */
+/* XXX: The lock on md must be held while calling this function! */
+static meta_entry_t *md_entry_clone_contents (const meta_entry_t *orig) /* {{{ */
{
meta_entry_t *copy;
- if (orig == NULL)
- return (NULL);
+ /* WARNINGS :
+ * - we do not check that orig != NULL here. You should have done it before.
+ * - we do not set copy->next. DO NOT FORGET TO SET copy->next IN YOUR FUNCTION
+ */
copy = md_entry_alloc (orig->key);
if (copy == NULL)
else
copy->value = orig->value;
+ return (copy);
+} /* }}} meta_entry_t *md_entry_clone_contents */
+
+static meta_entry_t *md_entry_clone (const meta_entry_t *orig) /* {{{ */
+{
+ meta_entry_t *copy;
+
+ if (orig == NULL)
+ return (NULL);
+
+ copy = md_entry_clone_contents(orig);
+
copy->next = md_entry_clone (orig->next);
return (copy);
} /* }}} meta_entry_t *md_entry_clone */
return (0);
} /* }}} int md_entry_insert */
+/* XXX: The lock on md must be held while calling this function! */
+static int md_entry_insert_clone (meta_data_t *md, meta_entry_t *orig) /* {{{ */
+{
+ meta_entry_t *e;
+ meta_entry_t *this;
+ meta_entry_t *prev;
+
+ /* WARNINGS :
+ * - we do not check that md and e != NULL here. You should have done it before.
+ * - we do not use the lock. You should have set it before.
+ */
+
+ e = md_entry_clone_contents(orig);
+
+ prev = NULL;
+ this = md->head;
+ while (this != NULL)
+ {
+ if (strcasecmp (e->key, this->key) == 0)
+ break;
+
+ prev = this;
+ this = this->next;
+ }
+
+ if (this == NULL)
+ {
+ /* This key does not exist yet. */
+ if (md->head == NULL)
+ md->head = e;
+ else
+ {
+ assert (prev != NULL);
+ prev->next = e;
+ }
+
+ e->next = NULL;
+ }
+ else /* (this != NULL) */
+ {
+ if (prev == NULL)
+ md->head = e;
+ else
+ prev->next = e;
+
+ e->next = this->next;
+ }
+
+ if (this != NULL)
+ {
+ this->next = NULL;
+ md_entry_free (this);
+ }
+
+ return (0);
+} /* }}} int md_entry_insert_clone */
+
/* XXX: The lock on md must be held while calling this function! */
static meta_entry_t *md_entry_lookup (meta_data_t *md, /* {{{ */
const char *key)
return (copy);
} /* }}} meta_data_t *meta_data_clone */
+int meta_data_clone_merge (meta_data_t **dest, meta_data_t *orig) /* {{{ */
+{
+ meta_entry_t *e;
+
+ if (orig == NULL)
+ return (0);
+
+ if (*dest == NULL) {
+ *dest = meta_data_clone(orig);
+ return(0);
+ }
+
+ pthread_mutex_lock (&orig->lock);
+ for (e=orig->head; e != NULL; e = e->next)
+ {
+ md_entry_insert_clone((*dest), e);
+ }
+ pthread_mutex_unlock (&orig->lock);
+
+ return (0);
+} /* }}} int meta_data_clone_merge */
+
void meta_data_destroy (meta_data_t *md) /* {{{ */
{
if (md == NULL)
diff --git a/src/daemon/meta_data.h b/src/daemon/meta_data.h
index fa48df326ebf90dc45ef4d237dcd7e889eefa124..9e448e55db1085ae24dbb330f1618171344bef2a 100644 (file)
--- a/src/daemon/meta_data.h
+++ b/src/daemon/meta_data.h
meta_data_t *meta_data_create (void);
meta_data_t *meta_data_clone (meta_data_t *orig);
+int meta_data_clone_merge (meta_data_t **dest, meta_data_t *orig);
void meta_data_destroy (meta_data_t *md);
int meta_data_exists (meta_data_t *md, const char *key);
diff --git a/src/daemon/plugin.c b/src/daemon/plugin.c
index e593939545c7c832bf036db561ed9f8a389fe1ae..7e905f97456cae24e65950db0055e48a9b80ea6d 100644 (file)
--- a/src/daemon/plugin.c
+++ b/src/daemon/plugin.c
assert (template->values_len == 1);
- /* Calculate sum for Gauge to calculate percent if needed */
+ /* Calculate sum for Gauge to calculate percent if needed */
if (DS_TYPE_GAUGE == store_type) {
va_start (ap, store_type);
while (42)
diff --git a/src/disk.c b/src/disk.c
index 1dbdd9de543cca3fe65315a561b4d494e2e62dcc..bafc82e042274d9f7da4eadca94d48ad6543dc90 100644 (file)
--- a/src/disk.c
+++ b/src/disk.c
plugin_dispatch_values (&vl);
} /* void disk_submit */
+#if KERNEL_FREEBSD || KERNEL_LINUX
static void submit_io_time (char const *plugin_instance, derive_t io_time, derive_t weighted_time)
{
value_t values[2];
@@ -313,6 +314,7 @@ static void submit_io_time (char const *plugin_instance, derive_t io_time, deriv
plugin_dispatch_values (&vl);
} /* void submit_io_time */
+#endif /* KERNEL_FREEBSD || KERNEL_LINUX */
#if KERNEL_LINUX
static void submit_in_progress (char const *disk_name, gauge_t in_progress)
diff --git a/src/network.c b/src/network.c
index 6be4ed59521b8b80c2ec9e5220dea961a60fc8d8..3f39aac2d3f8566a0a42d9ab6ed9b47e0767bda0 100644 (file)
--- a/src/network.c
+++ b/src/network.c
warning_has_been_printed = 1;
}
- *ret_buffer += ph_length;
+ *ret_buffer = (void *) (((char *) *ret_buffer) + ph_length);
*ret_buffer_size -= ph_length;
return (0);
(void *) buffer,
sizeof (pkg_type));
memcpy ((void *) &pkg_length,
- (void *) (buffer + sizeof (pkg_type)),
+ (void *) (((char *) buffer) + sizeof (pkg_type)),
sizeof (pkg_length));
pkg_length = ntohs (pkg_length);
break;
}
- ent->data = malloc (*ent->data);
+ ent->data = malloc (network_config_packet_size);
if (ent->data == NULL)
{
sfree (ent);
diff --git a/src/processes.c b/src/processes.c
index d759cb7f181858f49e03db298aa620c1a179382f..efc64d0125af349a115bdd3c9b2bbcae7f8f30d4 100644 (file)
--- a/src/processes.c
+++ b/src/processes.c
ps->num_proc = 0;
ps->num_lwp = 0;
*state = (char) 'Z';
+
+ sfree(myStatus);
+ sfree(myInfo);
+ sfree(myUsage);
return (0);
} else {
ps->num_proc = 1;
diff --git a/src/pyvalues.c b/src/pyvalues.c
index 3c52ce5d74f08da472b1426b4105595f06157b00..0ba04360687a5906d32e1a51276137dce655b78d 100644 (file)
--- a/src/pyvalues.c
+++ b/src/pyvalues.c
value_list.values_len = size;
value_list.time = DOUBLE_TO_CDTIME_T(time);
value_list.interval = DOUBLE_TO_CDTIME_T(interval);
- value_list.meta = cpy_build_meta(meta);;
+ value_list.meta = cpy_build_meta(meta);
if (value_list.host[0] == 0)
sstrncpy(value_list.host, hostname_g, sizeof(value_list.host));
if (value_list.plugin[0] == 0)
diff --git a/src/tail_csv.c b/src/tail_csv.c
index 2d794fc7880fccf310ce4e44b6179937b7657599..a768ef81da850b721a4297709deb4e30500c6358 100644 (file)
--- a/src/tail_csv.c
+++ b/src/tail_csv.c
static cdtime_t parse_time (char const *tbuf)
{
double t;
- char *endptr = 0;
+ char *endptr = NULL;
errno = 0;
t = strtod (tbuf, &endptr);
diff --git a/src/target_set.c b/src/target_set.c
index faad0bf54e35b7d57b2366e60907fdd4cebe7ce6..73ca49fb8f071f898f328907c4aedb3a20f89ec0 100644 (file)
--- a/src/target_set.c
+++ b/src/target_set.c
char *plugin_instance;
/* char *type; */
char *type_instance;
+ meta_data_t *meta;
};
typedef struct ts_data_s ts_data_t;
+int ts_util_get_key_and_string_wo_strdup (const oconfig_item_t *ci, char **ret_key, char **ret_string) /* {{{ */
+{
+ if ((ci->values_num != 2)
+ || (ci->values[0].type != OCONFIG_TYPE_STRING)
+ || (ci->values[1].type != OCONFIG_TYPE_STRING))
+ {
+ ERROR ("ts_util_get_key_and_string_wo_strdup: The %s option requires "
+ "exactly two string argument.", ci->key);
+ return (-1);
+ }
+
+ *ret_key = ci->values[0].value.string;
+ *ret_string = ci->values[1].value.string;
+
+ return (0);
+} /* }}} int ts_util_get_key_and_string_wo_strdup */
+
static int ts_config_add_string (char **dest, /* {{{ */
const oconfig_item_t *ci, int may_be_empty)
{
return (0);
} /* }}} int ts_config_add_string */
+static int ts_config_add_meta (meta_data_t **dest, /* {{{ */
+ const oconfig_item_t *ci, int may_be_empty)
+{
+ char *key = NULL;
+ char *string = NULL;
+ int status;
+
+ status = ts_util_get_key_and_string_wo_strdup (ci, &key, &string);
+ if (status != 0)
+ return (status);
+
+ if (strlen (key) == 0)
+ {
+ ERROR ("Target `set': The `%s' option does not accept empty string as first argument.",
+ ci->key);
+ return (-1);
+ }
+
+ if (!may_be_empty && (strlen (string) == 0))
+ {
+ ERROR ("Target `set': The `%s' option does not accept empty string as second argument.",
+ ci->key);
+ return (-1);
+ }
+
+ if ((*dest) == NULL)
+ {
+ // Create a new meta_data_t
+ if ((*dest = meta_data_create()) == NULL)
+ {
+ ERROR ("Target `set': failed to create a meta data for `%s'.", ci->key);
+ return (-1);
+ }
+ }
+
+ return (meta_data_add_string (*dest, key, string));
+} /* }}} int ts_config_add_meta */
+
static int ts_destroy (void **user_data) /* {{{ */
{
ts_data_t *data;
free (data->plugin_instance);
/* free (data->type); */
free (data->type_instance);
+ meta_data_destroy(data->meta);
free (data);
return (0);
data->plugin_instance = NULL;
/* data->type = NULL; */
data->type_instance = NULL;
+ data->meta = NULL;
status = 0;
for (i = 0; i < ci->children_num; i++)
else if (strcasecmp ("TypeInstance", child->key) == 0)
status = ts_config_add_string (&data->type_instance, child,
/* may be empty = */ 1);
+ else if (strcasecmp ("MetaDataSet", child->key) == 0)
+ status = ts_config_add_meta (&data->meta, child,
+ /* may be empty = */ 1);
else
{
ERROR ("Target `set': The `%s' configuration option is not understood "
&& (data->plugin == NULL)
&& (data->plugin_instance == NULL)
/* && (data->type == NULL) */
- && (data->type_instance == NULL))
+ && (data->type_instance == NULL)
+ && (data->meta == NULL))
{
ERROR ("Target `set': You need to set at least one of `Host', "
- "`Plugin', `PluginInstance' or `TypeInstance'.");
+ "`Plugin', `PluginInstance', `TypeInstance', "
+ "`MetaDataSet' or `MetaDataEval'.");
status = -1;
}
return (-EINVAL);
}
+ if (data->meta != NULL)
+ {
+ meta_data_clone_merge(&(vl->meta), data->meta);
+ }
+
#define SET_FIELD(f) if (data->f != NULL) { sstrncpy (vl->f, data->f, sizeof (vl->f)); }
SET_FIELD (host);
SET_FIELD (plugin);
diff --git a/src/turbostat.c b/src/turbostat.c
index fc1b5dccc0dd3c4b2c2c848b1de1f9a57c95c156..bd5d86cdd626b7f216a7c82252d01227facdba44 100644 (file)
--- a/src/turbostat.c
+++ b/src/turbostat.c
CPU_FREE(cpu_present_set);
cpu_present_set = NULL;
- cpu_present_set = 0;
+ cpu_present_setsize = 0;
CPU_FREE(cpu_affinity_set);
cpu_affinity_set = NULL;
diff --git a/src/types.db b/src/types.db
index 0d81524d624b097584c6524fde76b6291624ed19..deae1afab31c57277c46db49668ded2d744f87b3 100644 (file)
--- a/src/types.db
+++ b/src/types.db
-absolute value:ABSOLUTE:0:U
-apache_bytes value:DERIVE:0:U
-apache_connections value:GAUGE:0:65535
-apache_idle_workers value:GAUGE:0:65535
-apache_requests value:DERIVE:0:U
-apache_scoreboard value:GAUGE:0:65535
-ath_nodes value:GAUGE:0:65535
-ath_stat value:DERIVE:0:U
-backends value:GAUGE:0:65535
-bitrate value:GAUGE:0:4294967295
-blocked_clients value:GAUGE:0:U
-bytes value:GAUGE:0:U
-cache_eviction value:DERIVE:0:U
-cache_operation value:DERIVE:0:U
-cache_ratio value:GAUGE:0:100
-cache_result value:DERIVE:0:U
-cache_size value:GAUGE:0:1125899906842623
-capacity value:GAUGE:0:U
-ceph_bytes value:GAUGE:U:U
-ceph_latency value:GAUGE:U:U
-ceph_rate value:DERIVE:0:U
-changes_since_last_save value:GAUGE:0:U
-charge value:GAUGE:0:U
-compression_ratio value:GAUGE:0:2
-compression uncompressed:DERIVE:0:U, compressed:DERIVE:0:U
-connections value:DERIVE:0:U
-conntrack value:GAUGE:0:4294967295
-contextswitch value:DERIVE:0:U
-count value:GAUGE:0:U
-counter value:COUNTER:U:U
-cpufreq value:GAUGE:0:U
-cpu value:DERIVE:0:U
-current_connections value:GAUGE:0:U
-current_sessions value:GAUGE:0:U
-current value:GAUGE:U:U
-delay value:GAUGE:-1000000:1000000
-derive value:DERIVE:0:U
-df_complex value:GAUGE:0:U
-df_inodes value:GAUGE:0:U
-df used:GAUGE:0:1125899906842623, free:GAUGE:0:1125899906842623
-disk_latency read:GAUGE:0:U, write:GAUGE:0:U
-disk_merged read:DERIVE:0:U, write:DERIVE:0:U
-disk_octets read:DERIVE:0:U, write:DERIVE:0:U
-disk_ops_complex value:DERIVE:0:U
-disk_ops read:DERIVE:0:U, write:DERIVE:0:U
-disk_time read:DERIVE:0:U, write:DERIVE:0:U
-disk_io_time io_time:DERIVE:0:U, weighted_io_time:DERIVE:0:U
-dns_answer value:DERIVE:0:U
-dns_notify value:DERIVE:0:U
-dns_octets queries:DERIVE:0:U, responses:DERIVE:0:U
-dns_opcode value:DERIVE:0:U
-dns_qtype_cached value:GAUGE:0:4294967295
-dns_qtype value:DERIVE:0:U
-dns_query value:DERIVE:0:U
-dns_question value:DERIVE:0:U
-dns_rcode value:DERIVE:0:U
-dns_reject value:DERIVE:0:U
-dns_request value:DERIVE:0:U
-dns_resolver value:DERIVE:0:U
-dns_response value:DERIVE:0:U
-dns_transfer value:DERIVE:0:U
-dns_update value:DERIVE:0:U
-dns_zops value:DERIVE:0:U
-drbd_resource value:DERIVE:0:U
-duration seconds:GAUGE:0:U
-email_check value:GAUGE:0:U
-email_count value:GAUGE:0:U
-email_size value:GAUGE:0:U
-entropy value:GAUGE:0:4294967295
-expired_keys value:DERIVE:0:U
-evicted_keys value:DERIVE:0:U
-fanspeed value:GAUGE:0:U
-file_handles value:GAUGE:0:U
-file_size value:GAUGE:0:U
-files value:GAUGE:0:U
-flow value:GAUGE:0:U
-fork_rate value:DERIVE:0:U
-frequency_offset value:GAUGE:-1000000:1000000
-frequency value:GAUGE:0:U
-fscache_stat value:DERIVE:0:U
-gauge value:GAUGE:U:U
-hash_collisions value:DERIVE:0:U
-http_request_methods value:DERIVE:0:U
-http_requests value:DERIVE:0:U
-http_response_codes value:DERIVE:0:U
-humidity value:GAUGE:0:100
-if_collisions value:DERIVE:0:U
-if_dropped rx:DERIVE:0:U, tx:DERIVE:0:U
-if_errors rx:DERIVE:0:U, tx:DERIVE:0:U
-if_multicast value:DERIVE:0:U
-if_octets rx:DERIVE:0:U, tx:DERIVE:0:U
-if_packets rx:DERIVE:0:U, tx:DERIVE:0:U
-if_rx_errors value:DERIVE:0:U
-if_rx_octets value:DERIVE:0:U
-if_tx_errors value:DERIVE:0:U
-if_tx_octets value:DERIVE:0:U
-invocations value:DERIVE:0:U
-io_octets rx:DERIVE:0:U, tx:DERIVE:0:U
-io_packets rx:DERIVE:0:U, tx:DERIVE:0:U
-ipt_bytes value:DERIVE:0:U
-ipt_packets value:DERIVE:0:U
-irq value:DERIVE:0:U
-latency value:GAUGE:0:U
-links value:GAUGE:0:U
-load shortterm:GAUGE:0:5000, midterm:GAUGE:0:5000, longterm:GAUGE:0:5000
-md_disks value:GAUGE:0:U
-memcached_command value:DERIVE:0:U
-memcached_connections value:GAUGE:0:U
-memcached_items value:GAUGE:0:U
-memcached_octets rx:DERIVE:0:U, tx:DERIVE:0:U
-memcached_ops value:DERIVE:0:U
-memory value:GAUGE:0:281474976710656
-memory_lua value:GAUGE:0:281474976710656
-multimeter value:GAUGE:U:U
-mutex_operations value:DERIVE:0:U
-mysql_commands value:DERIVE:0:U
-mysql_handler value:DERIVE:0:U
-mysql_locks value:DERIVE:0:U
-mysql_log_position value:DERIVE:0:U
-mysql_octets rx:DERIVE:0:U, tx:DERIVE:0:U
-mysql_bpool_pages value:GAUGE:0:U
-mysql_bpool_bytes value:GAUGE:0:U
-mysql_bpool_counters value:DERIVE:0:U
-mysql_innodb_data value:DERIVE:0:U
-mysql_innodb_dblwr value:DERIVE:0:U
-mysql_innodb_log value:DERIVE:0:U
-mysql_innodb_pages value:DERIVE:0:U
-mysql_innodb_row_lock value:DERIVE:0:U
-mysql_innodb_rows value:DERIVE:0:U
-mysql_select value:DERIVE:0:U
-mysql_sort value:DERIVE:0:U
-mysql_sort_merge_passes value:DERIVE:0:U
-mysql_sort_rows value:DERIVE:0:U
-nfs_procedure value:DERIVE:0:U
-nginx_connections value:GAUGE:0:U
-nginx_requests value:DERIVE:0:U
-node_octets rx:DERIVE:0:U, tx:DERIVE:0:U
-node_rssi value:GAUGE:0:255
-node_stat value:DERIVE:0:U
-node_tx_rate value:GAUGE:0:127
-objects value:GAUGE:0:U
-operations value:DERIVE:0:U
-packets value:DERIVE:0:U
-pending_operations value:GAUGE:0:U
-percent value:GAUGE:0:100.1
-percent_bytes value:GAUGE:0:100.1
-percent_inodes value:GAUGE:0:100.1
-pf_counters value:DERIVE:0:U
-pf_limits value:DERIVE:0:U
-pf_source value:DERIVE:0:U
-pf_states value:GAUGE:0:U
-pf_state value:DERIVE:0:U
-pg_blks value:DERIVE:0:U
-pg_db_size value:GAUGE:0:U
-pg_n_tup_c value:DERIVE:0:U
-pg_n_tup_g value:GAUGE:0:U
-pg_numbackends value:GAUGE:0:U
-pg_scan value:DERIVE:0:U
-pg_xact value:DERIVE:0:U
-ping_droprate value:GAUGE:0:100
-ping_stddev value:GAUGE:0:65535
-ping value:GAUGE:0:65535
-players value:GAUGE:0:1000000
-power value:GAUGE:0:U
-pressure value:GAUGE:0:U
-protocol_counter value:DERIVE:0:U
-ps_code value:GAUGE:0:9223372036854775807
-ps_count processes:GAUGE:0:1000000, threads:GAUGE:0:1000000
-ps_cputime user:DERIVE:0:U, syst:DERIVE:0:U
-ps_data value:GAUGE:0:9223372036854775807
-ps_disk_octets read:DERIVE:0:U, write:DERIVE:0:U
-ps_disk_ops read:DERIVE:0:U, write:DERIVE:0:U
-ps_pagefaults minflt:DERIVE:0:U, majflt:DERIVE:0:U
-ps_rss value:GAUGE:0:9223372036854775807
-ps_stacksize value:GAUGE:0:9223372036854775807
-ps_state value:GAUGE:0:65535
-ps_vm value:GAUGE:0:9223372036854775807
-pubsub value:GAUGE:0:U
-queue_length value:GAUGE:0:U
-records value:GAUGE:0:U
-requests value:GAUGE:0:U
-response_time value:GAUGE:0:U
-response_code value:GAUGE:0:U
-route_etx value:GAUGE:0:U
-route_metric value:GAUGE:0:U
-routes value:GAUGE:0:U
-segments value:GAUGE:0:65535
-serial_octets rx:DERIVE:0:U, tx:DERIVE:0:U
-signal_noise value:GAUGE:U:0
-signal_power value:GAUGE:U:0
-signal_quality value:GAUGE:0:U
-smart_poweron value:GAUGE:0:U
-smart_powercycles value:GAUGE:0:U
-smart_badsectors value:GAUGE:0:U
-smart_temperature value:GAUGE:-300:300
+absolute value:ABSOLUTE:0:U
+apache_bytes value:DERIVE:0:U
+apache_connections value:GAUGE:0:65535
+apache_idle_workers value:GAUGE:0:65535
+apache_requests value:DERIVE:0:U
+apache_scoreboard value:GAUGE:0:65535
+ath_nodes value:GAUGE:0:65535
+ath_stat value:DERIVE:0:U
+backends value:GAUGE:0:65535
+bitrate value:GAUGE:0:4294967295
+blocked_clients value:GAUGE:0:U
+bytes value:GAUGE:0:U
+cache_eviction value:DERIVE:0:U
+cache_operation value:DERIVE:0:U
+cache_ratio value:GAUGE:0:100
+cache_result value:DERIVE:0:U
+cache_size value:GAUGE:0:1125899906842623
+capacity value:GAUGE:0:U
+ceph_bytes value:GAUGE:U:U
+ceph_latency value:GAUGE:U:U
+ceph_rate value:DERIVE:0:U
+changes_since_last_save value:GAUGE:0:U
+charge value:GAUGE:0:U
+compression uncompressed:DERIVE:0:U, compressed:DERIVE:0:U
+compression_ratio value:GAUGE:0:2
+connections value:DERIVE:0:U
+conntrack value:GAUGE:0:4294967295
+contextswitch value:DERIVE:0:U
+count value:GAUGE:0:U
+counter value:COUNTER:U:U
+cpu value:DERIVE:0:U
+cpufreq value:GAUGE:0:U
+current value:GAUGE:U:U
+current_connections value:GAUGE:0:U
+current_sessions value:GAUGE:0:U
+delay value:GAUGE:-1000000:1000000
+derive value:DERIVE:0:U
+df used:GAUGE:0:1125899906842623, free:GAUGE:0:1125899906842623
+df_complex value:GAUGE:0:U
+df_inodes value:GAUGE:0:U
+disk_io_time io_time:DERIVE:0:U, weighted_io_time:DERIVE:0:U
+disk_latency read:GAUGE:0:U, write:GAUGE:0:U
+disk_merged read:DERIVE:0:U, write:DERIVE:0:U
+disk_octets read:DERIVE:0:U, write:DERIVE:0:U
+disk_ops read:DERIVE:0:U, write:DERIVE:0:U
+disk_ops_complex value:DERIVE:0:U
+disk_time read:DERIVE:0:U, write:DERIVE:0:U
+dns_answer value:DERIVE:0:U
+dns_notify value:DERIVE:0:U
+dns_octets queries:DERIVE:0:U, responses:DERIVE:0:U
+dns_opcode value:DERIVE:0:U
+dns_qtype value:DERIVE:0:U
+dns_qtype_cached value:GAUGE:0:4294967295
+dns_query value:DERIVE:0:U
+dns_question value:DERIVE:0:U
+dns_rcode value:DERIVE:0:U
+dns_reject value:DERIVE:0:U
+dns_request value:DERIVE:0:U
+dns_resolver value:DERIVE:0:U
+dns_response value:DERIVE:0:U
+dns_transfer value:DERIVE:0:U
+dns_update value:DERIVE:0:U
+dns_zops value:DERIVE:0:U
+drbd_resource value:DERIVE:0:U
+duration seconds:GAUGE:0:U
+email_check value:GAUGE:0:U
+email_count value:GAUGE:0:U
+email_size value:GAUGE:0:U
+entropy value:GAUGE:0:4294967295
+evicted_keys value:DERIVE:0:U
+expired_keys value:DERIVE:0:U
+fanspeed value:GAUGE:0:U
+file_handles value:GAUGE:0:U
+file_size value:GAUGE:0:U
+files value:GAUGE:0:U
+flow value:GAUGE:0:U
+fork_rate value:DERIVE:0:U
+frequency value:GAUGE:0:U
+frequency_offset value:GAUGE:-1000000:1000000
+fscache_stat value:DERIVE:0:U
+gauge value:GAUGE:U:U
+hash_collisions value:DERIVE:0:U
+http_request_methods value:DERIVE:0:U
+http_requests value:DERIVE:0:U
+http_response_codes value:DERIVE:0:U
+humidity value:GAUGE:0:100
+if_collisions value:DERIVE:0:U
+if_dropped rx:DERIVE:0:U, tx:DERIVE:0:U
+if_errors rx:DERIVE:0:U, tx:DERIVE:0:U
+if_multicast value:DERIVE:0:U
+if_octets rx:DERIVE:0:U, tx:DERIVE:0:U
+if_packets rx:DERIVE:0:U, tx:DERIVE:0:U
+if_rx_errors value:DERIVE:0:U
+if_rx_octets value:DERIVE:0:U
+if_tx_errors value:DERIVE:0:U
+if_tx_octets value:DERIVE:0:U
+invocations value:DERIVE:0:U
+io_octets rx:DERIVE:0:U, tx:DERIVE:0:U
+io_packets rx:DERIVE:0:U, tx:DERIVE:0:U
+ipt_bytes value:DERIVE:0:U
+ipt_packets value:DERIVE:0:U
+irq value:DERIVE:0:U
+latency value:GAUGE:0:U
+links value:GAUGE:0:U
+load shortterm:GAUGE:0:5000, midterm:GAUGE:0:5000, longterm:GAUGE:0:5000
+md_disks value:GAUGE:0:U
+memcached_command value:DERIVE:0:U
+memcached_connections value:GAUGE:0:U
+memcached_items value:GAUGE:0:U
+memcached_octets rx:DERIVE:0:U, tx:DERIVE:0:U
+memcached_ops value:DERIVE:0:U
+memory value:GAUGE:0:281474976710656
+memory_lua value:GAUGE:0:281474976710656
+multimeter value:GAUGE:U:U
+mutex_operations value:DERIVE:0:U
+mysql_bpool_bytes value:GAUGE:0:U
+mysql_bpool_counters value:DERIVE:0:U
+mysql_bpool_pages value:GAUGE:0:U
+mysql_commands value:DERIVE:0:U
+mysql_handler value:DERIVE:0:U
+mysql_innodb_data value:DERIVE:0:U
+mysql_innodb_dblwr value:DERIVE:0:U
+mysql_innodb_log value:DERIVE:0:U
+mysql_innodb_pages value:DERIVE:0:U
+mysql_innodb_row_lock value:DERIVE:0:U
+mysql_innodb_rows value:DERIVE:0:U
+mysql_locks value:DERIVE:0:U
+mysql_log_position value:DERIVE:0:U
+mysql_octets rx:DERIVE:0:U, tx:DERIVE:0:U
+mysql_select value:DERIVE:0:U
+mysql_sort value:DERIVE:0:U
+mysql_sort_merge_passes value:DERIVE:0:U
+mysql_sort_rows value:DERIVE:0:U
+nfs_procedure value:DERIVE:0:U
+nginx_connections value:GAUGE:0:U
+nginx_requests value:DERIVE:0:U
+node_octets rx:DERIVE:0:U, tx:DERIVE:0:U
+node_rssi value:GAUGE:0:255
+node_stat value:DERIVE:0:U
+node_tx_rate value:GAUGE:0:127
+objects value:GAUGE:0:U
+operations value:DERIVE:0:U
+packets value:DERIVE:0:U
+pending_operations value:GAUGE:0:U
+percent value:GAUGE:0:100.1
+percent_bytes value:GAUGE:0:100.1
+percent_inodes value:GAUGE:0:100.1
+pf_counters value:DERIVE:0:U
+pf_limits value:DERIVE:0:U
+pf_source value:DERIVE:0:U
+pf_state value:DERIVE:0:U
+pf_states value:GAUGE:0:U
+pg_blks value:DERIVE:0:U
+pg_db_size value:GAUGE:0:U
+pg_n_tup_c value:DERIVE:0:U
+pg_n_tup_g value:GAUGE:0:U
+pg_numbackends value:GAUGE:0:U
+pg_scan value:DERIVE:0:U
+pg_xact value:DERIVE:0:U
+ping value:GAUGE:0:65535
+ping_droprate value:GAUGE:0:100
+ping_stddev value:GAUGE:0:65535
+players value:GAUGE:0:1000000
+power value:GAUGE:0:U
+pressure value:GAUGE:0:U
+protocol_counter value:DERIVE:0:U
+ps_code value:GAUGE:0:9223372036854775807
+ps_count processes:GAUGE:0:1000000, threads:GAUGE:0:1000000
+ps_cputime user:DERIVE:0:U, syst:DERIVE:0:U
+ps_data value:GAUGE:0:9223372036854775807
+ps_disk_octets read:DERIVE:0:U, write:DERIVE:0:U
+ps_disk_ops read:DERIVE:0:U, write:DERIVE:0:U
+ps_pagefaults minflt:DERIVE:0:U, majflt:DERIVE:0:U
+ps_rss value:GAUGE:0:9223372036854775807
+ps_stacksize value:GAUGE:0:9223372036854775807
+ps_state value:GAUGE:0:65535
+ps_vm value:GAUGE:0:9223372036854775807
+pubsub value:GAUGE:0:U
+queue_length value:GAUGE:0:U
+records value:GAUGE:0:U
+requests value:GAUGE:0:U
+response_code value:GAUGE:0:U
+response_time value:GAUGE:0:U
+route_etx value:GAUGE:0:U
+route_metric value:GAUGE:0:U
+routes value:GAUGE:0:U
+segments value:GAUGE:0:65535
+serial_octets rx:DERIVE:0:U, tx:DERIVE:0:U
+signal_noise value:GAUGE:U:0
+signal_power value:GAUGE:U:0
+signal_quality value:GAUGE:0:U
smart_attribute current:GAUGE:0:255, worst:GAUGE:0:255, threshold:GAUGE:0:255, pretty:GAUGE:0:U
-snr value:GAUGE:0:U
-spam_check value:GAUGE:0:U
-spam_score value:GAUGE:U:U
-spl value:GAUGE:U:U
-swap_io value:DERIVE:0:U
-swap value:GAUGE:0:1099511627776
-tcp_connections value:GAUGE:0:4294967295
-temperature value:GAUGE:U:U
-threads value:GAUGE:0:U
-time_dispersion value:GAUGE:-1000000:1000000
-timeleft value:GAUGE:0:U
-time_offset value:GAUGE:-1000000:1000000
-total_bytes value:DERIVE:0:U
-total_connections value:DERIVE:0:U
-total_objects value:DERIVE:0:U
-total_operations value:DERIVE:0:U
-total_requests value:DERIVE:0:U
-total_sessions value:DERIVE:0:U
-total_threads value:DERIVE:0:U
-total_time_in_ms value:DERIVE:0:U
-total_values value:DERIVE:0:U
-uptime value:GAUGE:0:4294967295
-users value:GAUGE:0:65535
-vcl value:GAUGE:0:65535
-vcpu value:GAUGE:0:U
-virt_cpu_total value:DERIVE:0:U
-virt_vcpu value:DERIVE:0:U
-vmpage_action value:DERIVE:0:U
-vmpage_faults minflt:DERIVE:0:U, majflt:DERIVE:0:U
-vmpage_io in:DERIVE:0:U, out:DERIVE:0:U
-vmpage_number value:GAUGE:0:4294967295
-volatile_changes value:GAUGE:0:U
-voltage_threshold value:GAUGE:U:U, threshold:GAUGE:U:U
-voltage value:GAUGE:U:U
-vs_memory value:GAUGE:0:9223372036854775807
-vs_processes value:GAUGE:0:65535
-vs_threads value:GAUGE:0:65535
+smart_badsectors value:GAUGE:0:U
+smart_powercycles value:GAUGE:0:U
+smart_poweron value:GAUGE:0:U
+smart_temperature value:GAUGE:-300:300
+snr value:GAUGE:0:U
+spam_check value:GAUGE:0:U
+spam_score value:GAUGE:U:U
+spl value:GAUGE:U:U
+swap value:GAUGE:0:1099511627776
+swap_io value:DERIVE:0:U
+tcp_connections value:GAUGE:0:4294967295
+temperature value:GAUGE:U:U
+threads value:GAUGE:0:U
+time_dispersion value:GAUGE:-1000000:1000000
+time_offset value:GAUGE:-1000000:1000000
+timeleft value:GAUGE:0:U
+total_bytes value:DERIVE:0:U
+total_connections value:DERIVE:0:U
+total_objects value:DERIVE:0:U
+total_operations value:DERIVE:0:U
+total_requests value:DERIVE:0:U
+total_sessions value:DERIVE:0:U
+total_threads value:DERIVE:0:U
+total_time_in_ms value:DERIVE:0:U
+total_values value:DERIVE:0:U
+uptime value:GAUGE:0:4294967295
+users value:GAUGE:0:65535
+vcl value:GAUGE:0:65535
+vcpu value:GAUGE:0:U
+virt_cpu_total value:DERIVE:0:U
+virt_vcpu value:DERIVE:0:U
+vmpage_action value:DERIVE:0:U
+vmpage_faults minflt:DERIVE:0:U, majflt:DERIVE:0:U
+vmpage_io in:DERIVE:0:U, out:DERIVE:0:U
+vmpage_number value:GAUGE:0:4294967295
+volatile_changes value:GAUGE:0:U
+voltage value:GAUGE:U:U
+voltage_threshold value:GAUGE:U:U, threshold:GAUGE:U:U
+vs_memory value:GAUGE:0:9223372036854775807
+vs_processes value:GAUGE:0:65535
+vs_threads value:GAUGE:0:65535
#
# Legacy types
# (required for the v5 upgrade target)
#
-arc_counts demand_data:COUNTER:0:U, demand_metadata:COUNTER:0:U, prefetch_data:COUNTER:0:U, prefetch_metadata:COUNTER:0:U
-arc_l2_bytes read:COUNTER:0:U, write:COUNTER:0:U
-arc_l2_size value:GAUGE:0:U
-arc_ratio value:GAUGE:0:U
-arc_size current:GAUGE:0:U, target:GAUGE:0:U, minlimit:GAUGE:0:U, maxlimit:GAUGE:0:U
-mysql_qcache hits:COUNTER:0:U, inserts:COUNTER:0:U, not_cached:COUNTER:0:U, lowmem_prunes:COUNTER:0:U, queries_in_cache:GAUGE:0:U
-mysql_threads running:GAUGE:0:U, connected:GAUGE:0:U, cached:GAUGE:0:U, created:COUNTER:0:U
+arc_counts demand_data:COUNTER:0:U, demand_metadata:COUNTER:0:U, prefetch_data:COUNTER:0:U, prefetch_metadata:COUNTER:0:U
+arc_l2_bytes read:COUNTER:0:U, write:COUNTER:0:U
+arc_l2_size value:GAUGE:0:U
+arc_ratio value:GAUGE:0:U
+arc_size current:GAUGE:0:U, target:GAUGE:0:U, minlimit:GAUGE:0:U, maxlimit:GAUGE:0:U
+mysql_qcache hits:COUNTER:0:U, inserts:COUNTER:0:U, not_cached:COUNTER:0:U, lowmem_prunes:COUNTER:0:U, queries_in_cache:GAUGE:0:U
+mysql_threads running:GAUGE:0:U, connected:GAUGE:0:U, cached:GAUGE:0:U, created:COUNTER:0:U
diff --git a/src/utils_cmd_putval.c b/src/utils_cmd_putval.c
index 69af2e4ae97c663fcecae4bd5ffe884cd658e09a..009ab3dc07812ef4a3472445195f762522eee91d 100644 (file)
--- a/src/utils_cmd_putval.c
+++ b/src/utils_cmd_putval.c
} /* while (*buffer != 0) */
/* Done parsing the options. */
- print_to_socket (fh, "0 Success: %i %s been dispatched.\n",
+ if (fh!=stdout)
+ print_to_socket (fh, "0 Success: %i %s been dispatched.\n",
values_submitted,
(values_submitted == 1) ? "value has" : "values have");
diff --git a/src/virt.c b/src/virt.c
index bbf5afc79bbac7a6c2db3605d75174ea07b6797d..e5a8725381d2cf56a7e3e4ea01ddff6481276d82 100644 (file)
--- a/src/virt.c
+++ b/src/virt.c
/* Get list of domains. */
domids = malloc (sizeof (*domids) * n);
- if (domids == 0) {
+ if (domids == NULL) {
ERROR (PLUGIN_NAME " plugin: malloc failed.");
return -1;
}
diff --git a/src/write_http.c b/src/write_http.c
index c817749f0b0bd93cec839176972d63ceb8a7e490..9a4051176bf9c40bba5c9f877d838727f9c17283 100644 (file)
--- a/src/write_http.c
+++ b/src/write_http.c
curl_easy_setopt (cb->curl, CURLOPT_NOSIGNAL, 1L);
curl_easy_setopt (cb->curl, CURLOPT_USERAGENT, COLLECTD_USERAGENT);
- cb->headers = NULL;
cb->headers = curl_slist_append (cb->headers, "Accept: */*");
if (cb->format == WH_FORMAT_JSON)
cb->headers = curl_slist_append (cb->headers, "Content-Type: application/json");
return (0);
} /* }}} int config_set_format */
+static int wh_config_append_string (const char *name, struct curl_slist **dest, /* {{{ */
+ oconfig_item_t *ci)
+{
+ struct curl_slist *temp = NULL;
+ if ((ci->values_num != 1) || (ci->values[0].type != OCONFIG_TYPE_STRING))
+ {
+ WARNING ("write_http plugin: `%s' needs exactly one string argument.", name);
+ return (-1);
+ }
+
+ temp = curl_slist_append(*dest, ci->values[0].value.string);
+ if (temp == NULL)
+ return (-1);
+
+ *dest = temp;
+
+ return (0);
+} /* }}} int wh_config_append_string */
+
static int wh_config_node (oconfig_item_t *ci) /* {{{ */
{
wh_callback_t *cb;
status = cf_util_get_int (child, &cb->timeout);
else if (strcasecmp ("LogHttpError", child->key) == 0)
status = cf_util_get_boolean (child, &cb->log_http_error);
+ else if (strcasecmp ("Header", child->key) == 0)
+ status = wh_config_append_string ("Header", &cb->headers, child);
else
{
ERROR ("write_http plugin: Invalid configuration "