aboutsummaryrefslogtreecommitdiff
path: root/nfsd.sh
blob: 0faffb3d6d934984e7835798f43fd7a359d5408c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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