FreeBSD Bugzilla – Attachment 166171 Details for
Bug 206660
net-mgmt/collectd5: Update to 5.5.1
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
collectd-5.5.1.patch - update
collectd-5.5.1.patch (text/plain), 66.94 KB, created by
Krzysztof
on 2016-01-27 03:08:17 UTC
(
hide
)
Description:
collectd-5.5.1.patch - update
Filename:
MIME Type:
Creator:
Krzysztof
Created:
2016-01-27 03:08:17 UTC
Size:
66.94 KB
patch
obsolete
>diff -ruN net-mgmt/collectd5/Makefile net-mgmt/collectd5.new/Makefile >--- net-mgmt/collectd5/Makefile 2015-12-29 19:48:03.000000000 +0100 >+++ net-mgmt/collectd5.new/Makefile 2016-01-27 03:53:14.647922794 +0100 >@@ -2,8 +2,7 @@ > # $FreeBSD: head/net-mgmt/collectd5/Makefile 404774 2015-12-29 18:48:03Z junovitch $ > > PORTNAME= collectd >-PORTVERSION= 5.5.0 >-PORTREVISION= 4 >+PORTVERSION= 5.5.1 > CATEGORIES= net-mgmt > MASTER_SITES= https://collectd.org/files/ \ > http://collectd.org/files/ >@@ -79,8 +78,6 @@ > > USE_LDCONFIG= yes > >-CONFLICTS= collectd-4.[0-9]* >- > CPPFLAGS+= -I${LOCALBASE}/include > LIBS+= -L${LOCALBASE}/lib > >@@ -89,6 +86,9 @@ > --disable-all-plugins \ > --disable-static \ > --without-amqp \ >+ --disable-ceph \ >+ --disable-cgroups \ >+ --disable-fhcount \ > --without-java \ > --without-libaquaero5 \ > --without-libganglia \ >@@ -277,7 +277,6 @@ > --enable-dns \ > --enable-email \ > --enable-exec \ >- --enable-fhcount \ > --enable-filecount \ > --enable-load \ > --enable-logfile \ >diff -ruN net-mgmt/collectd5/distinfo net-mgmt/collectd5.new/distinfo >--- net-mgmt/collectd5/distinfo 2015-08-11 03:48:54.000000000 +0200 >+++ net-mgmt/collectd5.new/distinfo 2016-01-27 02:58:50.806144567 +0100 >@@ -1,2 +1,2 @@ >-SHA256 (collectd-5.5.0.tar.bz2) = 847684cf5c10de1dc34145078af3fcf6e0d168ba98c14f1343b1062a4b569e88 >-SIZE (collectd-5.5.0.tar.bz2) = 1824495 >+SHA256 (collectd-5.5.1.tar.bz2) = f9c5d526e1f0429a7db1ccd90bdf9e23923a2fd43b7285cfda8f0341e5c0bc3f >+SIZE (collectd-5.5.1.tar.bz2) = 1797852 >diff -ruN net-mgmt/collectd5/files/patch-Makefile.am net-mgmt/collectd5.new/files/patch-Makefile.am >--- net-mgmt/collectd5/files/patch-Makefile.am 2015-08-11 03:48:54.000000000 +0200 >+++ net-mgmt/collectd5.new/files/patch-Makefile.am 2016-01-27 03:36:55.000000000 +0100 >@@ -1,6 +1,6 @@ >---- Makefile.am.orig 2015-03-09 09:38:22 UTC >+--- Makefile.am.orig 2016-01-22 08:33:25 UTC > +++ Makefile.am >-@@ -8,7 +8,6 @@ EXTRA_DIST = contrib version-gen.sh >+@@ -14,7 +14,6 @@ EXTRA_DIST = contrib version-gen.sh > > install-exec-hook: > $(mkinstalldirs) $(DESTDIR)$(localstatedir)/run >diff -ruN net-mgmt/collectd5/files/patch-configure.ac net-mgmt/collectd5.new/files/patch-configure.ac >--- net-mgmt/collectd5/files/patch-configure.ac 2015-08-14 21:30:11.000000000 +0200 >+++ net-mgmt/collectd5.new/files/patch-configure.ac 2016-01-27 03:36:55.000000000 +0100 >@@ -1,6 +1,6 @@ >---- configure.ac.orig 2015-05-27 07:51:35 UTC >+--- configure.ac.orig 2016-01-22 09:51:17 UTC > +++ configure.ac >-@@ -120,7 +120,7 @@ then >+@@ -155,7 +155,7 @@ then > fi > > # Where to install .pc files. >@@ -9,7 +9,7 @@ > AC_SUBST(pkgconfigdir) > > # Check for standards compliance mode >-@@ -641,7 +641,7 @@ SAVE_CFLAGS="$CFLAGS" >+@@ -715,7 +715,7 @@ SAVE_CFLAGS="$CFLAGS" > # Emulate behavior of src/Makefile.am > if test "x$GCC" = "xyes" > then >@@ -18,7 +18,7 @@ > fi > > AC_CACHE_CHECK([for strtok_r], >-@@ -770,7 +770,7 @@ AC_CHECK_FUNCS(getutxent, [have_getutxen >+@@ -844,7 +844,7 @@ AC_CHECK_FUNCS(getutxent, [have_getutxen > if test "x$GCC" = "xyes" > then > SAVE_CFLAGS="$CFLAGS" >@@ -27,7 +27,7 @@ > fi > > AC_CHECK_FUNCS(strptime, [have_strptime="yes"], [have_strptime="no"]) >-@@ -1495,6 +1495,7 @@ if test "x$with_kstat" = "xyes" >+@@ -1571,6 +1571,7 @@ if test "x$with_kstat" = "xyes" > then > AC_CHECK_LIB(kstat, kstat_open, [with_kstat="yes"], [with_kstat="no (libkstat not found)"], []) > fi >@@ -35,7 +35,7 @@ > if test "x$with_kstat" = "xyes" > then > AC_CHECK_LIB(devinfo, di_init, [with_devinfo="yes"], [with_devinfo="no (not found)"], []) >-@@ -1504,6 +1505,8 @@ if test "x$with_kstat" = "xyes" >+@@ -1580,6 +1581,8 @@ if test "x$with_kstat" = "xyes" > then > AC_DEFINE(HAVE_LIBKSTAT, 1, > [Define to 1 if you have the 'kstat' library (-lkstat)]) >@@ -44,7 +44,7 @@ > fi > AM_CONDITIONAL(BUILD_WITH_LIBKSTAT, test "x$with_kstat" = "xyes") > AM_CONDITIONAL(BUILD_WITH_LIBDEVINFO, test "x$with_devinfo" = "xyes") >-@@ -3346,7 +3349,7 @@ then >+@@ -3415,7 +3418,7 @@ then > SAVE_LIBS="$LIBS" > # trigger an error if Perl_load_module*() uses __attribute__nonnull__(3) > # (see issues #41 and #42) >@@ -53,7 +53,7 @@ > LIBS="$LIBS $PERL_LIBS" > > AC_CACHE_CHECK([for broken Perl_load_module()], >-@@ -3576,7 +3579,7 @@ fi >+@@ -3645,7 +3648,7 @@ fi > if test "x$with_python" = "xyes" > then > AC_MSG_CHECKING([for Python CPPFLAGS]) >@@ -62,7 +62,7 @@ > python_config_status=$? > > if test "$python_config_status" -ne 0 || test "x$python_include_path" = "x" >-@@ -3599,7 +3602,7 @@ fi >+@@ -3668,7 +3671,7 @@ fi > if test "x$with_python" = "xyes" > then > AC_MSG_CHECKING([for Python LDFLAGS]) >@@ -71,7 +71,7 @@ > python_config_status=$? > > if test "$python_config_status" -ne 0 || test "x$python_library_path" = "x" >-@@ -3614,7 +3617,7 @@ fi >+@@ -3683,7 +3686,7 @@ fi > if test "x$with_python" = "xyes" > then > AC_MSG_CHECKING([for Python LIBS]) >@@ -80,7 +80,7 @@ > python_config_status=$? > > if test "$python_config_status" -ne 0 || test "x$python_library_flags" = "x" >-@@ -3629,7 +3632,7 @@ fi >+@@ -3698,7 +3701,7 @@ fi > if test "x$with_python" = "xyes" > then > LDFLAGS="-L$python_library_path $LDFLAGS" >@@ -89,7 +89,7 @@ > > AC_CHECK_FUNC(PyObject_CallFunction, > [with_python="yes"], >-@@ -4692,8 +4695,8 @@ AC_ARG_WITH(libvarnish, [AS_HELP_STRING( >+@@ -4761,8 +4764,8 @@ AC_ARG_WITH(libvarnish, [AS_HELP_STRING( > else if test -d "$with_libvarnish/lib" > then > AC_MSG_NOTICE([Not checking for libvarnish: Manually configured]) >@@ -100,11 +100,11 @@ > with_libvarnish="yes" > fi; fi; fi > ], >-@@ -5263,6 +5266,7 @@ fi >+@@ -5334,6 +5337,7 @@ fi > > if test "x$ac_system" = "xFreeBSD" > then > + plugin_disk="yes" >- plugin_zfs_arc="yes" >+ plugin_zfs_arc="yes" > fi > >diff -ruN net-mgmt/collectd5/files/patch-src__Makefile.am net-mgmt/collectd5.new/files/patch-src__Makefile.am >--- net-mgmt/collectd5/files/patch-src__Makefile.am 2015-08-14 21:30:11.000000000 +0200 >+++ net-mgmt/collectd5.new/files/patch-src__Makefile.am 2016-01-27 03:36:55.000000000 +0100 >@@ -1,4 +1,4 @@ >---- src/Makefile.am.orig 2015-05-26 19:38:14 UTC >+--- src/Makefile.am.orig 2016-01-22 09:51:17 UTC > +++ src/Makefile.am > @@ -7,14 +7,14 @@ SUBDIRS += daemon > PLUGIN_LDFLAGS = -module -avoid-version -export-symbols-regex '\<module_register\>' >@@ -26,7 +26,7 @@ > endif > if BUILD_WITH_LIBDEVINFO > cpu_la_LIBADD += -ldevinfo >-@@ -303,7 +303,7 @@ disk_la_CFLAGS = $(AM_CFLAGS) >+@@ -301,7 +301,7 @@ disk_la_CFLAGS = $(AM_CFLAGS) > disk_la_LDFLAGS = $(PLUGIN_LDFLAGS) > disk_la_LIBADD = > if BUILD_WITH_LIBKSTAT >@@ -35,7 +35,7 @@ > endif > if BUILD_WITH_LIBDEVINFO > disk_la_LIBADD += -ldevinfo >-@@ -321,6 +321,9 @@ endif >+@@ -319,6 +319,9 @@ endif > if BUILD_WITH_PERFSTAT > disk_la_LIBADD += -lperfstat > endif >@@ -45,7 +45,7 @@ > endif > > if BUILD_PLUGIN_DNS >-@@ -408,7 +411,7 @@ interface_la_CFLAGS += $(BUILD_WITH_LIBS >+@@ -405,7 +408,7 @@ interface_la_CFLAGS += $(BUILD_WITH_LIBS > interface_la_LIBADD += $(BUILD_WITH_LIBSTATGRAB_LDFLAGS) > else > if BUILD_WITH_LIBKSTAT >@@ -54,7 +54,7 @@ > endif > if BUILD_WITH_LIBDEVINFO > interface_la_LIBADD += -ldevinfo >-@@ -591,7 +594,7 @@ memory_la_CFLAGS = $(AM_CFLAGS) >+@@ -584,7 +587,7 @@ memory_la_CFLAGS = $(AM_CFLAGS) > memory_la_LDFLAGS = $(PLUGIN_LDFLAGS) > memory_la_LIBADD = > if BUILD_WITH_LIBKSTAT >@@ -63,7 +63,7 @@ > endif > if BUILD_WITH_LIBDEVINFO > memory_la_LIBADD += -ldevinfo >-@@ -964,7 +967,7 @@ swap_la_CFLAGS = $(AM_CFLAGS) >+@@ -951,7 +954,7 @@ swap_la_CFLAGS = $(AM_CFLAGS) > swap_la_LDFLAGS = $(PLUGIN_LDFLAGS) > swap_la_LIBADD = > if BUILD_WITH_LIBKSTAT >@@ -72,7 +72,7 @@ > endif > if BUILD_WITH_LIBDEVINFO > swap_la_LIBADD += -ldevinfo >-@@ -1010,7 +1013,7 @@ if BUILD_PLUGIN_TAPE >+@@ -997,7 +1000,7 @@ if BUILD_PLUGIN_TAPE > pkglib_LTLIBRARIES += tape.la > tape_la_SOURCES = tape.c > tape_la_LDFLAGS = $(PLUGIN_LDFLAGS) >@@ -81,7 +81,7 @@ > endif > > if BUILD_PLUGIN_TARGET_NOTIFICATION >-@@ -1116,7 +1119,7 @@ uptime_la_CFLAGS = $(AM_CFLAGS) >+@@ -1102,7 +1105,7 @@ uptime_la_CFLAGS = $(AM_CFLAGS) > uptime_la_LDFLAGS = $(PLUGIN_LDFLAGS) > uptime_la_LIBADD = > if BUILD_WITH_LIBKSTAT >@@ -90,7 +90,7 @@ > endif > if BUILD_WITH_PERFSTAT > uptime_la_LIBADD += -lperfstat >-@@ -1275,7 +1278,7 @@ if BUILD_LINUX >+@@ -1260,7 +1263,7 @@ if BUILD_LINUX > # zfs_arc requires no library on linux > else > # solaris >@@ -99,7 +99,7 @@ > endif > endif > endif >-@@ -1364,12 +1367,7 @@ endif >+@@ -1354,12 +1357,7 @@ endif > > install-exec-hook: > $(mkinstalldirs) $(DESTDIR)$(sysconfdir) >diff -ruN net-mgmt/collectd5/files/patch-src__Makefile.in net-mgmt/collectd5.new/files/patch-src__Makefile.in >--- net-mgmt/collectd5/files/patch-src__Makefile.in 2015-08-11 03:48:54.000000000 +0200 >+++ net-mgmt/collectd5.new/files/patch-src__Makefile.in 2016-01-27 03:36:55.000000000 +0100 >@@ -1,6 +1,6 @@ >---- src/Makefile.in.orig 2015-05-27 07:51:49.001922000 +0000 >+--- src/Makefile.in.orig 2016-01-22 09:55:46 UTC > +++ src/Makefile.in >-@@ -2434,7 +2434,7 @@ PLUGIN_LDFLAGS = -module -avoid-version >+@@ -2426,7 +2426,7 @@ PLUGIN_LDFLAGS = -module -avoid-version > AM_CPPFLAGS = -I$(srcdir)/daemon -DPREFIX='"${prefix}"' \ > -DCONFIGFILE='"${sysconfdir}/${PACKAGE_NAME}.conf"' \ > -DLOCALSTATEDIR='"${localstatedir}"' \ >diff -ruN net-mgmt/collectd5/files/patch-src__daemon__Makefile.am net-mgmt/collectd5.new/files/patch-src__daemon__Makefile.am >--- net-mgmt/collectd5/files/patch-src__daemon__Makefile.am 2015-08-11 03:48:54.000000000 +0200 >+++ net-mgmt/collectd5.new/files/patch-src__daemon__Makefile.am 2016-01-27 03:36:55.000000000 +0100 >@@ -1,6 +1,6 @@ >---- src/daemon/Makefile.am.orig 2015-05-26 19:38:31 UTC >+--- src/daemon/Makefile.am.orig 2016-01-22 09:51:17 UTC > +++ src/daemon/Makefile.am >-@@ -6,7 +6,7 @@ >+@@ -6,7 +6,7 @@ AM_CPPFLAGS = -I$(top_srcdir)/src > AM_CPPFLAGS += -DPREFIX='"${prefix}"' > AM_CPPFLAGS += -DCONFIGFILE='"${sysconfdir}/${PACKAGE_NAME}.conf"' > AM_CPPFLAGS += -DLOCALSTATEDIR='"${localstatedir}"' >@@ -9,12 +9,3 @@ > if BUILD_FEATURE_DAEMON > AM_CPPFLAGS += -DPIDFILE='"${localstatedir}/run/${PACKAGE_NAME}.pid"' > endif >-@@ -49,7 +49,7 @@ collectd_CPPFLAGS = $(AM_CPPFLAGS) $(LT >- collectd_CFLAGS = $(AM_CFLAGS) >- collectd_LDFLAGS = -export-dynamic >- collectd_LDADD = libavltree.la libcommon.la libheap.la -lm >--collectd_DEPENDENCIES = >-+collectd_DEPENDENCIES = libavltree.la libcommon.la libheap.la >- >- # Link to these libraries.. >- if BUILD_WITH_LIBRT >diff -ruN net-mgmt/collectd5/files/patch-src__daemon__collectd.h net-mgmt/collectd5.new/files/patch-src__daemon__collectd.h >--- net-mgmt/collectd5/files/patch-src__daemon__collectd.h 2015-08-11 03:48:54.000000000 +0200 >+++ net-mgmt/collectd5.new/files/patch-src__daemon__collectd.h 2016-01-27 03:36:55.000000000 +0100 >@@ -1,4 +1,4 @@ >---- src/daemon/collectd.h.orig 2015-05-22 10:04:36 UTC >+--- src/daemon/collectd.h.orig 2016-01-22 09:51:17 UTC > +++ src/daemon/collectd.h > @@ -240,15 +240,15 @@ typedef int _Bool; > #endif >diff -ruN net-mgmt/collectd5/files/patch-src__dns.c net-mgmt/collectd5.new/files/patch-src__dns.c >--- net-mgmt/collectd5/files/patch-src__dns.c 2015-08-11 03:48:54.000000000 +0200 >+++ net-mgmt/collectd5.new/files/patch-src__dns.c 2016-01-27 03:36:55.000000000 +0100 >@@ -1,6 +1,6 @@ >---- src/dns.c.orig 2015-03-10 14:14:45 UTC >+--- src/dns.c.orig 2016-01-22 09:51:17 UTC > +++ src/dns.c >-@@ -224,6 +224,15 @@ static int dns_run_pcap_loop (void) >+@@ -223,6 +223,15 @@ static int dns_run_pcap_loop (void) > pthread_sigmask (SIG_SETMASK, &sigmask, NULL); > } > >diff -ruN net-mgmt/collectd5/files/patch-src__modbus.c net-mgmt/collectd5.new/files/patch-src__modbus.c >--- net-mgmt/collectd5/files/patch-src__modbus.c 2015-08-11 03:48:54.000000000 +0200 >+++ net-mgmt/collectd5.new/files/patch-src__modbus.c 2016-01-27 03:36:55.000000000 +0100 >@@ -1,4 +1,4 @@ >---- src/modbus.c.orig 2015-05-20 12:04:47 UTC >+--- src/modbus.c.orig 2016-01-22 09:51:17 UTC > +++ src/modbus.c > @@ -25,6 +25,9 @@ > #include "plugin.h" >@@ -9,4 +9,4 @@ > + > #include <netdb.h> > >- #include <modbus/modbus.h> >+ #include <modbus.h> >diff -ruN net-mgmt/collectd5/files/patch-src__varnish.c net-mgmt/collectd5.new/files/patch-src__varnish.c >--- net-mgmt/collectd5/files/patch-src__varnish.c 2015-11-17 01:57:09.000000000 +0100 >+++ net-mgmt/collectd5.new/files/patch-src__varnish.c 1970-01-01 01:00:00.000000000 +0100 >@@ -1,806 +0,0 @@ >-commit 0eebd2655842fbb634f67afd44fa4fdcf4e6f189 >-Author: Ruben Kerkhof <ruben@rubenkerkhof.com> >-Date: Sat Jul 4 22:49:49 2015 +0200 >- >- varnish: fix leak on read >- >- Since VSM_Close doesn't free the object we leak a few bytes >- every interval >- >-commit b208ddc7d08978f4cf52364c1935e94a0479ee42 >-Author: Marc Fournier <marc.fournier@camptocamp.com> >-Date: Wed Nov 4 21:12:36 2015 +0100 >- >- varnish: isolate varnish v2 code >- >- Segregating v2-specific code will allow reworking the v3 and v4 parts, >- while ensuring backwards compatibility with v2. >- >- The downside is that this leads to a large chunk of mostly duplicate >- code. That said, my suggestion would be to drop support for varnish v2 >- in collectd 5.6. >- >- NB: this commit breaks v3 and v4 support. >- >-commit d010d9eff882765201359959a583033dae4b373c >-Author: Marc Fournier <marc.fournier@camptocamp.com> >-Date: Wed Nov 4 22:57:00 2015 +0100 >- >- varnish: rework v3 and v4 support >- >- By using VSC_Iter() to loop over the list of metrics exposed by varnish, >- we can pick those we're interested *if they are found*. >- >- Not explicitly referring to metrics in the VSC_C_main struct makes the >- plugin more resilient to small differences between minor varnish >- versions. >- >- It also opens the possibility to monitor non-MAIN metrics, such as >- per-backend or per-storage engine stats. >- >- This patch should be compatible with the previous way of doing, from the >- user point of view. >- >- Fix #1302 >- >-commit 08bd4dd86e0fcb6828819cdf6bb3ae2115b1b8f4 >-Author: Marc Fournier <marc.fournier@camptocamp.com> >-Date: Thu Nov 5 10:23:19 2015 +0100 >- >- varnish: remove unused variable >- >- This was used in a DEBUG statement I didn't check in. >- >---- src/varnish.c.orig 2015-03-10 14:14:45 UTC >-+++ src/varnish.c >-@@ -135,6 +135,397 @@ static int varnish_submit_derive (const >- return (varnish_submit (plugin_instance, category, type, type_instance, value)); >- } /* }}} int varnish_submit_derive */ >- >-+#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 >-+static int varnish_monitor (void *priv, const struct VSC_point * const pt) /* {{{ */ >-+{ >-+ uint64_t val; >-+ const user_config_t *conf; >-+ const char *class; >-+ const char *name; >-+ >-+ if (pt == NULL) >-+ return (0); >-+ >-+ conf = priv; >-+ >-+#if HAVE_VARNISH_V4 >-+ class = pt->section->fantom->type; >-+ name = pt->desc->name; >-+ >-+ if (strcmp(class, "MAIN") != 0) >-+ return (0); >-+ >-+#elif HAVE_VARNISH_V3 >-+ class = pt->class; >-+ name = pt->name; >-+ >-+ if (strcmp(class, "") != 0) >-+ return (0); >-+#endif >-+ >-+ val = *(const volatile uint64_t*) pt->ptr; >-+ >-+ if (conf->collect_cache) >-+ { >-+ if (strcmp(name, "cache_hit") == 0) >-+ return varnish_submit_derive (conf->instance, "cache", "cache_result", "hit", val); >-+ else if (strcmp(name, "cache_miss") == 0) >-+ return varnish_submit_derive (conf->instance, "cache", "cache_result", "miss", val); >-+ else if (strcmp(name, "cache_hitpass") == 0) >-+ return varnish_submit_derive (conf->instance, "cache", "cache_result", "hitpass", val); >-+ } >-+ >-+ if (conf->collect_connections) >-+ { >-+ if (strcmp(name, "client_conn") == 0) >-+ return varnish_submit_derive (conf->instance, "connections", "connections", "accepted", val); >-+ else if (strcmp(name, "client_drop") == 0) >-+ return varnish_submit_derive (conf->instance, "connections", "connections", "dropped" , val); >-+ else if (strcmp(name, "client_req") == 0) >-+ return varnish_submit_derive (conf->instance, "connections", "connections", "received", val); >-+ } >-+ >-+#ifdef HAVE_VARNISH_V3 >-+ if (conf->collect_dirdns) >-+ { >-+ if (strcmp(name, "dir_dns_lookups") == 0) >-+ return varnish_submit_derive (conf->instance, "dirdns", "cache_operation", "lookups", val); >-+ else if (strcmp(name, "dir_dns_failed") == 0) >-+ return varnish_submit_derive (conf->instance, "dirdns", "cache_result", "failed", val); >-+ else if (strcmp(name, "dir_dns_hit") == 0) >-+ return varnish_submit_derive (conf->instance, "dirdns", "cache_result", "hits", val); >-+ else if (strcmp(name, "dir_dns_cache_full") == 0) >-+ return varnish_submit_derive (conf->instance, "dirdns", "cache_result", "cache_full", val); >-+ } >-+#endif >-+ >-+ if (conf->collect_esi) >-+ { >-+ if (strcmp(name, "esi_errors") == 0) >-+ return varnish_submit_derive (conf->instance, "esi", "total_operations", "error", val); >-+ else if (strcmp(name, "esi_parse") == 0) >-+ return varnish_submit_derive (conf->instance, "esi", "total_operations", "parsed", val); >-+ else if (strcmp(name, "esi_warnings") == 0) >-+ return varnish_submit_derive (conf->instance, "esi", "total_operations", "warning", val); >-+ } >-+ >-+ if (conf->collect_backend) >-+ { >-+ if (strcmp(name, "backend_conn") == 0) >-+ return varnish_submit_derive (conf->instance, "backend", "connections", "success", val); >-+ else if (strcmp(name, "backend_unhealthy") == 0) >-+ return varnish_submit_derive (conf->instance, "backend", "connections", "not-attempted", val); >-+ else if (strcmp(name, "backend_busy") == 0) >-+ return varnish_submit_derive (conf->instance, "backend", "connections", "too-many", val); >-+ else if (strcmp(name, "backend_fail") == 0) >-+ return varnish_submit_derive (conf->instance, "backend", "connections", "failures", val); >-+ else if (strcmp(name, "backend_reuse") == 0) >-+ return varnish_submit_derive (conf->instance, "backend", "connections", "reuses", val); >-+ else if (strcmp(name, "backend_toolate") == 0) >-+ return varnish_submit_derive (conf->instance, "backend", "connections", "was-closed", val); >-+ else if (strcmp(name, "backend_recycle") == 0) >-+ return varnish_submit_derive (conf->instance, "backend", "connections", "recycled", val); >-+ else if (strcmp(name, "backend_unused") == 0) >-+ return varnish_submit_derive (conf->instance, "backend", "connections", "unused", val); >-+ else if (strcmp(name, "backend_retry") == 0) >-+ return varnish_submit_derive (conf->instance, "backend", "connections", "retries", val); >-+ else if (strcmp(name, "backend_req") == 0) >-+ return varnish_submit_derive (conf->instance, "backend", "http_requests", "requests", val); >-+ else if (strcmp(name, "n_backend") == 0) >-+ return varnish_submit_gauge (conf->instance, "backend", "backends", "n_backends", val); >-+ } >-+ >-+ if (conf->collect_fetch) >-+ { >-+ if (strcmp(name, "fetch_head") == 0) >-+ return varnish_submit_derive (conf->instance, "fetch", "http_requests", "head", val); >-+ else if (strcmp(name, "fetch_length") == 0) >-+ return varnish_submit_derive (conf->instance, "fetch", "http_requests", "length", val); >-+ else if (strcmp(name, "fetch_chunked") == 0) >-+ return varnish_submit_derive (conf->instance, "fetch", "http_requests", "chunked", val); >-+ else if (strcmp(name, "fetch_eof") == 0) >-+ return varnish_submit_derive (conf->instance, "fetch", "http_requests", "eof", val); >-+ else if (strcmp(name, "fetch_bad") == 0) >-+ return varnish_submit_derive (conf->instance, "fetch", "http_requests", "bad_headers", val); >-+ else if (strcmp(name, "fetch_close") == 0) >-+ return varnish_submit_derive (conf->instance, "fetch", "http_requests", "close", val); >-+ else if (strcmp(name, "fetch_oldhttp") == 0) >-+ return varnish_submit_derive (conf->instance, "fetch", "http_requests", "oldhttp", val); >-+ else if (strcmp(name, "fetch_zero") == 0) >-+ return varnish_submit_derive (conf->instance, "fetch", "http_requests", "zero", val); >-+ else if (strcmp(name, "fetch_failed") == 0) >-+ return varnish_submit_derive (conf->instance, "fetch", "http_requests", "failed", val); >-+ else if (strcmp(name, "fetch_1xx") == 0) >-+ return varnish_submit_derive (conf->instance, "fetch", "http_requests", "no_body_1xx", val); >-+ else if (strcmp(name, "fetch_204") == 0) >-+ return varnish_submit_derive (conf->instance, "fetch", "http_requests", "no_body_204", val); >-+ else if (strcmp(name, "fetch_304") == 0) >-+ return varnish_submit_derive (conf->instance, "fetch", "http_requests", "no_body_304", val); >-+ } >-+ >-+ if (conf->collect_hcb) >-+ { >-+ if (strcmp(name, "hcb_nolock") == 0) >-+ return varnish_submit_derive (conf->instance, "hcb", "cache_operation", "lookup_nolock", val); >-+ else if (strcmp(name, "hcb_lock") == 0) >-+ return varnish_submit_derive (conf->instance, "hcb", "cache_operation", "lookup_lock", val); >-+ else if (strcmp(name, "hcb_insert") == 0) >-+ return varnish_submit_derive (conf->instance, "hcb", "cache_operation", "insert", val); >-+ } >-+ >-+ if (conf->collect_objects) >-+ { >-+ if (strcmp(name, "n_expired") == 0) >-+ return varnish_submit_derive (conf->instance, "objects", "total_objects", "expired", val); >-+ else if (strcmp(name, "n_lru_nuked") == 0) >-+ return varnish_submit_derive (conf->instance, "objects", "total_objects", "lru_nuked", val); >-+ else if (strcmp(name, "n_lru_saved") == 0) >-+ return varnish_submit_derive (conf->instance, "objects", "total_objects", "lru_saved", val); >-+ else if (strcmp(name, "n_lru_moved") == 0) >-+ return varnish_submit_derive (conf->instance, "objects", "total_objects", "lru_moved", val); >-+ else if (strcmp(name, "n_deathrow") == 0) >-+ return varnish_submit_derive (conf->instance, "objects", "total_objects", "deathrow", val); >-+ else if (strcmp(name, "losthdr") == 0) >-+ return varnish_submit_derive (conf->instance, "objects", "total_objects", "header_overflow", val); >-+ else if (strcmp(name, "n_obj_purged") == 0) >-+ return varnish_submit_derive (conf->instance, "objects", "total_objects", "purged", val); >-+ else if (strcmp(name, "n_objsendfile") == 0) >-+ return varnish_submit_derive (conf->instance, "objects", "total_objects", "sent_sendfile", val); >-+ else if (strcmp(name, "n_objwrite") == 0) >-+ return varnish_submit_derive (conf->instance, "objects", "total_objects", "sent_write", val); >-+ else if (strcmp(name, "n_objoverflow") == 0) >-+ return varnish_submit_derive (conf->instance, "objects", "total_objects", "workspace_overflow", val); >-+ } >-+ >-+#if HAVE_VARNISH_V3 >-+ if (conf->collect_ban) >-+ { >-+ if (strcmp(name, "n_ban") == 0) >-+ return varnish_submit_derive (conf->instance, "ban", "total_operations", "total", val); >-+ else if (strcmp(name, "n_ban_add") == 0) >-+ return varnish_submit_derive (conf->instance, "ban", "total_operations", "added", val); >-+ else if (strcmp(name, "n_ban_retire") == 0) >-+ return varnish_submit_derive (conf->instance, "ban", "total_operations", "deleted", val); >-+ else if (strcmp(name, "n_ban_obj_test") == 0) >-+ return varnish_submit_derive (conf->instance, "ban", "total_operations", "objects_tested", val); >-+ else if (strcmp(name, "n_ban_re_test") == 0) >-+ return varnish_submit_derive (conf->instance, "ban", "total_operations", "regexps_tested", val); >-+ else if (strcmp(name, "n_ban_dups") == 0) >-+ return varnish_submit_derive (conf->instance, "ban", "total_operations", "duplicate", val); >-+ } >-+#endif >-+#if HAVE_VARNISH_V4 >-+ if (conf->collect_ban) >-+ { >-+ if (strcmp(name, "bans") == 0) >-+ return varnish_submit_derive (conf->instance, "ban", "total_operations", "total", val); >-+ else if (strcmp(name, "bans_added") == 0) >-+ return varnish_submit_derive (conf->instance, "ban", "total_operations", "added", val); >-+ else if (strcmp(name, "bans_obj") == 0) >-+ return varnish_submit_derive (conf->instance, "ban", "total_operations", "obj", val); >-+ else if (strcmp(name, "bans_req") == 0) >-+ return varnish_submit_derive (conf->instance, "ban", "total_operations", "req", val); >-+ else if (strcmp(name, "bans_completed") == 0) >-+ return varnish_submit_derive (conf->instance, "ban", "total_operations", "completed", val); >-+ else if (strcmp(name, "bans_deleted") == 0) >-+ return varnish_submit_derive (conf->instance, "ban", "total_operations", "deleted", val); >-+ else if (strcmp(name, "bans_tested") == 0) >-+ return varnish_submit_derive (conf->instance, "ban", "total_operations", "tested", val); >-+ else if (strcmp(name, "bans_dups") == 0) >-+ return varnish_submit_derive (conf->instance, "ban", "total_operations", "duplicate", val); >-+ } >-+#endif >-+ >-+ if (conf->collect_session) >-+ { >-+ if (strcmp(name, "sess_closed") == 0) >-+ return varnish_submit_derive (conf->instance, "session", "total_operations", "closed", val); >-+ else if (strcmp(name, "sess_pipeline") == 0) >-+ return varnish_submit_derive (conf->instance, "session", "total_operations", "pipeline", val); >-+ else if (strcmp(name, "sess_readahead") == 0) >-+ return varnish_submit_derive (conf->instance, "session", "total_operations", "readahead", val); >-+ else if (strcmp(name, "sess_conn") == 0) >-+ return varnish_submit_derive (conf->instance, "session", "total_operations", "accepted", val); >-+ else if (strcmp(name, "sess_drop") == 0) >-+ return varnish_submit_derive (conf->instance, "session", "total_operations", "dropped", val); >-+ else if (strcmp(name, "sess_fail") == 0) >-+ return varnish_submit_derive (conf->instance, "session", "total_operations", "failed", val); >-+ else if (strcmp(name, "sess_pipe_overflow") == 0) >-+ return varnish_submit_derive (conf->instance, "session", "total_operations", "overflow", val); >-+ else if (strcmp(name, "sess_queued") == 0) >-+ return varnish_submit_derive (conf->instance, "session", "total_operations", "queued", val); >-+ else if (strcmp(name, "sess_linger") == 0) >-+ return varnish_submit_derive (conf->instance, "session", "total_operations", "linger", val); >-+ else if (strcmp(name, "sess_herd") == 0) >-+ return varnish_submit_derive (conf->instance, "session", "total_operations", "herd", val); >-+ } >-+ >-+ if (conf->collect_shm) >-+ { >-+ if (strcmp(name, "shm_records") == 0) >-+ return varnish_submit_derive (conf->instance, "shm", "total_operations", "records", val); >-+ else if (strcmp(name, "shm_writes") == 0) >-+ return varnish_submit_derive (conf->instance, "shm", "total_operations", "writes", val); >-+ else if (strcmp(name, "shm_flushes") == 0) >-+ return varnish_submit_derive (conf->instance, "shm", "total_operations", "flushes", val); >-+ else if (strcmp(name, "shm_cont") == 0) >-+ return varnish_submit_derive (conf->instance, "shm", "total_operations", "contention", val); >-+ else if (strcmp(name, "shm_cycles") == 0) >-+ return varnish_submit_derive (conf->instance, "shm", "total_operations", "cycles", val); >-+ } >-+ >-+ if (conf->collect_sms) >-+ { >-+ if (strcmp(name, "sms_nreq") == 0) >-+ return varnish_submit_derive (conf->instance, "sms", "total_requests", "allocator", val); >-+ else if (strcmp(name, "sms_nobj") == 0) >-+ return varnish_submit_gauge (conf->instance, "sms", "requests", "outstanding", val); >-+ else if (strcmp(name, "sms_nbytes") == 0) >-+ return varnish_submit_gauge (conf->instance, "sms", "bytes", "outstanding", val); >-+ else if (strcmp(name, "sms_balloc") == 0) >-+ return varnish_submit_derive (conf->instance, "sms", "total_bytes", "allocated", val); >-+ else if (strcmp(name, "sms_bfree") == 0) >-+ return varnish_submit_derive (conf->instance, "sms", "total_bytes", "free", val); >-+ } >-+ >-+ if (conf->collect_struct) >-+ { >-+ if (strcmp(name, "n_sess_mem") == 0) >-+ return varnish_submit_gauge (conf->instance, "struct", "current_sessions", "sess_mem", val); >-+ else if (strcmp(name, "n_sess") == 0) >-+ return varnish_submit_gauge (conf->instance, "struct", "current_sessions", "sess", val); >-+ else if (strcmp(name, "n_object") == 0) >-+ return varnish_submit_gauge (conf->instance, "struct", "objects", "object", val); >-+ else if (strcmp(name, "n_vampireobject") == 0) >-+ return varnish_submit_gauge (conf->instance, "struct", "objects", "vampireobject", val); >-+ else if (strcmp(name, "n_objectcore") == 0) >-+ return varnish_submit_gauge (conf->instance, "struct", "objects", "objectcore", val); >-+ else if (strcmp(name, "n_waitinglist") == 0) >-+ return varnish_submit_gauge (conf->instance, "struct", "objects", "waitinglist", val); >-+ else if (strcmp(name, "n_objecthead") == 0) >-+ return varnish_submit_gauge (conf->instance, "struct", "objects", "objecthead", val); >-+ else if (strcmp(name, "n_smf") == 0) >-+ return varnish_submit_gauge (conf->instance, "struct", "objects", "smf", val); >-+ else if (strcmp(name, "n_smf_frag") == 0) >-+ return varnish_submit_gauge (conf->instance, "struct", "objects", "smf_frag", val); >-+ else if (strcmp(name, "n_smf_large") == 0) >-+ return varnish_submit_gauge (conf->instance, "struct", "objects", "smf_large", val); >-+ else if (strcmp(name, "n_vbe_conn") == 0) >-+ return varnish_submit_gauge (conf->instance, "struct", "objects", "vbe_conn", val); >-+ } >-+ >-+ if (conf->collect_totals) >-+ { >-+ if (strcmp(name, "s_sess") == 0) >-+ return varnish_submit_derive (conf->instance, "totals", "total_sessions", "sessions", val); >-+ else if (strcmp(name, "s_req") == 0) >-+ return varnish_submit_derive (conf->instance, "totals", "total_requests", "requests", val); >-+ else if (strcmp(name, "s_pipe") == 0) >-+ return varnish_submit_derive (conf->instance, "totals", "total_operations", "pipe", val); >-+ else if (strcmp(name, "s_pass") == 0) >-+ return varnish_submit_derive (conf->instance, "totals", "total_operations", "pass", val); >-+ else if (strcmp(name, "s_fetch") == 0) >-+ return varnish_submit_derive (conf->instance, "totals", "total_operations", "fetches", val); >-+ else if (strcmp(name, "s_synth") == 0) >-+ return varnish_submit_derive (conf->instance, "totals", "total_bytes", "synth", val); >-+ else if (strcmp(name, "s_req_hdrbytes") == 0) >-+ return varnish_submit_derive (conf->instance, "totals", "total_bytes", "req_header", val); >-+ else if (strcmp(name, "s_req_bodybytes") == 0) >-+ return varnish_submit_derive (conf->instance, "totals", "total_bytes", "req_body", val); >-+ else if (strcmp(name, "s_resp_hdrbytes") == 0) >-+ return varnish_submit_derive (conf->instance, "totals", "total_bytes", "resp_header", val); >-+ else if (strcmp(name, "s_resp_bodybytes") == 0) >-+ return varnish_submit_derive (conf->instance, "totals", "total_bytes", "resp_body", val); >-+ else if (strcmp(name, "s_pipe_hdrbytes") == 0) >-+ return varnish_submit_derive (conf->instance, "totals", "total_bytes", "pipe_header", val); >-+ else if (strcmp(name, "s_pipe_in") == 0) >-+ return varnish_submit_derive (conf->instance, "totals", "total_bytes", "pipe_in", val); >-+ else if (strcmp(name, "s_pipe_out") == 0) >-+ return varnish_submit_derive (conf->instance, "totals", "total_bytes", "pipe_out", val); >-+ else if (strcmp(name, "n_purges") == 0) >-+ return varnish_submit_derive (conf->instance, "totals", "total_operations", "purges", val); >-+ else if (strcmp(name, "s_hdrbytes") == 0) >-+ return varnish_submit_derive (conf->instance, "totals", "total_bytes", "header-bytes", val); >-+ else if (strcmp(name, "s_bodybytes") == 0) >-+ return varnish_submit_derive (conf->instance, "totals", "total_bytes", "body-bytes", val); >-+ else if (strcmp(name, "n_gzip") == 0) >-+ return varnish_submit_derive (conf->instance, "totals", "total_operations", "gzip", val); >-+ else if (strcmp(name, "n_gunzip") == 0) >-+ return varnish_submit_derive (conf->instance, "totals", "total_operations", "gunzip", val); >-+ } >-+ >-+ if (conf->collect_uptime) >-+ { >-+ if (strcmp(name, "uptime") == 0) >-+ return varnish_submit_gauge (conf->instance, "uptime", "uptime", "client_uptime", val); >-+ } >-+ >-+ if (conf->collect_vcl) >-+ { >-+ if (strcmp(name, "n_vcl") == 0) >-+ return varnish_submit_gauge (conf->instance, "vcl", "vcl", "total_vcl", val); >-+ else if (strcmp(name, "n_vcl_avail") == 0) >-+ return varnish_submit_gauge (conf->instance, "vcl", "vcl", "avail_vcl", val); >-+ else if (strcmp(name, "n_vcl_discard") == 0) >-+ return varnish_submit_gauge (conf->instance, "vcl", "vcl", "discarded_vcl", val); >-+ else if (strcmp(name, "vmods") == 0) >-+ return varnish_submit_gauge (conf->instance, "vcl", "objects", "vmod", val); >-+ } >-+ >-+ if (conf->collect_workers) >-+ { >-+ if (strcmp(name, "threads") == 0) >-+ return varnish_submit_gauge (conf->instance, "workers", "threads", "worker", val); >-+ else if (strcmp(name, "threads_created") == 0) >-+ return varnish_submit_derive (conf->instance, "workers", "total_threads", "created", val); >-+ else if (strcmp(name, "threads_failed") == 0) >-+ return varnish_submit_derive (conf->instance, "workers", "total_threads", "failed", val); >-+ else if (strcmp(name, "threads_limited") == 0) >-+ return varnish_submit_derive (conf->instance, "workers", "total_threads", "limited", val); >-+ else if (strcmp(name, "threads_destroyed") == 0) >-+ return varnish_submit_derive (conf->instance, "workers", "total_threads", "dropped", val); >-+ else if (strcmp(name, "thread_queue_len") == 0) >-+ return varnish_submit_derive (conf->instance, "workers", "queue_length", "threads", val); >-+ else if (strcmp(name, "n_wrk") == 0) >-+ return varnish_submit_gauge (conf->instance, "workers", "threads", "worker", val); >-+ else if (strcmp(name, "n_wrk_create") == 0) >-+ return varnish_submit_derive (conf->instance, "workers", "total_threads", "created", val); >-+ else if (strcmp(name, "n_wrk_failed") == 0) >-+ return varnish_submit_derive (conf->instance, "workers", "total_threads", "failed", val); >-+ else if (strcmp(name, "n_wrk_max") == 0) >-+ return varnish_submit_derive (conf->instance, "workers", "total_threads", "limited", val); >-+ else if (strcmp(name, "n_wrk_drop") == 0) >-+ return varnish_submit_derive (conf->instance, "workers", "total_threads", "dropped", val); >-+ else if (strcmp(name, "n_wrk_queue") == 0) >-+ return varnish_submit_derive (conf->instance, "workers", "total_requests", "queued", val); >-+ else if (strcmp(name, "n_wrk_overflow") == 0) >-+ return varnish_submit_derive (conf->instance, "workers", "total_requests", "overflowed", val); >-+ else if (strcmp(name, "n_wrk_queued") == 0) >-+ return varnish_submit_derive (conf->instance, "workers", "total_requests", "queued", val); >-+ else if (strcmp(name, "n_wrk_lqueue") == 0) >-+ return varnish_submit_derive (conf->instance, "workers", "total_requests", "queue_length", val); >-+ } >-+ >-+#if HAVE_VARNISH_V4 >-+ if (conf->collect_vsm) >-+ { >-+ if (strcmp(name, "vsm_free") == 0) >-+ return varnish_submit_gauge (conf->instance, "vsm", "bytes", "free", val); >-+ else if (strcmp(name, "vsm_used") == 0) >-+ return varnish_submit_gauge (conf->instance, "vsm", "bytes", "used", val); >-+ else if (strcmp(name, "vsm_cooling") == 0) >-+ return varnish_submit_gauge (conf->instance, "vsm", "bytes", "cooling", val); >-+ else if (strcmp(name, "vsm_overflow") == 0) >-+ return varnish_submit_gauge (conf->instance, "vsm", "bytes", "overflow", val); >-+ else if (strcmp(name, "vsm_overflowed") == 0) >-+ return varnish_submit_derive (conf->instance, "vsm", "total_bytes", "overflowed", val); >-+ } >-+#endif >-+ >-+ return (0); >-+ >-+} /* }}} static int varnish_monitor */ >-+#else /* if HAVE_VARNISH_V2 */ >- static void varnish_monitor (const user_config_t *conf, /* {{{ */ >- const c_varnish_stats_t *stats) >- { >-@@ -150,41 +541,20 @@ static void varnish_monitor (const user_ >- >- if (conf->collect_connections) >- { >--#ifndef HAVE_VARNISH_V4 >- /* Client connections accepted */ >- varnish_submit_derive (conf->instance, "connections", "connections", "accepted", stats->client_conn); >- /* Connection dropped, no sess */ >- varnish_submit_derive (conf->instance, "connections", "connections", "dropped" , stats->client_drop); >--#endif >- /* Client requests received */ >- varnish_submit_derive (conf->instance, "connections", "connections", "received", stats->client_req); >- } >- >--#ifdef HAVE_VARNISH_V3 >-- if (conf->collect_dirdns) >-- { >-- /* DNS director lookups */ >-- varnish_submit_derive (conf->instance, "dirdns", "cache_operation", "lookups", stats->dir_dns_lookups); >-- /* DNS director failed lookups */ >-- varnish_submit_derive (conf->instance, "dirdns", "cache_result", "failed", stats->dir_dns_failed); >-- /* DNS director cached lookups hit */ >-- varnish_submit_derive (conf->instance, "dirdns", "cache_result", "hits", stats->dir_dns_hit); >-- /* DNS director full dnscache */ >-- varnish_submit_derive (conf->instance, "dirdns", "cache_result", "cache_full", stats->dir_dns_cache_full); >-- } >--#endif >-- >- if (conf->collect_esi) >- { >- /* ESI parse errors (unlock) */ >- varnish_submit_derive (conf->instance, "esi", "total_operations", "error", stats->esi_errors); >--#if HAVE_VARNISH_V2 >- /* Objects ESI parsed (unlock) */ >- varnish_submit_derive (conf->instance, "esi", "total_operations", "parsed", stats->esi_parse); >--#else >-- /* ESI parse warnings (unlock) */ >-- varnish_submit_derive (conf->instance, "esi", "total_operations", "warning", stats->esi_warnings); >--#endif >- } >- >- if (conf->collect_backend) >-@@ -203,13 +573,8 @@ static void varnish_monitor (const user_ >- varnish_submit_derive (conf->instance, "backend", "connections", "was-closed" , stats->backend_toolate); >- /* Backend conn. recycles */ >- varnish_submit_derive (conf->instance, "backend", "connections", "recycled" , stats->backend_recycle); >--#if HAVE_VARNISH_V2 >- /* Backend conn. unused */ >- varnish_submit_derive (conf->instance, "backend", "connections", "unused" , stats->backend_unused); >--#else >-- /* Backend conn. retry */ >-- varnish_submit_derive (conf->instance, "backend", "connections", "retries" , stats->backend_retry); >--#endif >- /* Backend requests mades */ >- varnish_submit_derive (conf->instance, "backend", "http_requests", "requests" , stats->backend_req); >- /* N backends */ >-@@ -236,14 +601,6 @@ static void varnish_monitor (const user_ >- varnish_submit_derive (conf->instance, "fetch", "http_requests", "zero" , stats->fetch_zero); >- /* Fetch failed */ >- varnish_submit_derive (conf->instance, "fetch", "http_requests", "failed" , stats->fetch_failed); >--#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 >-- /* Fetch no body (1xx) */ >-- varnish_submit_derive (conf->instance, "fetch", "http_requests", "no_body_1xx", stats->fetch_1xx); >-- /* Fetch no body (204) */ >-- varnish_submit_derive (conf->instance, "fetch", "http_requests", "no_body_204", stats->fetch_204); >-- /* Fetch no body (304) */ >-- varnish_submit_derive (conf->instance, "fetch", "http_requests", "no_body_304", stats->fetch_304); >--#endif >- } >- >- if (conf->collect_hcb) >-@@ -262,32 +619,22 @@ static void varnish_monitor (const user_ >- varnish_submit_derive (conf->instance, "objects", "total_objects", "expired", stats->n_expired); >- /* N LRU nuked objects */ >- varnish_submit_derive (conf->instance, "objects", "total_objects", "lru_nuked", stats->n_lru_nuked); >--#if HAVE_VARNISH_V2 >- /* N LRU saved objects */ >- varnish_submit_derive (conf->instance, "objects", "total_objects", "lru_saved", stats->n_lru_saved); >--#endif >- /* N LRU moved objects */ >- varnish_submit_derive (conf->instance, "objects", "total_objects", "lru_moved", stats->n_lru_moved); >--#if HAVE_VARNISH_V2 >- /* N objects on deathrow */ >- varnish_submit_derive (conf->instance, "objects", "total_objects", "deathrow", stats->n_deathrow); >--#endif >- /* HTTP header overflows */ >- varnish_submit_derive (conf->instance, "objects", "total_objects", "header_overflow", stats->losthdr); >--#if HAVE_VARNISH_V4 >-- /* N purged objects */ >-- varnish_submit_derive (conf->instance, "objects", "total_objects", "purged", stats->n_obj_purged); >--#else >- /* Objects sent with sendfile */ >- varnish_submit_derive (conf->instance, "objects", "total_objects", "sent_sendfile", stats->n_objsendfile); >- /* Objects sent with write */ >- varnish_submit_derive (conf->instance, "objects", "total_objects", "sent_write", stats->n_objwrite); >- /* Objects overflowing workspace */ >- varnish_submit_derive (conf->instance, "objects", "total_objects", "workspace_overflow", stats->n_objoverflow); >--#endif >- } >- >--#if HAVE_VARNISH_V2 >- if (conf->collect_purge) >- { >- /* N total active purges */ >-@@ -303,45 +650,6 @@ static void varnish_monitor (const user_ >- /* N duplicate purges removed */ >- varnish_submit_derive (conf->instance, "purge", "total_operations", "duplicate", stats->n_purge_dups); >- } >--#endif >--#if HAVE_VARNISH_V3 >-- if (conf->collect_ban) >-- { >-- /* N total active bans */ >-- varnish_submit_derive (conf->instance, "ban", "total_operations", "total", stats->n_ban); >-- /* N new bans added */ >-- varnish_submit_derive (conf->instance, "ban", "total_operations", "added", stats->n_ban_add); >-- /* N old bans deleted */ >-- varnish_submit_derive (conf->instance, "ban", "total_operations", "deleted", stats->n_ban_retire); >-- /* N objects tested */ >-- varnish_submit_derive (conf->instance, "ban", "total_operations", "objects_tested", stats->n_ban_obj_test); >-- /* N regexps tested against */ >-- varnish_submit_derive (conf->instance, "ban", "total_operations", "regexps_tested", stats->n_ban_re_test); >-- /* N duplicate bans removed */ >-- varnish_submit_derive (conf->instance, "ban", "total_operations", "duplicate", stats->n_ban_dups); >-- } >--#endif >--#if HAVE_VARNISH_V4 >-- if (conf->collect_ban) >-- { >-- /* N total active bans */ >-- varnish_submit_derive (conf->instance, "ban", "total_operations", "total", stats->bans); >-- /* N new bans added */ >-- varnish_submit_derive (conf->instance, "ban", "total_operations", "added", stats->bans_added); >-- /* N bans using obj */ >-- varnish_submit_derive (conf->instance, "ban", "total_operations", "obj", stats->bans_obj); >-- /* N bans using req */ >-- varnish_submit_derive (conf->instance, "ban", "total_operations", "req", stats->bans_req); >-- /* N new bans completed */ >-- varnish_submit_derive (conf->instance, "ban", "total_operations", "completed", stats->bans_completed); >-- /* N old bans deleted */ >-- varnish_submit_derive (conf->instance, "ban", "total_operations", "deleted", stats->bans_deleted); >-- /* N objects tested */ >-- varnish_submit_derive (conf->instance, "ban", "total_operations", "tested", stats->bans_tested); >-- /* N duplicate bans removed */ >-- varnish_submit_derive (conf->instance, "ban", "total_operations", "duplicate", stats->bans_dups); >-- } >--#endif >- >- if (conf->collect_session) >- { >-@@ -351,21 +659,8 @@ static void varnish_monitor (const user_ >- varnish_submit_derive (conf->instance, "session", "total_operations", "pipeline", stats->sess_pipeline); >- /* Session Read Ahead */ >- varnish_submit_derive (conf->instance, "session", "total_operations", "readahead", stats->sess_readahead); >--#if HAVE_VARNISH_V4 >-- /* Sessions accepted */ >-- varnish_submit_derive (conf->instance, "session", "total_operations", "accepted", stats->sess_conn); >-- /* Sessions dropped for thread */ >-- varnish_submit_derive (conf->instance, "session", "total_operations", "dropped", stats->sess_drop); >-- /* Sessions accept failure */ >-- varnish_submit_derive (conf->instance, "session", "total_operations", "failed", stats->sess_fail); >-- /* Sessions pipe overflow */ >-- varnish_submit_derive (conf->instance, "session", "total_operations", "overflow", stats->sess_pipe_overflow); >-- /* Sessions queued for thread */ >-- varnish_submit_derive (conf->instance, "session", "total_operations", "queued", stats->sess_queued); >--#else >- /* Session Linger */ >- varnish_submit_derive (conf->instance, "session", "total_operations", "linger", stats->sess_linger); >--#endif >- /* Session herd */ >- varnish_submit_derive (conf->instance, "session", "total_operations", "herd", stats->sess_herd); >- } >-@@ -384,7 +679,6 @@ static void varnish_monitor (const user_ >- varnish_submit_derive (conf->instance, "shm", "total_operations", "cycles" , stats->shm_cycles); >- } >- >--#if HAVE_VARNISH_V2 >- if (conf->collect_sm) >- { >- /* allocator requests */ >-@@ -410,7 +704,6 @@ static void varnish_monitor (const user_ >- /* SMA bytes free */ >- varnish_submit_derive (conf->instance, "sma", "total_bytes", "free" , stats->sma_bfree); >- } >--#endif >- >- if (conf->collect_sms) >- { >-@@ -428,25 +721,14 @@ static void varnish_monitor (const user_ >- >- if (conf->collect_struct) >- { >--#if !HAVE_VARNISH_V4 >- /* N struct sess_mem */ >- varnish_submit_gauge (conf->instance, "struct", "current_sessions", "sess_mem", stats->n_sess_mem); >- /* N struct sess */ >- varnish_submit_gauge (conf->instance, "struct", "current_sessions", "sess", stats->n_sess); >--#endif >- /* N struct object */ >- varnish_submit_gauge (conf->instance, "struct", "objects", "object", stats->n_object); >--#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 >-- /* N unresurrected objects */ >-- varnish_submit_gauge (conf->instance, "struct", "objects", "vampireobject", stats->n_vampireobject); >-- /* N struct objectcore */ >-- varnish_submit_gauge (conf->instance, "struct", "objects", "objectcore", stats->n_objectcore); >-- /* N struct waitinglist */ >-- varnish_submit_gauge (conf->instance, "struct", "objects", "waitinglist", stats->n_waitinglist); >--#endif >- /* N struct objecthead */ >- varnish_submit_gauge (conf->instance, "struct", "objects", "objecthead", stats->n_objecthead); >--#ifdef HAVE_VARNISH_V2 >- /* N struct smf */ >- varnish_submit_gauge (conf->instance, "struct", "objects", "smf", stats->n_smf); >- /* N small free smf */ >-@@ -455,7 +737,6 @@ static void varnish_monitor (const user_ >- varnish_submit_gauge (conf->instance, "struct", "objects", "smf_large", stats->n_smf_large); >- /* N struct vbe_conn */ >- varnish_submit_gauge (conf->instance, "struct", "objects", "vbe_conn", stats->n_vbe_conn); >--#endif >- } >- >- if (conf->collect_totals) >-@@ -470,47 +751,12 @@ static void varnish_monitor (const user_ >- varnish_submit_derive (conf->instance, "totals", "total_operations", "pass", stats->s_pass); >- /* Total fetch */ >- varnish_submit_derive (conf->instance, "totals", "total_operations", "fetches", stats->s_fetch); >--#if HAVE_VARNISH_V4 >-- /* Total synth */ >-- varnish_submit_derive (conf->instance, "totals", "total_bytes", "synth", stats->s_synth); >-- /* Request header bytes */ >-- varnish_submit_derive (conf->instance, "totals", "total_bytes", "req_header", stats->s_req_hdrbytes); >-- /* Request body byte */ >-- varnish_submit_derive (conf->instance, "totals", "total_bytes", "req_body", stats->s_req_bodybytes); >-- /* Response header bytes */ >-- varnish_submit_derive (conf->instance, "totals", "total_bytes", "resp_header", stats->s_resp_hdrbytes); >-- /* Response body byte */ >-- varnish_submit_derive (conf->instance, "totals", "total_bytes", "resp_body", stats->s_resp_bodybytes); >-- /* Pipe request header bytes */ >-- varnish_submit_derive (conf->instance, "totals", "total_bytes", "pipe_header", stats->s_pipe_hdrbytes); >-- /* Piped bytes from client */ >-- varnish_submit_derive (conf->instance, "totals", "total_bytes", "pipe_in", stats->s_pipe_in); >-- /* Piped bytes to client */ >-- varnish_submit_derive (conf->instance, "totals", "total_bytes", "pipe_out", stats->s_pipe_out); >-- /* Number of purge operations */ >-- varnish_submit_derive (conf->instance, "totals", "total_operations", "purges", stats->n_purges); >--#else >- /* Total header bytes */ >- varnish_submit_derive (conf->instance, "totals", "total_bytes", "header-bytes", stats->s_hdrbytes); >- /* Total body byte */ >- varnish_submit_derive (conf->instance, "totals", "total_bytes", "body-bytes", stats->s_bodybytes); >--#endif >--#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 >-- /* Gzip operations */ >-- varnish_submit_derive (conf->instance, "totals", "total_operations", "gzip", stats->n_gzip); >-- /* Gunzip operations */ >-- varnish_submit_derive (conf->instance, "totals", "total_operations", "gunzip", stats->n_gunzip); >--#endif >- } >- >--#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 >-- if (conf->collect_uptime) >-- { >-- /* Client uptime */ >-- varnish_submit_gauge (conf->instance, "uptime", "uptime", "client_uptime", stats->uptime); >-- } >--#endif >-- >- if (conf->collect_vcl) >- { >- /* N vcl total */ >-@@ -519,28 +765,10 @@ static void varnish_monitor (const user_ >- varnish_submit_gauge (conf->instance, "vcl", "vcl", "avail_vcl", stats->n_vcl_avail); >- /* N vcl discarded */ >- varnish_submit_gauge (conf->instance, "vcl", "vcl", "discarded_vcl", stats->n_vcl_discard); >--#if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 >-- /* Loaded VMODs */ >-- varnish_submit_gauge (conf->instance, "vcl", "objects", "vmod", stats->vmods); >--#endif >- } >- >- if (conf->collect_workers) >- { >--#ifdef HAVE_VARNISH_V4 >-- /* total number of threads */ >-- varnish_submit_gauge (conf->instance, "workers", "threads", "worker", stats->threads); >-- /* threads created */ >-- varnish_submit_derive (conf->instance, "workers", "total_threads", "created", stats->threads_created); >-- /* thread creation failed */ >-- varnish_submit_derive (conf->instance, "workers", "total_threads", "failed", stats->threads_failed); >-- /* threads hit max */ >-- varnish_submit_derive (conf->instance, "workers", "total_threads", "limited", stats->threads_limited); >-- /* threads destroyed */ >-- varnish_submit_derive (conf->instance, "workers", "total_threads", "dropped", stats->threads_destroyed); >-- /* length of session queue */ >-- varnish_submit_derive (conf->instance, "workers", "queue_length", "threads", stats->thread_queue_len); >--#else >- /* worker threads */ >- varnish_submit_gauge (conf->instance, "workers", "threads", "worker", stats->n_wrk); >- /* worker threads created */ >-@@ -551,37 +779,14 @@ static void varnish_monitor (const user_ >- varnish_submit_derive (conf->instance, "workers", "total_threads", "limited", stats->n_wrk_max); >- /* dropped work requests */ >- varnish_submit_derive (conf->instance, "workers", "total_threads", "dropped", stats->n_wrk_drop); >--#ifdef HAVE_VARNISH_V2 >- /* queued work requests */ >- varnish_submit_derive (conf->instance, "workers", "total_requests", "queued", stats->n_wrk_queue); >- /* overflowed work requests */ >- varnish_submit_derive (conf->instance, "workers", "total_requests", "overflowed", stats->n_wrk_overflow); >--#else /* HAVE_VARNISH_V3 */ >-- /* queued work requests */ >-- varnish_submit_derive (conf->instance, "workers", "total_requests", "queued", stats->n_wrk_queued); >-- /* work request queue length */ >-- varnish_submit_derive (conf->instance, "workers", "total_requests", "queue_length", stats->n_wrk_lqueue); >--#endif >--#endif >-- } >-- >--#if HAVE_VARNISH_V4 >-- if (conf->collect_vsm) >-- { >-- /* Free VSM space */ >-- varnish_submit_gauge (conf->instance, "vsm", "bytes", "free", stats->vsm_free); >-- /* Used VSM space */ >-- varnish_submit_gauge (conf->instance, "vsm", "bytes", "used", stats->vsm_used); >-- /* Cooling VSM space */ >-- varnish_submit_gauge (conf->instance, "vsm", "bytes", "cooling", stats->vsm_cooling); >-- /* Overflow VSM space */ >-- varnish_submit_gauge (conf->instance, "vsm", "bytes", "overflow", stats->vsm_overflow); >-- /* Total overflowed VSM space */ >-- varnish_submit_derive (conf->instance, "vsm", "total_bytes", "overflowed", stats->vsm_overflowed); >- } >--#endif >- >- } /* }}} void varnish_monitor */ >-+#endif >- >- #if HAVE_VARNISH_V3 || HAVE_VARNISH_V4 >- static int varnish_read (user_data_t *ud) /* {{{ */ >-@@ -632,8 +837,12 @@ static int varnish_read (user_data_t *ud >- stats = VSC_Main(vd, NULL); >- #endif >- >-- varnish_monitor (conf, stats); >-- VSM_Close (vd); >-+#if HAVE_VARNISH_V3 >-+ VSC_Iter (vd, varnish_monitor, conf); >-+#else /* if HAVE_VARNISH_V4 */ >-+ VSC_Iter (vd, NULL, varnish_monitor, conf); >-+#endif >-+ VSM_Delete (vd); >- >- return (0); >- } /* }}} */ >diff -ruN net-mgmt/collectd5/files/patch-src_disk.c net-mgmt/collectd5.new/files/patch-src_disk.c >--- net-mgmt/collectd5/files/patch-src_disk.c 2015-08-16 10:21:20.000000000 +0200 >+++ net-mgmt/collectd5.new/files/patch-src_disk.c 2016-01-27 03:36:55.000000000 +0100 >@@ -1,4 +1,4 @@ >---- src/disk.c.orig 2015-03-10 14:14:45 UTC >+--- src/disk.c.orig 2016-01-22 09:51:17 UTC > +++ src/disk.c > @@ -53,6 +53,10 @@ > #if HAVE_IOKIT_IOBSD_H >@@ -43,343 +43,3 @@ > #elif HAVE_LIBKSTAT > kstat_t *ksp_chain; > >-@@ -395,173 +417,223 @@ static int disk_read (void) >- io_registry_entry_t disk; >- io_registry_entry_t disk_child; >- io_iterator_t disk_list; >-- CFDictionaryRef props_dict; >-+ CFMutableDictionaryRef props_dict, child_dict; >- CFDictionaryRef stats_dict; >-- CFDictionaryRef child_dict; >- CFStringRef tmp_cf_string_ref; >- kern_return_t status; >- >-- signed long long read_ops; >-- signed long long read_byt; >-- signed long long read_tme; >-- signed long long write_ops; >-- signed long long write_byt; >-- signed long long write_tme; >-+ signed long long read_ops, read_byt, read_tme; >-+ signed long long write_ops, write_byt, write_tme; >- >-- int disk_major; >-- int disk_minor; >-+ int disk_major, disk_minor; >- char disk_name[DATA_MAX_NAME_LEN]; >-- char disk_name_bsd[DATA_MAX_NAME_LEN]; >-+ char child_disk_name_bsd[DATA_MAX_NAME_LEN], props_disk_name_bsd[DATA_MAX_NAME_LEN]; >- >- /* Get the list of all disk objects. */ >-- if (IOServiceGetMatchingServices (io_master_port, >-- IOServiceMatching (kIOBlockStorageDriverClass), >-- &disk_list) != kIOReturnSuccess) >-- { >-+ if (IOServiceGetMatchingServices (io_master_port, IOServiceMatching (kIOBlockStorageDriverClass), &disk_list) != kIOReturnSuccess) { >- ERROR ("disk plugin: IOServiceGetMatchingServices failed."); >- return (-1); >- } >- >-- while ((disk = IOIteratorNext (disk_list)) != 0) >-- { >-+ while ((disk = IOIteratorNext (disk_list)) != 0) { >- props_dict = NULL; >- stats_dict = NULL; >- child_dict = NULL; >- >-- /* `disk_child' must be released */ >-- if ((status = IORegistryEntryGetChildEntry (disk, kIOServicePlane, &disk_child)) >-- != kIOReturnSuccess) >-- { >-- /* This fails for example for DVD/CD drives.. */ >-+ /* get child of disk entry and corresponding property dictionary */ >-+ if ((status = IORegistryEntryGetChildEntry (disk, kIOServicePlane, &disk_child)) != kIOReturnSuccess) { >-+ /* This fails for example for DVD/CD drives, which we want to ignore anyway */ >- DEBUG ("IORegistryEntryGetChildEntry (disk) failed: 0x%08x", status); >- IOObjectRelease (disk); >- continue; >- } >-- >-- /* We create `props_dict' => we need to release it later */ >-- if (IORegistryEntryCreateCFProperties (disk, >-- (CFMutableDictionaryRef *) &props_dict, >-- kCFAllocatorDefault, >-- kNilOptions) >-- != kIOReturnSuccess) >-- { >-- ERROR ("disk-plugin: IORegistryEntryCreateCFProperties failed."); >-+ if (IORegistryEntryCreateCFProperties (disk_child, (CFMutableDictionaryRef *) &child_dict, kCFAllocatorDefault, kNilOptions) != kIOReturnSuccess || child_dict == NULL) { >-+ ERROR ("disk plugin: IORegistryEntryCreateCFProperties (disk_child) failed."); >- IOObjectRelease (disk_child); >- IOObjectRelease (disk); >- continue; >- } >- >-- if (props_dict == NULL) >-- { >-- DEBUG ("IORegistryEntryCreateCFProperties (disk) failed."); >-- IOObjectRelease (disk_child); >-- IOObjectRelease (disk); >-- continue; >-+ /* extract name and major/minor numbers */ >-+ memset (child_disk_name_bsd, 0, sizeof (child_disk_name_bsd)); >-+ tmp_cf_string_ref = (CFStringRef) CFDictionaryGetValue (child_dict, CFSTR(kIOBSDNameKey)); >-+ if (tmp_cf_string_ref) { >-+ assert (CFGetTypeID (tmp_cf_string_ref) == CFStringGetTypeID ()); >-+ CFStringGetCString (tmp_cf_string_ref, child_disk_name_bsd, sizeof (child_disk_name_bsd), kCFStringEncodingUTF8); >- } >-+ disk_major = (int) dict_get_value (child_dict, kIOBSDMajorKey); >-+ disk_minor = (int) dict_get_value (child_dict, kIOBSDMinorKey); >-+ DEBUG ("disk plugin: child_disk_name_bsd=\"%s\" major=%d minor=%d", child_disk_name_bsd, disk_major, disk_minor); >-+ CFRelease (child_dict); >-+ IOObjectRelease (disk_child); >- >-- /* tmp_cf_string_ref doesn't need to be released. */ >-- tmp_cf_string_ref = (CFStringRef) CFDictionaryGetValue (props_dict, >-- CFSTR(kIOBSDNameKey)); >-- if (!tmp_cf_string_ref) >-- { >-- DEBUG ("disk plugin: CFDictionaryGetValue(" >-- "kIOBSDNameKey) failed."); >-- CFRelease (props_dict); >-- IOObjectRelease (disk_child); >-+ /* get property dictionary of the disk entry itself */ >-+ if (IORegistryEntryCreateCFProperties (disk, (CFMutableDictionaryRef *) &props_dict, kCFAllocatorDefault, kNilOptions) != kIOReturnSuccess || props_dict == NULL) { >-+ ERROR ("disk-plugin: IORegistryEntryCreateCFProperties failed."); >- IOObjectRelease (disk); >- continue; >- } >-- assert (CFGetTypeID (tmp_cf_string_ref) == CFStringGetTypeID ()); >- >-- memset (disk_name_bsd, 0, sizeof (disk_name_bsd)); >-- CFStringGetCString (tmp_cf_string_ref, >-- disk_name_bsd, sizeof (disk_name_bsd), >-- kCFStringEncodingUTF8); >-- if (disk_name_bsd[0] == 0) >-- { >-- ERROR ("disk plugin: CFStringGetCString() failed."); >-- CFRelease (props_dict); >-- IOObjectRelease (disk_child); >-- IOObjectRelease (disk); >-- continue; >-+ /* extract name and stats dictionary */ >-+ memset (props_disk_name_bsd, 0, sizeof (props_disk_name_bsd)); >-+ tmp_cf_string_ref = (CFStringRef) CFDictionaryGetValue (props_dict, CFSTR(kIOBSDNameKey)); >-+ if (tmp_cf_string_ref) { >-+ assert (CFGetTypeID (tmp_cf_string_ref) == CFStringGetTypeID ()); >-+ CFStringGetCString (tmp_cf_string_ref, props_disk_name_bsd, sizeof (props_disk_name_bsd), kCFStringEncodingUTF8); >- } >-- DEBUG ("disk plugin: disk_name_bsd = \"%s\"", disk_name_bsd); >-- >-- stats_dict = (CFDictionaryRef) CFDictionaryGetValue (props_dict, >-- CFSTR (kIOBlockStorageDriverStatisticsKey)); >-- >-- if (stats_dict == NULL) >-- { >-- DEBUG ("disk plugin: CFDictionaryGetValue (" >-- "%s) failed.", >-- kIOBlockStorageDriverStatisticsKey); >-+ stats_dict = (CFDictionaryRef) CFDictionaryGetValue (props_dict, CFSTR (kIOBlockStorageDriverStatisticsKey)); >-+ if (stats_dict == NULL) { >-+ ERROR ("disk plugin: CFDictionaryGetValue (%s) failed.", kIOBlockStorageDriverStatisticsKey); >- CFRelease (props_dict); >-- IOObjectRelease (disk_child); >- IOObjectRelease (disk); >- continue; >- } >-+ DEBUG ("disk plugin: props_disk_name_bsd=\"%s\"", props_disk_name_bsd); >- >-- if (IORegistryEntryCreateCFProperties (disk_child, >-- (CFMutableDictionaryRef *) &child_dict, >-- kCFAllocatorDefault, >-- kNilOptions) >-- != kIOReturnSuccess) >-- { >-- DEBUG ("disk plugin: IORegistryEntryCreateCFProperties (" >-- "disk_child) failed."); >-- IOObjectRelease (disk_child); >-- CFRelease (props_dict); >-- IOObjectRelease (disk); >-- continue; >-+ /* choose name */ >-+ if (use_bsd_name) { >-+ if (child_disk_name_bsd[0] != 0) >-+ sstrncpy (disk_name, child_disk_name_bsd, sizeof (disk_name)); >-+ else if (props_disk_name_bsd[0] != 0) >-+ sstrncpy (disk_name, props_disk_name_bsd, sizeof (disk_name)); >-+ else { >-+ ERROR ("disk plugin: can't find bsd disk name."); >-+ ssnprintf (disk_name, sizeof (disk_name), "%i-%i", disk_major, disk_minor); >-+ } >- } >-+ else >-+ ssnprintf (disk_name, sizeof (disk_name), "%i-%i", disk_major, disk_minor); >- >-- /* kIOBSDNameKey */ >-- disk_major = (int) dict_get_value (child_dict, >-- kIOBSDMajorKey); >-- disk_minor = (int) dict_get_value (child_dict, >-- kIOBSDMinorKey); >-- read_ops = dict_get_value (stats_dict, >-- kIOBlockStorageDriverStatisticsReadsKey); >-- read_byt = dict_get_value (stats_dict, >-- kIOBlockStorageDriverStatisticsBytesReadKey); >-- read_tme = dict_get_value (stats_dict, >-- kIOBlockStorageDriverStatisticsTotalReadTimeKey); >-- write_ops = dict_get_value (stats_dict, >-- kIOBlockStorageDriverStatisticsWritesKey); >-- write_byt = dict_get_value (stats_dict, >-- kIOBlockStorageDriverStatisticsBytesWrittenKey); >-- /* This property describes the number of nanoseconds spent >-- * performing writes since the block storage driver was >-- * instantiated. It is one of the statistic entries listed >-- * under the top-level kIOBlockStorageDriverStatisticsKey >-- * property table. It has an OSNumber value. */ >-- write_tme = dict_get_value (stats_dict, >-- kIOBlockStorageDriverStatisticsTotalWriteTimeKey); >-+ /* extract the stats */ >-+ read_ops = dict_get_value (stats_dict, kIOBlockStorageDriverStatisticsReadsKey); >-+ read_byt = dict_get_value (stats_dict, kIOBlockStorageDriverStatisticsBytesReadKey); >-+ read_tme = dict_get_value (stats_dict, kIOBlockStorageDriverStatisticsTotalReadTimeKey); >-+ write_ops = dict_get_value (stats_dict, kIOBlockStorageDriverStatisticsWritesKey); >-+ write_byt = dict_get_value (stats_dict, kIOBlockStorageDriverStatisticsBytesWrittenKey); >-+ write_tme = dict_get_value (stats_dict, kIOBlockStorageDriverStatisticsTotalWriteTimeKey); >-+ CFRelease (props_dict); >-+ IOObjectRelease (disk); >- >-- if (use_bsd_name) >-- sstrncpy (disk_name, disk_name_bsd, sizeof (disk_name)); >-- else >-- ssnprintf (disk_name, sizeof (disk_name), "%i-%i", >-- disk_major, disk_minor); >-+ /* and submit */ >- DEBUG ("disk plugin: disk_name = \"%s\"", disk_name); >-- >- if ((read_byt != -1LL) || (write_byt != -1LL)) >- disk_submit (disk_name, "disk_octets", read_byt, write_byt); >- if ((read_ops != -1LL) || (write_ops != -1LL)) >- disk_submit (disk_name, "disk_ops", read_ops, write_ops); >- if ((read_tme != -1LL) || (write_tme != -1LL)) >-- disk_submit (disk_name, "disk_time", >-- read_tme / 1000, >-- write_tme / 1000); >-+ disk_submit (disk_name, "disk_time", read_tme / 1000, write_tme / 1000); >- >-- CFRelease (child_dict); >-- IOObjectRelease (disk_child); >-- CFRelease (props_dict); >-- IOObjectRelease (disk); >- } >- IOObjectRelease (disk_list); >- /* #endif HAVE_IOKIT_IOKITLIB_H */ >- >-+#elif KERNEL_FREEBSD >-+ int retry, dirty; >-+ >-+ void *snap = NULL; >-+ struct devstat *snap_iter; >-+ >-+ struct gident *geom_id; >-+ >-+ const char *disk_name; >-+ long double read_time, write_time; >-+ >-+ for (retry = 0, dirty = 1; retry < 5 && dirty == 1; retry++) { >-+ if (snap != NULL) >-+ geom_stats_snapshot_free(snap); >-+ >-+ /* Get a fresh copy of stats snapshot */ >-+ snap = geom_stats_snapshot_get(); >-+ if (snap == NULL) { >-+ ERROR("disk plugin: geom_stats_snapshot_get() failed."); >-+ return (-1); >-+ } >-+ >-+ /* Check if we have dirty read from this snapshot */ >-+ dirty = 0; >-+ geom_stats_snapshot_reset(snap); >-+ while ((snap_iter = geom_stats_snapshot_next(snap)) != NULL) { >-+ if (snap_iter->id == NULL) >-+ continue; >-+ geom_id = geom_lookupid(&geom_tree, snap_iter->id); >-+ >-+ /* New device? refresh GEOM tree */ >-+ if (geom_id == NULL) { >-+ geom_deletetree(&geom_tree); >-+ if (geom_gettree(&geom_tree) != 0) { >-+ ERROR("disk plugin: geom_gettree() failed"); >-+ geom_stats_snapshot_free(snap); >-+ return (-1); >-+ } >-+ geom_id = geom_lookupid(&geom_tree, snap_iter->id); >-+ } >-+ /* >-+ * This should be rare: the device come right before we take the >-+ * snapshot and went away right after it. We will handle this >-+ * case later, so don't mark dirty but silently ignore it. >-+ */ >-+ if (geom_id == NULL) >-+ continue; >-+ >-+ /* Only collect PROVIDER data */ >-+ if (geom_id->lg_what != ISPROVIDER) >-+ continue; >-+ >-+ /* Only collect data when rank is 1 (physical devices) */ >-+ if (((struct gprovider *)(geom_id->lg_ptr))->lg_geom->lg_rank != 1) >-+ continue; >-+ >-+ /* Check if this is a dirty read quit for another try */ >-+ if (snap_iter->sequence0 != snap_iter->sequence1) { >-+ dirty = 1; >-+ break; >-+ } >-+ } >-+ } >-+ >-+ /* Reset iterator */ >-+ geom_stats_snapshot_reset(snap); >-+ for (;;) { >-+ snap_iter = geom_stats_snapshot_next(snap); >-+ if (snap_iter == NULL) >-+ break; >-+ >-+ if (snap_iter->id == NULL) >-+ continue; >-+ geom_id = geom_lookupid(&geom_tree, snap_iter->id); >-+ if (geom_id == NULL) >-+ continue; >-+ if (geom_id->lg_what != ISPROVIDER) >-+ continue; >-+ if (((struct gprovider *)(geom_id->lg_ptr))->lg_geom->lg_rank != 1) >-+ continue; >-+ /* Skip dirty reads, if present */ >-+ if (dirty && (snap_iter->sequence0 != snap_iter->sequence1)) >-+ continue; >-+ >-+ disk_name = ((struct gprovider *)geom_id->lg_ptr)->lg_name; >-+ >-+ if ((snap_iter->bytes[1] != 0) || (snap_iter->bytes[2] != 0)) { >-+ disk_submit(disk_name, "disk_octets", >-+ (derive_t)snap_iter->bytes[1], >-+ (derive_t)snap_iter->bytes[2]); >-+ } >-+ >-+ if ((snap_iter->operations[1] != 0) || (snap_iter->operations[2] != 0)) { >-+ disk_submit(disk_name, "disk_ops", >-+ (derive_t)snap_iter->operations[1], >-+ (derive_t)snap_iter->operations[2]); >-+ } >-+ >-+ read_time = devstat_compute_etime(&snap_iter->duration[DEVSTAT_READ], NULL); >-+ write_time = devstat_compute_etime(&snap_iter->duration[DEVSTAT_WRITE], NULL); >-+ if ((read_time != 0) || (write_time != 0)) { >-+ disk_submit (disk_name, "disk_time", >-+ (derive_t)(read_time*1000), (derive_t)(write_time*1000)); >-+ } >-+ } >-+ geom_stats_snapshot_free(snap); >-+ >- #elif KERNEL_LINUX >- FILE *fh; >- char buffer[1024]; >diff -ruN net-mgmt/collectd5/files/patch-src_zfs__arc.c net-mgmt/collectd5.new/files/patch-src_zfs__arc.c >--- net-mgmt/collectd5/files/patch-src_zfs__arc.c 1970-01-01 01:00:00.000000000 +0100 >+++ net-mgmt/collectd5.new/files/patch-src_zfs__arc.c 2016-01-27 03:36:55.000000000 +0100 >@@ -0,0 +1,14 @@ >+--- src/zfs_arc.c.orig 2016-01-22 09:51:17 UTC >++++ src/zfs_arc.c >+@@ -270,8 +270,11 @@ static int za_read (void) >+ za_read_derive (ksp, "deleted", "cache_operation", "deleted"); >+ #if __FreeBSD__ >+ za_read_derive (ksp, "allocated","cache_operation", "allocated"); >++#if defined(__FreeBSD_version) && (__FreeBSD_version < 1002000) >++ /* stolen removed from sysctl kstat.zfs.misc.arcstats on FreeBSD 10.2+ */ >+ za_read_derive (ksp, "stolen", "cache_operation", "stolen"); >+ #endif >++#endif >+ >+ /* Issue indicators */ >+ za_read_derive (ksp, "mutex_miss", "mutex_operations", "miss"); >diff -ruN net-mgmt/collectd5/files/patch-version-gen.sh net-mgmt/collectd5.new/files/patch-version-gen.sh >--- net-mgmt/collectd5/files/patch-version-gen.sh 2015-08-11 03:48:54.000000000 +0200 >+++ net-mgmt/collectd5.new/files/patch-version-gen.sh 2016-01-27 03:36:55.000000000 +0100 >@@ -1,9 +1,9 @@ >---- version-gen.sh.orig 2015-05-26 20:23:28 UTC >+--- version-gen.sh.orig 2016-01-22 09:51:17 UTC > +++ version-gen.sh > @@ -1,13 +1,3 @@ > #!/bin/sh > >--DEFAULT_VERSION="5.5.0.git" >+-DEFAULT_VERSION="5.5.1.git" > - > -VERSION="`git describe 2> /dev/null | grep collectd | sed -e 's/^collectd-//'`" > - >@@ -14,4 +14,4 @@ > -VERSION="`echo \"$VERSION\" | sed -e 's/-/./g'`" > - > -printf "%s" "$VERSION" >-+echo -n "5.5.0.git" >++echo -n "5.5.1.git" >diff -ruN net-mgmt/collectd5/pkg-plist net-mgmt/collectd5.new/pkg-plist >--- net-mgmt/collectd5/pkg-plist 2015-10-15 16:55:14.000000000 +0200 >+++ net-mgmt/collectd5.new/pkg-plist 2016-01-27 03:54:39.663914530 +0100 >@@ -30,7 +30,6 @@ > lib/collectd/dns.so > lib/collectd/email.so > lib/collectd/exec.so >-lib/collectd/fhcount.so > lib/collectd/filecount.so > %%STATGRAB%%lib/collectd/interface.so > %%IPMI%%lib/collectd/ipmi.so
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
ports
:
maintainer-approval-
Actions:
View
|
Diff
Attachments on
bug 206660
:
166171
|
166361
|
166370
|
166385
|
166411
|
166430