From 3cd07ace54ca4bb2b23a8426de25c4ade6dd4459 Mon Sep 17 00:00:00 2001 From: Adam Michel Date: Mon, 1 Jul 2013 16:50:14 -0700 Subject: [PATCH] Added nfs_client_cache plugin This adds a plugin for tracking NFS client caching statistics. Because the output for this segment of nfsstat was slightly different, the parsing required some awk dancing to programatically make coherent labels. It's basically a separate function anyway. Right? --- plugins/nfs-freebsd/nfs_client_cache | 60 ++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 plugins/nfs-freebsd/nfs_client_cache diff --git a/plugins/nfs-freebsd/nfs_client_cache b/plugins/nfs-freebsd/nfs_client_cache new file mode 100644 index 00000000..6f74e15a --- /dev/null +++ b/plugins/nfs-freebsd/nfs_client_cache @@ -0,0 +1,60 @@ +#!/bin/bash +# -*- sh -*- + +: << =cut + +=head1 NAME + +nfsd - Plugin to monitor NFSv3 client cache activity on FreeBSD + +=head1 CONFIGURATION + +No configuration + +=head1 AUTHORS + +Plugin created by Adam Michel, based on work by Alexandre Dupouy, with the assistance of Mike Fedyk + +=head1 LICENSE + +GPLv2 + +=head1 MAGIC MARKERS + + #%# family=auto + #%# capabilities=autoconf + +=cut + +NFSSTAT=/usr/bin/nfsstat +if [ "$1" = "autoconf" ]; then + if [ -x "$NFSSTAT" ]; then + echo yes + exit 0 + else + echo "no (no $NFSSTAT)" + exit 0 + fi +fi + +labels=`$NFSSTAT -c | grep -iv "[0-9]" | tail -n 2 | sed 's/BioRLHits/BioRL\ Hits/g' | awk '{print $1"_"$2,$1"_"$3,$4"_"$5,$4"_"$6,$7"_"$8,$7"_"$9,$10"_"$11,$10"_"$12}' | tr '\n' ' ' | tr '[A-Z]' '[a-z]'` +values=`$NFSSTAT -c | grep -i "[0-9]" | tail -n 2 | tr '\n' ' '` + +larray=( $labels ) +varray=( $values ) +if [ "$1" = "config" ]; then + + echo 'graph_title NFSv3 Client Cache' + echo 'graph_args --base 1000 -l 0' + echo 'graph_vlabel requests / ${graph_period}' + echo 'graph_total total' + echo 'graph_category NFS' + for a in $labels; do echo "$a.label $a" ; echo "$a.type DERIVE"; echo "$a.min 0"; done + exit 0 +fi + +for i in {0..15}; do + label=${larray[$i]} + value=${varray[$i]} + echo "$label.value $value" +done