muninlite/plugins/if_
Lars Kruse 7b4f376daf Fix fetching data for interfaces with a dash in the name
munin-node passes the original interface name (as extracted from
/proc/net/dev) to if_* and if_err_*. Thus replacing dash with underscore
results in interfaces not being found anymore.

Source: patch "220-modify-ifname-parser" from OpenWrt
Author: Martin Blumenstingl
2019-07-19 06:01:08 +02:00

33 lines
1.4 KiB
Plaintext

config_if() {
echo "graph_order down up"
echo "graph_title $1 traffic"
echo "graph_args --base 1000"
echo "graph_vlabel bits in (-) / out (+) per \${graph_period}"
echo "graph_category network"
echo "graph_info This graph shows the traffic of the $INTERFACE network interface. Please note that the traffic is shown in bits per second, not bytes. IMPORTANT: Since the data source for this plugin use 32bit counters, this plugin is really unreliable and unsuitable for most 100Mb (or faster) interfaces, where bursts are expected to exceed 50Mbps. This means that this plugin is usuitable for most production environments. To avoid this problem, use the ip_ plugin instead."
echo "down.label received"
echo "down.type DERIVE"
echo "down.min 0"
echo "down.graph no"
echo "down.cdef down,8,*"
echo "up.label bps"
echo "up.type DERIVE"
echo "up.min 0"
echo "up.negative down"
echo "up.cdef up,8,*"
if [ -n "$(which ethtool)" ]; then
if [ -x "$(which ethtool)" ]; then
if ethtool $1 | grep -q Speed; then
MAX=$(($(ethtool $1 | grep Speed | sed -e 's/[[:space:]]\{1,\}/ /g' -e 's/^ //' -e 's/M.*//' | cut -d\ -f2) * 1000000))
echo "up.max $MAX"
echo "down.max $MAX"
fi
fi
fi
}
fetch_if() {
IINFO=$(grep "$1:" /proc/net/dev | cut -d: -f2 | sed -e 's/ */ /g' -e 's/^[ \t]*//')
echo "down.value" $(echo $IINFO | cut -d\ -f1)
echo "up.value" $(echo $IINFO | cut -d\ -f9)
}