FreeBSD Bugzilla – Attachment 111649 Details for
Bug 152947
Add ZFS ARC statistics into net-mgmt/collectd port
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
file.diff
file.diff (text/plain), 9.71 KB, created by
Ivan Brawley
on 2010-12-09 00:40:09 UTC
(
hide
)
Description:
file.diff
Filename:
MIME Type:
Creator:
Ivan Brawley
Created:
2010-12-09 00:40:09 UTC
Size:
9.71 KB
patch
obsolete
>--- net-mgmt/collectd/Makefile.orig 2010-12-07 10:02:42.958651026 +1030 >+++ net-mgmt/collectd/Makefile 2010-12-09 10:40:18.041439748 +1030 >@@ -13,15 +13,19 @@ > > MAINTAINER= ports@bsdserwis.com > COMMENT= Systems & network statistics collection daemon > > USE_GMAKE= yes > GNU_CONFIGURE= yes >-USE_AUTOTOOLS= libltdl:22 >+USE_AUTOTOOLS= autoheader:268 aclocal:111 libtool:22 libtoolize:22 automake:19 autoconf:268 libltdl:22 > WANT_GNOME= yes > >+AUTOMAKE_ARGS= --add-missing --copy >+LIBTOOLIZE_ARGS= --ltdl --copy --force >+ACLOCAL_ARGS= >+ > OPTIONS= CGI "Install collection.cgi (requires RRDTOOL)" Off \ > BIND "Enable BIND 9.5+ statistics" On \ > DEBUG "Enable debugging" Off \ > APACHE "Input: Apache mod_status (libcurl)" Off \ > APCUPS "Input: APC UPS (apcupsd)" Off \ > CURL "Input: CURL generic web statistics" Off \ >@@ -33,14 +37,13 @@ > NGINX "Input: Nginx" Off \ > OPENVPN "Input: OpenVPN statistics" Off \ > PDNS "Input: PowerDNS" Off \ > PGSQL "Input: PostgreSQL" Off \ > PING "Input: Network latency (liboping)" On \ > SNMP "Input: SNMP" On \ >- XMMS "Input: XMMS" Off \ >- RRDTOOL "Output: RRDTool" On >+ XMMS "Input: XMMS" Off > > MAN1= collectd.1 collectd-nagios.1 collectdmon.1 > MAN5= collectd.conf.5 collectd-email.5 collectd-exec.5 \ > collectd-snmp.5 collectd-unixsock.5 collectd-perl.5 \ > collectd-java.5 collectd-python.5 types.db.5 > USE_RC_SUBR= collectd collectdmon >@@ -49,12 +52,20 @@ > > CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" \ > LDFLAGS="-L${LOCALBASE}/lib" > > .include <bsd.port.pre.mk> > >+.if ( ${OSVERSION} >= 800000 ) >+OPTIONS+= ZFS_ARC "Input: ZFS ARC" Off >+.else >+.undef WITH_ZFS_ARC >+.endif >+ >+OPTIONS+= RRDTOOL "Output: RRDTool" On >+ > .if ( ${OSVERSION} < 601103 ) > BROKEN= Need bind9 import post 6.1 > .endif > > .if ${OSVERSION} < 700000 > BROKEN= does not configure on 6.X >@@ -120,13 +131,12 @@ > --disable-tokyotyrant \ > --disable-users \ > --disable-vmem \ > --disable-vserver \ > --disable-wireless \ > --disable-write_http \ >- --disable-zfs_arc \ > --without-perl-bindings > > .if defined(WITH_DEBUG) > CONFIGURE_ARGS+=--enable-debug > .endif > >@@ -304,12 +314,20 @@ > PLIST_SUB+= XMMS="" > .else > CONFIGURE_ARGS+=--disable-xmms > PLIST_SUB+= XMMS="@comment " > .endif > >+.if defined(WITH_ZFS_ARC) && ( ${OSVERSION} >= 800000 ) >+CONFIGURE_ARGS+=--enable-zfs_arc >+PLIST_SUB+= ZFS_ARC="" >+.else >+CONFIGURE_ARGS+=--disable-zfs_arc >+PLIST_SUB+= ZFS_ARC="@comment " >+.endif >+ > post-patch: > @${REINPLACE_CMD} \ > -e 's;@prefix@/var/;/var/;' \ > -e 's;/var/lib/;/var/db/;' \ > ${WRKSRC}/src/collectd.conf.in > @${REINPLACE_CMD} \ >--- net-mgmt/collectd/files/patch-configure.in.orig 1970-01-01 09:30:00.000000000 +0930 >+++ net-mgmt/collectd/files/patch-configure.in 2010-12-08 16:00:08.697721236 +1030 >@@ -0,0 +1,59 @@ >+--- configure.in.idborig 2010-12-08 15:55:15.333847856 +1030 >++++ configure.in 2010-12-08 15:59:28.307013465 +1030 >+@@ -63,6 +63,9 @@ >+ *openbsd*) >+ ac_system="OpenBSD" >+ ;; >++ *freebsd*) >++ ac_system="FreeBSD" >++ ;; >+ *aix*) >+ AC_DEFINE([KERNEL_AIX], 1, [True if program is to be compiled for a AIX kernel]) >+ ac_system="AIX" >+@@ -90,7 +93,7 @@ >+ fi >+ >+ # Where to install .pc files. >+-pkgconfigdir="${libdir}/pkgconfig" >++pkgconfigdir="${prefix}/libdata/pkgconfig" >+ AC_SUBST(pkgconfigdir) >+ >+ # Check for standards compliance mode >+@@ -284,6 +287,24 @@ >+ AC_MSG_RESULT([no]) >+ fi >+ >++AC_MSG_CHECKING([for sysctl kstat.zfs]) >++if test -x /sbin/sysctl >++then >++ /sbin/sysctl kstat.zfs 2>/dev/null >++ if test $? -eq 0 >++ then >++ AC_MSG_RESULT([yes]) >++ AC_DEFINE(HAVE_SYSCTL_KSTAT_ZFS, 1, >++ [Define if sysctl supports kstat.zfs]) >++ have_sysctl_kstat_zfs="yes" >++ else >++ AC_MSG_RESULT([no]) >++ have_sysctl_kstat_zfs="no" >++ fi >++else >++ AC_MSG_RESULT([no]) >++fi >++ >+ # For hddtemp module >+ AC_CHECK_HEADERS(linux/major.h libgen.h) >+ >+@@ -3968,6 +3989,12 @@ >+ plugin_zfs_arc="yes" >+ fi >+ >++# FreeBSD with zfs.ko loaded >++if test "x$ac_system" = "xFreeBSD" -a "X$have_sysctl_kstat_zfs" = "Xyes" >++then >++ plugin_zfs_arc="yes" >++fi >++ >+ if test "x$with_devinfo$with_kstat" = "xyesyes" >+ then >+ plugin_cpu="yes" >--- net-mgmt/collectd/files/patch-src__Makefile.am.orig 1970-01-01 09:30:00.000000000 +0930 >+++ net-mgmt/collectd/files/patch-src__Makefile.am 2010-12-08 16:03:52.520952306 +1030 >@@ -0,0 +1,24 @@ >+--- src/Makefile.am.idborig 2010-12-08 16:00:22.720212550 +1030 >++++ src/Makefile.am 2010-12-08 16:02:58.038149584 +1030 >+@@ -1158,7 +1158,9 @@ >+ zfs_arc_la_SOURCES = zfs_arc.c >+ zfs_arc_la_CFLAGS = $(AM_CFLAGS) >+ zfs_arc_la_LDFLAGS = -module -avoid-version >++if BUILD_WITH_LIBKSTAT >+ zfs_arc_la_LIBADD = -lkstat >++endif >+ collectd_LDADD += "-dlopen" zfs_arc.la >+ collectd_DEPENDENCIES += zfs_arc.la >+ endif >+@@ -1215,9 +1217,9 @@ >+ $(mkinstalldirs) $(DESTDIR)$(sysconfdir) >+ if test -e $(DESTDIR)$(sysconfdir)/collectd.conf; \ >+ then \ >+- $(INSTALL) -m 0640 collectd.conf $(DESTDIR)$(sysconfdir)/collectd.conf.pkg-orig; \ >++ $(INSTALL) -m 0640 collectd.conf $(DESTDIR)$(sysconfdir)/collectd.conf.sample.pkg-orig; \ >+ else \ >+- $(INSTALL) -m 0640 collectd.conf $(DESTDIR)$(sysconfdir)/collectd.conf; \ >++ $(INSTALL) -m 0640 collectd.conf $(DESTDIR)$(sysconfdir)/collectd.conf.sample; \ >+ fi; \ >+ $(mkinstalldirs) $(DESTDIR)$(pkgdatadir) >+ $(INSTALL) -m 0644 $(srcdir)/types.db $(DESTDIR)$(pkgdatadir)/types.db; >--- net-mgmt/collectd/files/patch-src__zfs_arc.c.orig 1970-01-01 09:30:00.000000000 +0930 >+++ net-mgmt/collectd/files/patch-src__zfs_arc.c 2010-12-08 16:05:55.483845824 +1030 >@@ -0,0 +1,100 @@ >+--- src/zfs_arc.c.idborig 2010-12-08 16:04:08.946558865 +1030 >++++ src/zfs_arc.c 2010-12-08 16:05:23.979254992 +1030 >+@@ -26,8 +26,12 @@ >+ /* >+ * Global variables >+ */ >++#if HAVE_LIBKSTAT >+ static kstat_t *ksp; >+ extern kstat_ctl_t *kc; >++#elif HAVE_SYSCTL >++#include <sys/sysctl.h> >++#endif >+ >+ static void za_submit (const char* type, const char* type_instance, value_t* values, int values_len) >+ { >+@@ -88,6 +92,19 @@ >+ za_submit ("arc_counts", type_instance, values, STATIC_ARRAY_SIZE(values)); >+ } >+ >++#if HAVE_SYSCTL >++static uint64_t za_sysctl_read_stat (const char* stat) >++{ >++ uint64_t sysctl_stat; >++ size_t stat_size = sizeof(sysctl_stat); >++ >++ if (sysctlbyname(stat, &sysctl_stat, &stat_size, NULL, 0) == 0) { >++ return (sysctl_stat); >++ } >++ return(0); >++} >++#endif >++ >+ static int za_read (void) >+ { >+ gauge_t arcsize, targetsize, minlimit, maxlimit, hits, misses, l2_size, l2_hits, l2_misses; >+@@ -95,6 +112,7 @@ >+ counter_t demand_data_misses, demand_metadata_misses, prefetch_data_misses, prefetch_metadata_misses; >+ counter_t l2_read_bytes, l2_write_bytes; >+ >++#if HAVE_LIBKSTAT >+ get_kstat (&ksp, "zfs", 0, "arcstats"); >+ if (ksp == NULL) >+ { >+@@ -125,6 +143,31 @@ >+ l2_write_bytes = get_kstat_value(ksp, "l2_write_bytes"); >+ l2_hits = get_kstat_value(ksp, "l2_hits"); >+ l2_misses = get_kstat_value(ksp, "l2_misses"); >++#elif HAVE_SYSCTL >++ arcsize = za_sysctl_read_stat("kstat.zfs.misc.arcstats.size"); >++ targetsize = za_sysctl_read_stat("kstat.zfs.misc.arcstats.c"); >++ minlimit = za_sysctl_read_stat("kstat.zfs.misc.arcstats.c_min"); >++ maxlimit = za_sysctl_read_stat("kstat.zfs.misc.arcstats.c_max"); >++ >++ demand_data_hits = za_sysctl_read_stat("kstat.zfs.misc.arcstats.demand_data_hits"); >++ demand_metadata_hits = za_sysctl_read_stat("kstat.zfs.misc.arcstats.demand_metadata_hits"); >++ prefetch_data_hits = za_sysctl_read_stat("kstat.zfs.misc.arcstats.prefetch_data_hits"); >++ prefetch_metadata_hits = za_sysctl_read_stat("kstat.zfs.misc.arcstats.prefetch_metadata_hits"); >++ >++ demand_data_misses = za_sysctl_read_stat("kstat.zfs.misc.arcstats.demand_data_misses"); >++ demand_metadata_misses = za_sysctl_read_stat("kstat.zfs.misc.arcstats.demand_metadata_misses"); >++ prefetch_data_misses = za_sysctl_read_stat("kstat.zfs.misc.arcstats.prefetch_data_misses"); >++ prefetch_metadata_misses = za_sysctl_read_stat("kstat.zfs.misc.arcstats.prefetch_metadata_misses"); >++ >++ hits = za_sysctl_read_stat("kstat.zfs.misc.arcstats.hits"); >++ misses = za_sysctl_read_stat("kstat.zfs.misc.arcstats.misses"); >++ >++ l2_size = za_sysctl_read_stat("kstat.zfs.misc.arcstats.l2_size"); >++ l2_read_bytes = za_sysctl_read_stat("kstat.zfs.misc.arcstats.l2_read_bytes"); >++ l2_write_bytes = za_sysctl_read_stat("kstat.zfs.misc.arcstats.l2_write_bytes"); >++ l2_hits = za_sysctl_read_stat("kstat.zfs.misc.arcstats.l2_hits"); >++ l2_misses = za_sysctl_read_stat("kstat.zfs.misc.arcstats.l2_misses"); >++#endif >+ >+ >+ za_submit_size (arcsize, targetsize, minlimit, maxlimit); >+@@ -145,6 +188,7 @@ >+ >+ static int za_init (void) /* {{{ */ >+ { >++#if HAVE_LIBKSTAT >+ ksp = NULL; >+ >+ /* kstats chain already opened by update_kstat (using *kc), verify everything went fine. */ >+@@ -153,6 +197,16 @@ >+ ERROR ("zfs_arc plugin: kstat chain control structure not available."); >+ return (-1); >+ } >++#elif HAVE_SYSCTL >++ uint64_t arcsize = 0; >++ size_t arcsize_size = sizeof (arcsize); >++ >++ if (sysctlbyname ("kstat.zfs.misc.arcstats.size", &arcsize, &arcsize_size, NULL, 0) < 0) >++ { >++ ERROR ("zfs_arc plugin: sysctl kstat.zfs.misc.arcstats structure not available."); >++ return (-1); >++ } >++#endif >+ >+ return (0); >+ } /* }}} int za_init */ >--- net-mgmt/collectd/pkg-plist.orig 2010-11-14 13:28:55.052837511 +1030 >+++ net-mgmt/collectd/pkg-plist 2010-12-08 15:53:13.898232189 +1030 >@@ -128,12 +128,15 @@ > include/collectd/client.h > include/collectd/lcc_features.h > libdata/pkgconfig/libcollectdclient.pc > %%XMMS%%lib/collectd/xmms.a > %%XMMS%%lib/collectd/xmms.la > %%XMMS%%lib/collectd/xmms.so >+%%ZFS_ARC%%lib/collectd/zfs_arc.a >+%%ZFS_ARC%%lib/collectd/zfs_arc.la >+%%ZFS_ARC%%lib/collectd/zfs_arc.so > %%DATADIR%%/postgresql_default.conf > %%DATADIR%%/types.db > @dirrm lib/collectd > @dirrm include/collectd > @dirrm %%DATADIR%% > @exec mkdir -p /var/db/collectd
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
Actions:
View
|
Diff
Attachments on
bug 152947
: 111649