#!/bin/sh # -*- sh -*- # # $Id: zfs_arc_cache_hits_by_cache_list 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 Cache Hits by Cache List' echo 'graph_args -l 0' echo 'graph_vlabel %' echo 'graph_category disk' echo 'graph_info This graph shows the ARC cache hits by cache list' /usr/local/bin/zfs-stats -A | awk 'BEGIN { RS = "" ; FS = "\n" } /CACHE HITS BY CACHE LIST/ {print}' | \ awk '/^\t.*%/ {sub(/[\t ]*/,"");sub(/ \(.*\):/,":");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" } /CACHE HITS BY CACHE LIST/ {print}' | \ awk '/^\t.*%/ {sub(/[\t ]*/,"");sub(/ \(.*\):/,":");sub(/:/,""); gsub(/[ .]/,"_",$0); sub(/%/,""); sub(/_/,".",$2); print $1".value "$2}'