aboutsummaryrefslogtreecommitdiff
path: root/nfsd.sh
diff options
context:
space:
mode:
authorFelix Hanley <felix@userspace.com.au>2022-02-15 11:29:57 +0000
committerFelix Hanley <felix@userspace.com.au>2022-02-15 11:29:57 +0000
commit6e9ad685b7f8ec16a3f3a2d6875fba530bcaa715 (patch)
tree7fe5c5052282e5e595d4f85c722f511a79f0ddf6 /nfsd.sh
downloadcollectd-freebsd-master.tar.gz
collectd-freebsd-master.tar.bz2
Extract existing scriptsHEADmaster
Diffstat (limited to 'nfsd.sh')
-rwxr-xr-xnfsd.sh23
1 files changed, 23 insertions, 0 deletions
diff --git a/nfsd.sh b/nfsd.sh
new file mode 100755
index 0000000..0faffb3
--- /dev/null
+++ b/nfsd.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+PATH=
+SLEEP=/bin/sleep
+DOAS=/usr/local/bin/doas
+AWK=/usr/bin/awk
+NFSSTAT=/usr/bin/nfsstat
+JQ=/usr/local/bin/jq
+
+HOSTNAME="${COLLECTD_HOSTNAME:-localhost}"
+INTERVAL="${COLLECTD_INTERVAL:-120}"
+
+AWKOPTS="-v interval=${INTERVAL} -v host=${HOSTNAME}"
+
+while true; do
+ $DOAS $NFSSTAT --libxo json \
+ | $JQ -r '.nfsstat.serverstats.operations | keys[] as $k | "\($k)=\(.[$k])"' \
+ | $AWK ${AWKOPTS} -F "[.=]" '{printf "PUTVAL %s/nfs_server-operation/gauge-%s interval=%s N:%d\n", host, $1, interval, int($2)}'
+ $DOAS $NFSSTAT --libxo json \
+ | $JQ -r '.nfsstat.serverstats.cache | keys[] as $k | "\($k)=\(.[$k])"' \
+ | $AWK ${AWKOPTS} -F "[.=]" '{printf "PUTVAL %s/nfs_server-cache/gauge-%s interval=%s N:%d\n", host, $1, interval, int($2)}'
+ $SLEEP $INTERVAL
+done