From cf0bc19b2baf92dbf01006376d34c712efc00e81 Mon Sep 17 00:00:00 2001 From: patpro Date: Fri, 26 Nov 2010 11:38:12 +0100 Subject: [PATCH] Initial version --- .../zfs-stats-for-freebsd-arc-utilization | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100755 plugins/other/zfs-stats-for-freebsd-arc-utilization diff --git a/plugins/other/zfs-stats-for-freebsd-arc-utilization b/plugins/other/zfs-stats-for-freebsd-arc-utilization new file mode 100755 index 00000000..a3431db0 --- /dev/null +++ b/plugins/other/zfs-stats-for-freebsd-arc-utilization @@ -0,0 +1,54 @@ +#!/bin/sh +# -*- sh -*- +# +# $Id: zfs_arc_utilization 11 2010-11-25 07:10:14Z patpro $ +# +# Parameters: +# +# config (required) +# autoconf (optional - used by munin-config) +# +# Magick markers (optional - used by munin-config and som installation +# scripts): +#%# family=auto +#%# capabilities=autoconf + +export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin + +# autoconf + +if [ "$1" = "autoconf" ]; then + # Is the zfs-stats executable there at least ? + if [ -x /usr/local/bin/zfs-stats ]; then + if /usr/local/bin/zfs-stats -p > /dev/null 2>&1; then + echo yes + exit 0 + else + echo "no" + exit 0 + fi + else + echo "no (no /usr/local/bin/zfs-stats executable)" + exit 0 + fi +fi + +# config +if [ "$1" = "config" ]; then + echo 'graph_title ZFS ARC Size' + echo 'graph_args -l 0' + echo 'graph_vlabel Size in MB' + echo 'graph_category ZFS' + echo 'graph_info This graph shows the ARC Size utilization' + +/usr/local/bin/zfs-stats -A | awk 'BEGIN { RS = "" ; FS = "\n" } /^ARC Size/ {print}' | \ +awk '/^\t/ {sub("\t","");sub(/ \(.*\):.*/,""); displayname = $0; gsub(/[ .]/,"_",$0); print $0".label "displayname"\n"$0".min 0"}' + + exit 0 +fi + +# This is the main part of the script, basically it calls +# /usr/local/bin/zfs-stats and processes its output + +/usr/local/bin/zfs-stats -A | awk 'BEGIN { RS = "" ; FS = "\n" } /^ARC Size/ {print}' | \ +sed -e 's, ,,' -e 's, ,_,g' -e 's,\._,__,' -e 's,_(.*):., ,' -e 's, , ,g' -e 's,\([A-Za-z_]*\) *[^ ]* \([0-9.]*\)M,\1.value \2,' | grep value