Repository
Munin (contrib)
Last change
2019-08-13
Graph Categories
Family
auto
Capabilities
Keywords
Language
Bash
License
GPL-2.0-only

nfs_client_cache

Name

nfsd - Plugin to monitor NFSv3 client cache activity on FreeBSD

Configuration

No configuration

Authors

Plugin created by Adam Michel, based on work by Alexandre Dupouy, with the assistance of Mike Fedyk

License

GPLv2

Magic Markers

#%# family=auto
#%# capabilities=autoconf
#!/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