muninlite/plugins/irqstats
Kim B. Heino 4c53449fa3 irqstats: fix iqrstats on Raspberry Pi (partial revert for 5190244c)
Raspberry Pi has line "FIQ:              usb_fiq" in /proc/interrupts.
"VALUE=$((VALUE + VAL))" results "Illegal number" in dash (Raspberry Pi)
"VALUE=$((VALUE + $VAL))" works in dash, bash and busybox (OpenWrt).
2020-10-09 15:40:46 +03:00

36 lines
1.1 KiB
Text

config_irqstats() {
echo "graph_title Individual interrupts
graph_args --base 1000 -l 0
graph_vlabel interrupts / \${graph_period}
graph_category system"
CPUS=$(grep 'CPU[0-9]' /proc/interrupts | wc -w)
IINFO=$(sed -e 's/ \{1,\}/ /g' -e 's/^ //' /proc/interrupts | grep '.:')
for ID in $(echo "$IINFO" | cut -d: -f1)
do
IDL=$(echo "$IINFO" | grep "^$ID:")
INFO=$(eval "echo \"$IDL\" | cut -d ' ' -f '$((3 + CPUS))-'")
if [ -z "$INFO" ]; then
echo "i$ID.label $ID"
else
echo "i$ID.label $INFO"
echo "i$ID.info Interrupt $ID, for device(s): $INFO"
fi
echo "i$ID.type DERIVE"
echo "i$ID.min 0"
done
}
fetch_irqstats() {
CPUS=$(grep 'CPU[0-9]' /proc/interrupts | wc -w)
IINFO=$(sed -e 's/ \{1,\}/ /g' -e 's/^ //' /proc/interrupts | grep '.:')
for ID in $(echo "$IINFO" | cut -d: -f1)
do
IDL=$(echo "$IINFO" | grep "^$ID:")
VALS=$(eval "echo \"$IDL\" | cut -d ' ' -f '2-$((1 + CPUS))'")
VALUE=0
for VAL in $VALS;
do
VALUE=$((VALUE + $VAL))
done
echo "i$ID.value $VALUE"
done
}