summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-admin')
-rw-r--r--app-admin/collectd/ChangeLog9
-rw-r--r--app-admin/collectd/collectd-4.10.3-r1.ebuild347
-rw-r--r--app-admin/collectd/collectd-5.0.1.ebuild (renamed from app-admin/collectd/collectd-5.0.0-r1.ebuild)12
-rw-r--r--app-admin/collectd/files/collectd-5.0.1-varnish.patch159
4 files changed, 173 insertions, 354 deletions
diff --git a/app-admin/collectd/ChangeLog b/app-admin/collectd/ChangeLog
index ec923b5b79b7..8253bd3443f6 100644
--- a/app-admin/collectd/ChangeLog
+++ b/app-admin/collectd/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for app-admin/collectd
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-admin/collectd/ChangeLog,v 1.29 2011/10/18 15:21:12 jer Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-admin/collectd/ChangeLog,v 1.30 2011/10/22 17:35:40 dilfridge Exp $
+
+*collectd-5.0.1 (22 Oct 2011)
+
+ 22 Oct 2011; Andreas K. Huettel <dilfridge@gentoo.org>
+ -collectd-4.10.3-r1.ebuild, -collectd-5.0.0-r1.ebuild,
+ +collectd-5.0.1.ebuild, +files/collectd-5.0.1-varnish.patch:
+ Version bump; add varnish-3 patch, bug 386993
18 Oct 2011; Jeroen Roovers <jer@gentoo.org> metadata.xml:
Fix maintainer tag order and remove bug wrangler instructions that machines
diff --git a/app-admin/collectd/collectd-4.10.3-r1.ebuild b/app-admin/collectd/collectd-4.10.3-r1.ebuild
deleted file mode 100644
index 5778331d8a9c..000000000000
--- a/app-admin/collectd/collectd-4.10.3-r1.ebuild
+++ /dev/null
@@ -1,347 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/app-admin/collectd/collectd-4.10.3-r1.ebuild,v 1.3 2011/07/25 21:00:48 dilfridge Exp $
-
-EAPI=4
-
-inherit eutils base linux-info perl-app autotools
-
-DESCRIPTION="A small daemon which collects system performance statistics - with a near-infinite number of plugins"
-HOMEPAGE="http://collectd.org"
-SRC_URI="${HOMEPAGE}/files/${P}.tar.bz2"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="contrib debug kernel_linux kernel_FreeBSD kernel_Darwin perl static-libs"
-
-# The plugin lists have to follow here since they extend IUSE
-
-# Plugins that to my knowledge cannot be supported (eg. dependencies not in gentoo)
-COLLECTD_IMPOSSIBLE_PLUGINS="netapp pinba xmms"
-
-# Plugins that still need some work
-COLLECTD_UNTESTED_PLUGINS="ipvs apple_sensors routeros tape zfs_arc modbus"
-
-# Plugins that have been (compile) tested and can be enabled via COLLECTD_PLUGINS
-COLLECTD_TESTED_PLUGINS="apache apcups ascent battery bind conntrack contextswitch
- cpu cpufreq curl curl_json curl_xml dbi df disk dns email entropy exec filecount fscache gmond
- hddtemp interface ipmi iptables irq java libvirt load madwifi mbmon memcachec
- memcached memory multimeter mysql netlink network nfs nginx ntpd nut olsrd
- onewire openvpn perl ping postgresql powerdns processes protocols python
- rrdcached sensors serial snmp swap table tail tcpconns teamspeak2 ted thermal
- tokyotyrant uptime users vmem vserver wireless csv exec logfile network
- notify_desktop notify_email oracle perl python rrdcached rrdtool syslog unixsock write_http
- match_empty_counter match_hashed match_regex match_timediff match_value
- target_notification target_replace target_scale target_set uuid"
-
-COLLECTD_DISABLED_PLUGINS="${COLLECTD_IMPOSSIBLE_PLUGINS} ${COLLECTD_UNTESTED_PLUGINS}"
-
-COLLECTD_ALL_PLUGINS=${COLLECTD_TESTED_PLUGINS}
-
-for plugin in ${COLLECTD_ALL_PLUGINS}; do
- IUSE="${IUSE} collectd_plugins_${plugin}"
-done
-unset plugin
-
-# Now come the dependencies.
-
-COMMON_DEPEND="
- sys-devel/libtool
- perl? ( dev-lang/perl[ithreads] ( || ( sys-devel/libperl[ithreads] >=sys-devel/libperl-5.10 ) ) )
- collectd_plugins_apache? ( net-misc/curl )
- collectd_plugins_ascent? ( net-misc/curl dev-libs/libxml2 )
- collectd_plugins_bind? ( dev-libs/libxml2 )
- collectd_plugins_curl? ( net-misc/curl )
- collectd_plugins_curl_json? ( net-misc/curl dev-libs/yajl )
- collectd_plugins_curl_xml? ( net-misc/curl dev-libs/libxml2 )
- collectd_plugins_dbi? ( dev-db/libdbi )
- collectd_plugins_dns? ( net-libs/libpcap )
- collectd_plugins_gmond? ( sys-cluster/ganglia )
- collectd_plugins_ipmi? ( >=sys-libs/openipmi-2.0.16-r1 )
- collectd_plugins_iptables? ( >=net-firewall/iptables-1.4.9.1-r2 )
- collectd_plugins_java? ( virtual/jre dev-java/java-config-wrapper )
- collectd_plugins_libvirt? ( app-emulation/libvirt dev-libs/libxml2 )
- collectd_plugins_memcachec? ( dev-libs/libmemcached )
- collectd_plugins_mysql? ( >=virtual/mysql-5.0 )
- collectd_plugins_netlink? ( >=sys-apps/iproute2-2.6.34 )
- collectd_plugins_network? ( dev-libs/libgcrypt )
- collectd_plugins_nginx? ( net-misc/curl )
- collectd_plugins_notify_desktop? ( x11-libs/libnotify )
- collectd_plugins_notify_email? ( >=net-libs/libesmtp-1.0.4 dev-libs/openssl )
- collectd_plugins_nut? ( sys-power/nut )
- collectd_plugins_onewire? ( sys-fs/owfs )
- collectd_plugins_oracle? ( >=dev-db/oracle-instantclient-basic-11.2.0.1.0 )
- collectd_plugins_perl? ( dev-lang/perl[ithreads] ( || ( sys-devel/libperl[ithreads] >=sys-devel/libperl-5.10 ) ) )
- collectd_plugins_ping? ( net-libs/liboping )
- collectd_plugins_postgresql? ( >=dev-db/postgresql-base-8.2 )
- collectd_plugins_python? ( =dev-lang/python-2* )
- collectd_plugins_rrdcached? ( >=net-analyzer/rrdtool-1.4 )
- collectd_plugins_rrdtool? ( >=net-analyzer/rrdtool-1.2.27 )
- collectd_plugins_sensors? ( sys-apps/lm_sensors )
- collectd_plugins_snmp? ( net-analyzer/net-snmp )
- collectd_plugins_tokyotyrant? ( net-misc/tokyotyrant )
- collectd_plugins_write_http? ( net-misc/curl )
-
- kernel_FreeBSD? (
- collectd_plugins_disk? ( >=sys-libs/libstatgrab-0.16 )
- collectd_plugins_interface? ( >=sys-libs/libstatgrab-0.16 )
- collectd_plugins_load? ( >=sys-libs/libstatgrab-0.16 )
- collectd_plugins_memory? ( >=sys-libs/libstatgrab-0.16 )
- collectd_plugins_swap? ( >=sys-libs/libstatgrab-0.16 )
- collectd_plugins_users? ( >=sys-libs/libstatgrab-0.16 )
- )"
-
-DEPEND="${COMMON_DEPEND}
- dev-util/pkgconfig
- kernel_linux? (
- collectd_plugins_vserver? ( sys-kernel/vserver-sources )
- )"
-
-RDEPEND="${COMMON_DEPEND}
- collectd_plugins_syslog? ( virtual/logger )"
-
-PATCHES=(
- "${FILESDIR}/${PN}-4.10.1"-{libperl,libiptc,noowniptc}.patch
- "${FILESDIR}/${PN}-4.10.2"-{libocci,libnotify-0.7,nohal}.patch
- "${FILESDIR}/${PN}-4.10.3"-{lt,werror}.patch
- )
-
-# @FUNCTION: collectd_plugin_kernel_linux
-# @DESCRIPTION:
-# USAGE: <plug-in name> <kernel_options> <severity>
-# kernel_options is a list of kernel configurations options; the check tests whether at least
-# one of them is enabled. If no, depending on the third argument an elog, ewarn, or eerror message
-# is emitted.
-collectd_plugin_kernel_linux() {
- local multi_opt opt
- if has ${1} ${COLLECTD_ALL_PLUGINS}; then
- if use collectd_plugins_${1}; then
- for opt in ${2}; do
- if linux_chkconfig_present ${opt}; then return 0; fi
- done
- multi_opt=${2//\ /\ or\ }
- case ${3} in
- (info)
- elog "The ${1} plug-in can use kernel features that are disabled now; enable ${multi_opt} in your kernel"
- ;;
- (warn)
- ewarn "The ${1} plug-in uses kernel features that are disabled now; enable ${multi_opt} in your kernel"
- ;;
- (error)
- eerror "The ${1} plug-in needs kernel features that are disabled now; enable ${multi_opt} in your kernel"
- ;;
- (*)
- die "function collectd_plugin_kernel_linux called with invalid third argument"
- ;;
- esac
- fi
- fi
-}
-
-collectd_linux_kernel_checks() {
- linux-info_pkg_setup
-
- # battery.c:/proc/pmu/battery_%i
- # battery.c:/proc/acpi/battery
- collectd_plugin_kernel_linux battery ACPI_BATTERY warn
-
- # cpufreq.c:/sys/devices/system/cpu/cpu%d/cpufreq/
- collectd_plugin_kernel_linux cpufreq SYSFS warn
- collectd_plugin_kernel_linux cpufreq CPU_FREQ_STAT warn
-
- # nfs.c:/proc/net/rpc/nfs
- # nfs.c:/proc/net/rpc/nfsd
- collectd_plugin_kernel_linux nfs NFS_COMMON warn
-
- # serial.c:/proc/tty/driver/serial
- # serial.c:/proc/tty/driver/ttyS
- collectd_plugin_kernel_linux serial SERIAL_CORE warn
-
- # swap.c:/proc/meminfo
- collectd_plugin_kernel_linux swap SWAP warn
-
- # thermal.c:/proc/acpi/thermal_zone
- # thermal.c:/sys/class/thermal
- collectd_plugin_kernel_linux thermal "PROC_FS SYSFS" warn
- collectd_plugin_kernel_linux thermal ACPI_THERMAL warn
-
- # vmem.c:/proc/vmstat
- collectd_plugin_kernel_linux vmem VM_EVENT_COUNTERS warn
-
- # uuid.c:/sys/hypervisor/uuid
- collectd_plugin_kernel_linux uuid SYSFS info
-
- # wireless.c:/proc/net/wireless
- collectd_plugin_kernel_linux wireless "MAC80211 IEEE80211" warn
-}
-
-pkg_setup() {
- if use kernel_linux; then
- if linux_config_exists; then
- einfo "Checking your linux kernel configuration:"
- collectd_linux_kernel_checks
- else
- elog "Cannot find a linux kernel configuration. Continuing anyway."
- fi
- fi
-
- enewgroup collectd
- enewuser collectd -1 -1 /var/lib/collectd collectd
-}
-
-src_prepare() {
- base_src_prepare
-
- # There's some strange prefix handling in the default config file, resulting in
- # paths like "/usr/var/..."
- sed -i -e "s:@prefix@/var:/var:g" src/collectd.conf.in || die
-
- rm -r libltdl || die
-
- eautoreconf
-}
-
-src_configure() {
- # Now come the lists of os-dependent plugins. Any plugin that is not listed anywhere here
- # should work independent of the operating system.
-
- local linux_plugins="battery cpu cpufreq disk entropy interface iptables ipvs irq load
- memory netlink nfs processes serial swap tcpconns thermal users vmem vserver
- wireless"
-
- local libstatgrab_plugins="cpu disk interface load memory swap users"
- local bsd_plugins="cpu tcpconns ${libstatgrab_plugins}"
-
- local darwin_plugins="apple_sensors battery cpu disk interface memory processes tcpconns"
-
- local osdependent_plugins="${linux_plugins} ${bsd_plugins} ${darwin_plugins}"
- local myos_plugins=""
- if use kernel_linux; then
- einfo "Enabling Linux plugins."
- myos_plugins=${linux_plugins}
- elif use kernel_FreeBSD; then
- einfo "Enabling FreeBSD plugins."
- myos_plugins=${bsd_plugins}
- elif use kernel_Darwin; then
- einfo "Enabling Darwin plugins."
- myos_plugins=${darwin_plugins}
- fi
-
- # Do we debug?
- local myconf="$(use_enable debug)"
-
- local plugin
-
- # Disable what needs to be disabled.
- for plugin in ${COLLECTD_DISABLED_PLUGINS}; do
- myconf+=" --disable-${plugin}"
- done
-
- # Set enable/disable for each single plugin.
- for plugin in ${COLLECTD_ALL_PLUGINS}; do
- if has ${plugin} ${osdependent_plugins}; then
- # plugin is os-dependent ...
- if has ${plugin} ${myos_plugins}; then
- # ... and available in this os
- myconf+=" $(use_enable collectd_plugins_${plugin} ${plugin})"
- else
- # ... and NOT available in this os
- if use collectd_plugins_${plugin}; then
- ewarn "You try to enable the ${plugin} plugin, but it is not available for this"
- ewarn "kernel. Disabling it automatically."
- fi
- myconf+=" --disable-${plugin}"
- fi
- elif [[ "${plugin}" = "collectd_plugins_perl" ]]; then
- if use collectd_plugins_perl && ! use perl; then
- ewarn "Perl plugin disabled as perl bindings disabled by -perl use flag"
- myconf+= --disable-perl
- else
- myconf+=" $(use_enable collectd_plugins_${plugin} ${plugin})"
- fi
- else
- myconf+=" $(use_enable collectd_plugins_${plugin} ${plugin})"
- fi
- done
-
- # Need JAVA_HOME for java.
- if use collectd_plugins_java; then
- myconf+=" --with-java=$(java-config -g JAVA_HOME)"
- fi
-
- # Need libiptc ONLY for iptables. If we try to use it otherwise bug 340109 happens.
- if ! use collectd_plugins_iptables; then
- myconf+=" --with-libiptc=no"
- fi
-
- # The perl bindings
- myconf+=" $(use_with perl perl-bindings)"
-
- # Finally, run econf.
- KERNEL_DIR="${KERNEL_DIR}" econf --config-cache --without-included-ltdl $(use_enable static-libs static) --localstatedir=/var ${myconf}
-}
-
-src_install() {
- emake DESTDIR="${D}" install || die
-
- fixlocalpod
-
- find "${D}/usr/" -name "*.la" -exec rm -f {} +
- rm "${D}/usr/$(get_libdir)"/collectd/*.a
-
- # use collectd_plugins_ping && setcap cap_net_raw+ep ${D}/usr/sbin/collectd
- # we cannot do this yet
-
- fowners root:collectd /etc/collectd.conf
- fperms u=rw,g=r,o= /etc/collectd.conf
-
- dodoc AUTHORS ChangeLog NEWS README TODO
-
- if use contrib ; then
- insinto /usr/share/doc/${PF}
- doins -r contrib
- fi
-
- keepdir /var/lib/${PN}
- fowners collectd:collectd /var/lib/${PN}
-
- newinitd "${FILESDIR}/${PN}.initd" ${PN}
- newconfd "${FILESDIR}/${PN}.confd" ${PN}
-
- insinto /etc/logrotate.d
- newins "${FILESDIR}/logrotate" collectd
-
- sed -i -e 's:^.*PIDFile "/var/run/collectd.pid":PIDFile "/var/run/collectd/collectd.pid":' "${D}"/etc/collectd.conf || die
- sed -i -e 's:^# SocketFile "/var/run/collectd-unixsock":# SocketFile "/var/run/collectd/collectd-unixsock":' "${D}"/etc/collectd.conf || die
- sed -i -e 's:^.*LoadPlugin perl$:# The new, correct way to load the perl plugin -- \n# <LoadPlugin perl>\n# Globals true\n# </LoadPlugin>:' "${D}"/etc/collectd.conf || die
- sed -i -e 's:^.*LoadPlugin python$:# The new, correct way to load the python plugin -- \n# <LoadPlugin python>\n# Globals true\n# </LoadPlugin>:' "${D}"/etc/collectd.conf || die
-}
-
-collectd_rdeps() {
- if (use collectd_plugins_${1} && ! has_version "${2}"); then
- elog "The ${1} plug-in needs ${2} to be installed locally or remotely to work."
- fi
-}
-
-pkg_postinst() {
- collectd_rdeps apcups sys-power/apcupsd
- collectd_rdeps hddtemp app-admin/hddtemp
- collectd_rdeps mbmon sys-apps/xmbmon
- collectd_rdeps memcached ">=net-misc/memcached-1.2.2-r2"
- collectd_rdeps ntpd net-misc/ntp
- collectd_rdeps openvpn ">=net-misc/openvpn-2.0.9"
-
- echo
- elog "collectd is now started as unprivileged user by default."
- elog "You may want to recheck the configuration."
- elog
-
- if use collectd_plugins_email; then
- ewarn "The email plug-in is deprecated. To submit statistics please use the unixsock plugin."
- fi
- if use contrib; then
- elog "The scripts in /usr/share/doc/${PF}/collection3 for generating graphs need dev-perl/HTML-Parser,"
- elog "dev-perl/config-general, dev-perl/regexp-common, and net-analyzer/rrdtool[perl] to be installed."
- fi
-}
diff --git a/app-admin/collectd/collectd-5.0.0-r1.ebuild b/app-admin/collectd/collectd-5.0.1.ebuild
index cfd899870157..bb10204075dc 100644
--- a/app-admin/collectd/collectd-5.0.0-r1.ebuild
+++ b/app-admin/collectd/collectd-5.0.1.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/app-admin/collectd/collectd-5.0.0-r1.ebuild,v 1.6 2011/08/26 20:36:03 dilfridge Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-admin/collectd/collectd-5.0.1.ebuild,v 1.1 2011/10/22 17:35:40 dilfridge Exp $
EAPI=4
@@ -21,7 +21,7 @@ IUSE="contrib debug kernel_linux kernel_FreeBSD kernel_Darwin perl static-libs"
COLLECTD_IMPOSSIBLE_PLUGINS="netapp pinba xmms"
# Plugins that still need some work
-COLLECTD_UNTESTED_PLUGINS="ipvs apple_sensors routeros tape zfs_arc modbus amqp genericjmx lpar redis threshold varnish write_redis v5upgrade"
+COLLECTD_UNTESTED_PLUGINS="ipvs apple_sensors routeros tape zfs_arc modbus amqp genericjmx lpar redis threshold write_redis v5upgrade"
# Plugins that have been (compile) tested and can be enabled via COLLECTD_PLUGINS
COLLECTD_TESTED_PLUGINS="apache apcups ascent battery bind conntrack contextswitch
@@ -30,7 +30,7 @@ COLLECTD_TESTED_PLUGINS="apache apcups ascent battery bind conntrack contextswit
memcached memory multimeter mysql netlink network nfs nginx ntpd nut olsrd
onewire openvpn perl ping postgresql powerdns processes protocols python
rrdcached sensors serial snmp swap table tail tcpconns teamspeak2 ted thermal
- tokyotyrant uptime users vmem vserver wireless csv exec logfile network
+ tokyotyrant uptime users varnish vmem vserver wireless csv exec logfile network
notify_desktop notify_email oracle perl python rrdcached rrdtool syslog unixsock write_http
match_empty_counter match_hashed match_regex match_timediff match_value
target_notification target_replace target_scale target_set uuid"
@@ -81,6 +81,7 @@ COMMON_DEPEND="
collectd_plugins_sensors? ( sys-apps/lm_sensors )
collectd_plugins_snmp? ( net-analyzer/net-snmp )
collectd_plugins_tokyotyrant? ( net-misc/tokyotyrant )
+ collectd_plugins_varnish? ( www-servers/varnish )
collectd_plugins_write_http? ( net-misc/curl )
kernel_FreeBSD? (
@@ -103,10 +104,9 @@ RDEPEND="${COMMON_DEPEND}
PATCHES=(
"${FILESDIR}/${PN}-4.10.1"-{libperl,libiptc,noowniptc}.patch
- "${FILESDIR}/${PN}-4.10.2"-{libocci,libnotify-0.7,nohal}.patch
+ "${FILESDIR}/${PN}-4.10.2"-{libocci,nohal}.patch
"${FILESDIR}/${PN}-4.10.3"-{lt,werror}.patch
- "${FILESDIR}/${PN}-5.0.0"-yajl2.patch
- "${FILESDIR}/${PN}-5.0.0"-yajl2-2.patch
+ "${FILESDIR}/${P}"-varnish.patch
)
# @FUNCTION: collectd_plugin_kernel_linux
diff --git a/app-admin/collectd/files/collectd-5.0.1-varnish.patch b/app-admin/collectd/files/collectd-5.0.1-varnish.patch
new file mode 100644
index 000000000000..2f1a4e996d65
--- /dev/null
+++ b/app-admin/collectd/files/collectd-5.0.1-varnish.patch
@@ -0,0 +1,159 @@
+--- a/external/collectd/5.0.0-r2-gen2/configure.in
++++ a/external/collectd/5.0.0-r2-gen2/configure.in
+@@ -3959,9 +3959,17 @@ then
+ CPPFLAGS="$CPPFLAGS $with_libvarnish_cflags"
+ #LDFLAGS="$LDFLAGS $with_libvarnish_libs"
+
+- AC_CHECK_LIB(varnishapi, VSL_OpenStats,
++### Varnish 2 ###
++# AC_CHECK_LIB(varnishapi, VSL_OpenStats,
++# [with_libvarnish="yes"],
++# [with_libvarnish="no (symbol VSL_OpenStats not found)"],
++# [$with_libvarnish_libs])
++
++### Varnish 3 ###
++# Replaced VSL_OpenStats with VSC_Main
++ AC_CHECK_LIB(varnishapi, VSC_Main,
+ [with_libvarnish="yes"],
+- [with_libvarnish="no (symbol VSL_OpenStats not found)"],
++ [with_libvarnish="no (symbol VSC_Main not found)"],
+ [$with_libvarnish_libs])
+
+ CPPFLAGS="$SAVE_CPPFLAGS"
+--- a/external/collectd/5.0.0-r2-gen2/src/varnish.c
++++ a/external/collectd/5.0.0-r2-gen2/src/varnish.c
+@@ -127,12 +127,17 @@
+ * esi_errors ESI parse errors (unlock) Y
+ * }}}
+ */
++// enable the Varnish 3 interface.
++#define VARNISH3
+ #include "collectd.h"
+ #include "common.h"
+ #include "plugin.h"
+ #include "configfile.h"
+
+ #include <varnish/varnishapi.h>
++#ifdef VARNISH3
++#include <varnish/vsc.h>
++#endif
+
+ /* {{{ user_config_s */
+ struct user_config_s {
+@@ -204,7 +209,11 @@ static int varnish_submit_derive (const char *plugin_instance, /* {{{ */
+ return (varnish_submit (plugin_instance, category, type, type_instance, value));
+ } /* }}} int varnish_submit_derive */
+
++#ifdef VARNISH3
++static void varnish_monitor (const user_config_t *conf, struct VSC_C_main *VSL_stats)
++#else
+ static void varnish_monitor (const user_config_t *conf, struct varnish_stats *VSL_stats) /* {{{ */
++#endif
+ {
+ if (conf->collect_cache)
+ {
+@@ -229,7 +238,11 @@ static void varnish_monitor (const user_config_t *conf, struct varnish_stats *VS
+ if (conf->collect_esi)
+ {
+ /* Objects ESI parsed (unlock) */
++#ifdef VARNISH3
++ varnish_submit_derive (conf->instance, "esi", "total_operations", "warnings", VSL_stats->esi_warnings);
++#else
+ varnish_submit_derive (conf->instance, "esi", "total_operations", "parsed", VSL_stats->esi_parse);
++#endif
+ /* ESI parse errors (unlock) */
+ varnish_submit_derive (conf->instance, "esi", "total_operations", "error", VSL_stats->esi_errors);
+ }
+@@ -250,8 +263,13 @@ static void varnish_monitor (const user_config_t *conf, struct varnish_stats *VS
+ varnish_submit_derive (conf->instance, "backend", "connections", "was-closed" , VSL_stats->backend_toolate);
+ /* Backend conn. recycles */
+ varnish_submit_derive (conf->instance, "backend", "connections", "recycled" , VSL_stats->backend_recycle);
++#ifdef VARNISH3
++ /* Backend conn. retries */
++ varnish_submit_derive (conf->instance, "backend", "connections", "retries" , VSL_stats->backend_retry);
++#else
+ /* Backend conn. unused */
+ varnish_submit_derive (conf->instance, "backend", "connections", "unused" , VSL_stats->backend_unused);
++#endif
+ }
+
+ if (conf->collect_fetch)
+@@ -300,6 +318,10 @@ static void varnish_monitor (const user_config_t *conf, struct varnish_stats *VS
+ varnish_submit_derive (conf->instance, "shm", "total_operations", "cycles" , VSL_stats->shm_cycles);
+ }
+
++#ifdef VARNISH3
++ /* sm & sma stats seem to have gone away. The SMA stuff looks like it may
++ have been moved into another structure somewhere else. */
++#else
+ if (conf->collect_sm)
+ {
+ /* allocator requests */
+@@ -325,6 +347,7 @@ static void varnish_monitor (const user_config_t *conf, struct varnish_stats *VS
+ /* SMA bytes free */
+ varnish_submit_derive (conf->instance, "sma", "total_bytes", "free" , VSL_stats->sma_bfree);
+ }
++#endif
+
+ if (conf->collect_sms)
+ {
+@@ -368,10 +391,17 @@ static void varnish_monitor (const user_config_t *conf, struct varnish_stats *VS
+ varnish_submit_derive (conf->instance, "workers", "total_threads", "failed", VSL_stats->n_wrk_failed);
+ /* worker threads limited */
+ varnish_submit_derive (conf->instance, "workers", "total_threads", "limited", VSL_stats->n_wrk_max);
++#ifdef VARNISH3
++ /* work requests queue length */
++ varnish_submit_derive (conf->instance, "workers", "total_requests", "queue_length",VSL_stats->n_wrk_lqueue);
++ /* queued work requests */
++ varnish_submit_derive (conf->instance, "workers", "total_requests", "queued", VSL_stats->n_wrk_queued);
++#else
+ /* queued work requests */
+ varnish_submit_derive (conf->instance, "workers", "total_requests", "queued", VSL_stats->n_wrk_queue);
+ /* overflowed work requests */
+ varnish_submit_derive (conf->instance, "workers", "total_requests", "overflowed", VSL_stats->n_wrk_overflow);
++#endif
+ /* dropped work requests */
+ varnish_submit_derive (conf->instance, "workers", "total_requests", "dropped", VSL_stats->n_wrk_drop);
+ }
+@@ -379,7 +409,12 @@ static void varnish_monitor (const user_config_t *conf, struct varnish_stats *VS
+
+ static int varnish_read (user_data_t *ud) /* {{{ */
+ {
++#ifdef VARNISH3
++ struct VSM_data *vd;
++ struct VSC_C_main *VSL_stats;
++#else
+ struct varnish_stats *VSL_stats;
++#endif
+ user_config_t *conf;
+
+ if ((ud == NULL) || (ud->data == NULL))
+@@ -387,15 +422,28 @@ static int varnish_read (user_data_t *ud) /* {{{ */
+
+ conf = ud->data;
+
++#ifdef VARNISH3
++ vd = VSM_New();
++ VSC_Setup(vd);
++ if(conf->instance) VSM_n_Arg(vd, conf->instance);
++ if(VSC_Open(vd, 1) || (VSL_stats = VSC_Main(vd))==NULL)
++#else
+ VSL_stats = VSL_OpenStats (conf->instance);
+ if (VSL_stats == NULL)
++#endif
+ {
++#ifdef VARNISH3
++ VSM_Delete(vd);
++#endif
+ ERROR ("Varnish plugin : unable to load statistics");
+
+ return (-1);
+ }
+
+ varnish_monitor (conf, VSL_stats);
++#ifdef VARNISH3
++ VSM_Delete(vd);
++#endif
+
+ return (0);
+ } /* }}} */