munin-contrib/plugins/nfs-freebsd/nfs_client_cache

61 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env 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 '[:upper:]' '[:lower:]')
values=$("$NFSSTAT" -c | grep -i "[0-9]" | tail -n 2 | tr '\n' ' ')
read -r -a larray <<<"$labels"
read -r -a 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 fs'
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