From: Stuart Henderson Subject: Re: net/munin : add interface description and iostat_ plugins To: Olivier Cherrier Cc: OpenBSD ports Date: Tue, 11 Nov 2025 13:46:39 +0000 On 2025/11/11 13:55, Olivier Cherrier wrote: > Sorry for this.  Here it is. no worries at all, it just makes it easier (which generally makes it more likely to get handled sooner ;) will check/commit. > Thanks ! > Best > > Olivier Cherrier > Phone: +352691570680 > mailto:oc@symacx.com > > On 11/11/25 12:46 PM, Stuart Henderson wrote: > > would you mind sending a diff done with cvs add so that it's easier to > > handle please? (cvs add/rm works ok done against anoncvs for adding or > > removing files) > > > > cd files > > cvs add iostat_ > > cd .. > > cvs diff -uNp > > > > > > On 2025/11/11 01:37, Olivier Cherrier wrote: > > >     Hello, > > > > > > Here is a small bump for net/munin. > > > > > > It adds: > > >   _ a description to the interface graphics (based on the 'descr' value > > >     configured through ifconfig(8), if defined). > > >     It is handy when you have many interfaces with similar names. > > >   _ some 'iostat_' plugins to graph disk statistics (IO Bytes/s and > > > transfers/s). > > > > > > > > > Thanks, > > > > > > -- > > > Olivier Cherrier > > > Phone: +352691570680 > > > mailto:oc@symacx.com > > > > > > #!/bin/sh > > > # -*- sh -*- > > > # > > > # Wildcard-plugin to monitor disk IOs. To monitor a disk, link > > > # iostat_ to this file. E.g. > > > # > > > # ln -s /usr/local/libexec/munin/plugins/iostat_ \ > > > # /etc/munin/plugins/iostat_sd0 > > > # > > > # ...will monitor sd0. > > > # > > > # To aggregate all disk traffic on the system, link iostat_aggregated > > > # to this file. > > > # > > > # Magic markers (optional - used by munin-config and some installation > > > # scripts): > > > # > > > #%# family=auto > > > #%# capabilities=autoconf suggest > > > > > > DISK=${0##*iostat_} > > > > > > > > > if [ "$1" = "autoconf" ]; then > > > if [ -x /usr/sbin/iostat -a -x /sbin/sysctl ]; then > > > echo yes > > > exit 0 > > > else > > > echo "no (/usr/sbin/iostat or /sbin/sysctl not found)" > > > exit 0 > > > fi > > > fi > > > > > > if [ "$1" = "suggest" ]; then > > > if [ -x /sbin/sysctl ]; then > > > /sbin/sysctl hw.disknames | perl -ne ' > > > my @disks = split(/=|,/); > > > for my $disk (@disks) { > > > next if $disk =~ m{hw.disknames}; > > > my @d = split(/:/, $disk); > > > print "$d[0]\n" if ($d[0] =~ m{[a-z]+\d+} > > > and $d[1] =~ m/.{16}/); > > > } > > > ' > > > exit 0 > > > else > > > exit 1 > > > fi > > > fi > > > > > > if [ "$1" = "config" ]; then > > > echo 'multigraph bytes' > > > echo "graph_title $DISK IO Bytes/s" > > > echo 'graph_args --base 1024' > > > echo 'graph_vlabel Bytes/s' > > > echo 'graph_category disk' > > > echo "graph_info This graph shows IO statistics (total Bytes/s) for $DISK disk." > > > # echo 'graph_scale yes' > > > echo "kb.info Data transfered (Bytes/s) on the $DISK disk." > > > echo 'kb.label Bytes transfered' > > > echo 'kb.type DERIVE' > > > # echo 'kb.graph no' > > > echo 'kb.cdef kb,1024,*' > > > echo 'kb.min 0' > > > echo '' > > > echo 'multigraph xfr' > > > echo "graph_title $DISK transfers/s" > > > echo 'graph_args --base 1000' > > > echo 'graph_vlabel xfr/s' > > > echo 'graph_category disk' > > > echo "graph_info This graph shows IO statistics (transfers/s) for $DISK disk." > > > # echo 'graph_scale yes' > > > echo "xfr.info Disk transfers (IOPs) on the $DISK disk." > > > echo 'xfr.label Disk transfers' > > > echo 'xfr.type DERIVE' > > > # echo 'xfr.cdef xfr,8,*' > > > echo 'xfr.min 0' > > > > > > exit 0 > > > fi > > > > > > /usr/sbin/iostat -ID $DISK | awk ' > > > /[[:digit:]]+[[:space:]][[:digit:]]+[[:space:]][[[:digit:]]|\.]+/ { > > > if (NF == 3) { > > > print "multigraph bytes"; > > > print "kb.value", $1; > > > print ""; > > > print "multigraph xfr"; > > > print "xfr.value", $2; > > > } > > > }' > > > > > > Index: plugins/node.d.openbsd/if_pps_.in > > > --- plugins/node.d.openbsd/if_pps_.in.orig > > > +++ plugins/node.d.openbsd/if_pps_.in > > > @@ -31,6 +31,8 @@ if [ "$1" = "autoconf" ]; then > > > fi > > > fi > > > +DESCR=$(/sbin/ifconfig ${INTERFACE} | /usr/bin/awk -F ': ' '/description:(.*)$/ {print substr($2, 1, 12);}') > > > + > > > if [ "$1" = "suggest" ]; then > > > if [ -x /usr/bin/netstat ]; then > > > netstat -i -n | sed -n -e '/^faith/d' -e '/^lo[0-9]/d' -e '/^pflog/d' -e '//s/\** .*//p' > > > @@ -42,7 +44,11 @@ fi > > > if [ "$1" = "config" ]; then > > > echo "graph_order rpkt opkt" > > > - echo "graph_title $INTERFACE packets" > > > + if [ "X${DESCR}" != 'X' ]; then > > > + echo "graph_title $INTERFACE (${DESCR}) packets" > > > + else > > > + echo "graph_title $INTERFACE packets" > > > + fi > > > echo 'graph_args --base 1000' > > > echo 'graph_vlabel packets/${graph_period} in (-) out (+)' > > > echo 'graph_category network' > > > Index: net/munin/Makefile > > > =================================================================== > > > RCS file: /data/repos/openbsd-cvs/ports/net/munin/Makefile,v > > > diff -u -r1.121 Makefile > > > --- net/munin/Makefile 23 May 2024 05:47:01 -0000 1.121 > > > +++ net/munin/Makefile 11 Nov 2025 00:34:44 -0000 > > > @@ -9,6 +9,7 @@ > > > PKGNAME-main = munin-node-${GH_TAGNAME} > > > PKGNAME-server =munin-server-${GH_TAGNAME} > > > CATEGORIES = net > > > +REVISION = 0 > > > HOMEPAGE = https://munin-monitoring.org/ > > > @@ -72,8 +73,8 @@ > > > DOCDIR=${WRKINST}/${PREFIX}/share/doc/munin \ > > > CONFDIR=${WRKINST}/${PREFIX}/share/examples/munin > > > -MUNIN_PLUGINS = bgpd if_pps_ intr pf_changes pf_searches pf_states \ > > > - sensors_ vmstat > > > +MUNIN_PLUGINS = bgpd if_pps_ intr iostat_ pf_changes pf_searches \ > > > + pf_states sensors_ vmstat > > > .for i in ${MUNIN_PLUGINS} > > > SUBST_LIST += ${FILESDIR}/$i ${WRKSRC}/plugins/node.d.openbsd/$i.in > > > Index: net/munin/patches/patch-plugins_node_d_openbsd_if__in > > > =================================================================== > > > RCS file: /data/repos/openbsd-cvs/ports/net/munin/patches/patch-plugins_node_d_openbsd_if__in,v > > > diff -u -r1.7 patch-plugins_node_d_openbsd_if__in > > > --- net/munin/patches/patch-plugins_node_d_openbsd_if__in 11 Mar 2022 19:46:25 -0000 1.7 > > > +++ net/munin/patches/patch-plugins_node_d_openbsd_if__in 11 Nov 2025 00:34:44 -0000 > > > @@ -13,7 +13,15 @@ > > > # > > > # To aggregate all network interfaces on the system (except lo0), > > > # link if_aggregated to this file. > > > -@@ -37,7 +37,7 @@ if [ "$1" = "suggest" ]; then > > > +@@ -31,13 +31,15 @@ if [ "$1" = "autoconf" ]; then > > > + fi > > > + fi > > > + > > > ++DESCR=$(/sbin/ifconfig ${INTERFACE} | /usr/bin/awk -F ': ' '/description:(.*)$/ {print substr($2, 1, 12);}') > > > ++ > > > + if [ "$1" = "suggest" ]; then > > > + if [ -x /sbin/ifconfig ] > > > + then > > > ifconfig -l | sed -Ee 's/[[:<:]](pfsync|faith|pf(log|sync)|lo|plip|carp|enc|fwe)[^ ]*//g' | xargs -n 1 echo > > > exit 0 > > > elif [ -x /usr/bin/netstat ]; then > > > @@ -22,7 +30,16 @@ > > > exit 0 > > > else > > > exit 1 > > > -@@ -51,7 +51,7 @@ if [ "$1" = "config" ]; then > > > +@@ -47,11 +49,15 @@ fi > > > + if [ "$1" = "config" ]; then > > > + > > > + echo "graph_order rbytes obytes" > > > +- echo "graph_title $INTERFACE traffic" > > > ++ if [ "X${DESCR}" != 'X' ]; then > > > ++ echo "graph_title $INTERFACE (${DESCR}) traffic" > > > ++ else > > > ++ echo "graph_title $INTERFACE traffic" > > > ++ fi > > > echo 'graph_args --base 1000' > > > echo 'graph_vlabel bits per ${graph_period} in (-) / out (+)' > > > echo 'graph_category network' > > > @@ -31,7 +48,7 @@ > > > echo 'rbytes.label received' > > > echo 'rbytes.type DERIVE' > > > echo 'rbytes.graph no' > > > -@@ -69,9 +69,11 @@ fi > > > +@@ -69,9 +75,11 @@ fi > > > if [ "$INTERFACE" = "aggregated" ]; then > > > /usr/bin/netstat -i -b -n | grep -v '^lo' | awk ' > > > BEGIN { rsum = 0; osum = 0; } > > > @@ -46,7 +63,7 @@ > > > } else if (NF == 11) { > > > if ($4 ~ /:/) { > > > rsum += $7; osum += $10; > > > -@@ -79,7 +81,7 @@ BEGIN { rsum = 0; osum = 0; } > > > +@@ -79,7 +87,7 @@ BEGIN { rsum = 0; osum = 0; } > > > rsum += $7; osum += $10; > > > } > > > } else { # NF == 12 > > > @@ -55,7 +72,7 @@ > > > } > > > } > > > END { > > > -@@ -89,17 +91,20 @@ END { > > > +@@ -89,17 +97,20 @@ END { > > > else > > > /usr/bin/netstat -i -b -n -I $INTERFACE | awk ' > > > Index: net/munin/patches/patch-plugins_node_d_openbsd_if_errcoll__in > > > =================================================================== > > > RCS file: /data/repos/openbsd-cvs/ports/net/munin/patches/patch-plugins_node_d_openbsd_if_errcoll__in,v > > > diff -u -r1.5 patch-plugins_node_d_openbsd_if_errcoll__in > > > --- net/munin/patches/patch-plugins_node_d_openbsd_if_errcoll__in 11 Mar 2022 19:46:25 -0000 1.5 > > > +++ net/munin/patches/patch-plugins_node_d_openbsd_if_errcoll__in 11 Nov 2025 00:34:44 -0000 > > > @@ -13,7 +13,15 @@ > > > # > > > # Any device found in /usr/bin/netstat can be monitored. > > > # > > > -@@ -34,7 +34,7 @@ if [ "$1" = "suggest" ]; then > > > +@@ -28,13 +28,15 @@ if [ "$1" = "autoconf" ]; then > > > + fi > > > + fi > > > + > > > ++DESCR=$(/sbin/ifconfig ${INTERFACE} | /usr/bin/awk -F ': ' '/description:(.*)$/ {print substr($2, 1, 12);}') > > > ++ > > > + if [ "$1" = "suggest" ]; then > > > + if [ -x /sbin/ifconfig ] > > > + then > > > ifconfig -l | sed -Ee 's/[[:<:]](pfsync|faith|pf(log|sync)|lo|plip|carp|enc|fwe)[^ ]*//g' | xargs -n 1 echo > > > exit 0 > > > elif [ -x /usr/bin/netstat ]; then > > > @@ -22,7 +30,20 @@ > > > exit 0 > > > else > > > exit 1 > > > -@@ -57,25 +57,15 @@ if [ "$1" = "config" ]; then > > > +@@ -43,7 +45,11 @@ fi > > > + > > > + if [ "$1" = "config" ]; then > > > + echo "graph_order ierrors oerrors collisions" > > > +- echo "graph_title $INTERFACE Errors & Collisions" > > > ++ if [ "X${DESCR}" != 'X' ]; then > > > ++ echo "graph_title $INTERFACE (${DESCR}) Errors & Collisions" > > > ++ else > > > ++ echo "graph_title $INTERFACE Errors & Collisions" > > > ++ fi > > > + echo 'graph_args --base 1000' > > > + echo 'graph_vlabel events / ${graph_period}' > > > + echo 'graph_category network' > > > +@@ -57,25 +63,15 @@ if [ "$1" = "config" ]; then > > > exit 0 > > > fi; > > > Index: net/munin/patches/patch-plugins_node_d_openbsd_if_packets__in > > > =================================================================== > > > RCS file: /data/repos/openbsd-cvs/ports/net/munin/patches/patch-plugins_node_d_openbsd_if_packets__in,v > > > diff -u -r1.3 patch-plugins_node_d_openbsd_if_packets__in > > > --- net/munin/patches/patch-plugins_node_d_openbsd_if_packets__in 11 Mar 2022 19:46:25 -0000 1.3 > > > +++ net/munin/patches/patch-plugins_node_d_openbsd_if_packets__in 11 Nov 2025 00:34:44 -0000 > > > @@ -1,7 +1,15 @@ > > > Index: plugins/node.d.openbsd/if_packets_.in > > > --- plugins/node.d.openbsd/if_packets_.in.orig > > > +++ plugins/node.d.openbsd/if_packets_.in > > > -@@ -37,7 +37,7 @@ if [ "$1" = "suggest" ]; then > > > +@@ -31,13 +31,15 @@ if [ "$1" = "autoconf" ]; then > > > + fi > > > + fi > > > + > > > ++DESCR=$(/sbin/ifconfig ${INTERFACE} | /usr/bin/awk -F ': ' '/description:(.*)$/ {print substr($2, 1, 12);}') > > > ++ > > > + if [ "$1" = "suggest" ]; then > > > + if [ -x /sbin/ifconfig ] > > > + then > > > ifconfig -l | sed -Ee 's/[[:<:]](pfsync|faith|pf(log|sync)|lo|plip|carp|enc|fwe)[^ ]*//g' | xargs -n 1 echo > > > exit 0 > > > elif [ -x /usr/bin/netstat ]; then > > > @@ -10,7 +18,20 @@ > > > exit 0 > > > else > > > exit 1 > > > -@@ -69,9 +69,9 @@ fi > > > +@@ -47,7 +49,11 @@ fi > > > + if [ "$1" = "config" ]; then > > > + > > > + echo "graph_order rpackets opackets" > > > +- echo "graph_title $INTERFACE pps" > > > ++ if [ "X${DESCR}" != 'X' ]; then > > > ++ echo "graph_title $INTERFACE (${DESCR}) pps" > > > ++ else > > > ++ echo "graph_title $INTERFACE pps" > > > ++ fi > > > + echo 'graph_args --base 1000' > > > + echo 'graph_vlabel packets per ${graph_period} in (-) / out (+)' > > > + echo 'graph_category network' > > > +@@ -69,9 +75,9 @@ fi > > > if [ "$INTERFACE" = "aggregated" ]; then > > > /usr/bin/netstat -i -b -n | grep -v '^lo' | awk ' > > > BEGIN { rsum = 0; osum = 0; } > > > @@ -23,7 +44,7 @@ > > > } else if (NF == 11) { > > > if ($4 ~ /:/) { > > > rsum += $5; osum += $8; > > > -@@ -79,7 +79,7 @@ BEGIN { rsum = 0; osum = 0; } > > > +@@ -79,7 +85,7 @@ BEGIN { rsum = 0; osum = 0; } > > > rsum += $4; osum += $8; > > > } > > > } else { # NF == 12 > > > @@ -32,7 +53,7 @@ > > > } > > > } > > > END { > > > -@@ -89,10 +89,10 @@ END { > > > +@@ -89,10 +95,10 @@ END { > > > else > > > /usr/bin/netstat -i -b -n -I $INTERFACE | awk ' > > > @@ -46,7 +67,7 @@ > > > } else if (NF == 11) { > > > if ($4 ~ /:/) { > > > print "rpackets.value", $5; > > > -@@ -103,7 +103,7 @@ else > > > +@@ -103,7 +109,7 @@ else > > > } > > > } else { # NF == 12 > > > print "rpackets.value", $5; > > > Index: net/munin/pkg/PLIST-main > > > =================================================================== > > > RCS file: /data/repos/openbsd-cvs/ports/net/munin/pkg/PLIST-main,v > > > diff -u -r1.27 PLIST-main > > > --- net/munin/pkg/PLIST-main 8 Nov 2022 11:16:58 -0000 1.27 > > > +++ net/munin/pkg/PLIST-main 11 Nov 2025 00:34:44 -0000 > > > @@ -111,6 +111,7 @@ > > > libexec/munin/plugins/if_pps_ > > > libexec/munin/plugins/ifx_concurrent_sessions_ > > > libexec/munin/plugins/intr > > > +libexec/munin/plugins/iostat_ > > > @comment libexec/munin/plugins/ipac-ng > > > libexec/munin/plugins/ipmi_ > > > libexec/munin/plugins/ipmi_sensor_ > > Index: net/munin/Makefile > =================================================================== > RCS file: /data/repos/openbsd-cvs/ports/net/munin/Makefile,v > diff -u -p -r1.121 Makefile > --- net/munin/Makefile 23 May 2024 05:47:01 -0000 1.121 > +++ net/munin/Makefile 11 Nov 2025 12:52:05 -0000 > @@ -9,6 +9,7 @@ GH_TAGNAME = 2.0.76 > PKGNAME-main = munin-node-${GH_TAGNAME} > PKGNAME-server =munin-server-${GH_TAGNAME} > CATEGORIES = net > +REVISION = 0 > > HOMEPAGE = https://munin-monitoring.org/ > > @@ -72,8 +73,8 @@ FAKE_FLAGS += HTMLDIR=${WRKINST}/${PREF > DOCDIR=${WRKINST}/${PREFIX}/share/doc/munin \ > CONFDIR=${WRKINST}/${PREFIX}/share/examples/munin > > -MUNIN_PLUGINS = bgpd if_pps_ intr pf_changes pf_searches pf_states \ > - sensors_ vmstat > +MUNIN_PLUGINS = bgpd if_pps_ intr iostat_ pf_changes pf_searches \ > + pf_states sensors_ vmstat > > .for i in ${MUNIN_PLUGINS} > SUBST_LIST += ${FILESDIR}/$i ${WRKSRC}/plugins/node.d.openbsd/$i.in > Index: net/munin/files/iostat_ > =================================================================== > RCS file: net/munin/files/iostat_ > diff -N net/munin/files/iostat_ > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ net/munin/files/iostat_ 11 Nov 2025 12:52:05 -0000 > @@ -0,0 +1,92 @@ > +#!/bin/sh > +# -*- sh -*- > +# > +# Wildcard-plugin to monitor disk IOs. To monitor a disk, link > +# iostat_ to this file. E.g. > +# > +# ln -s /usr/local/libexec/munin/plugins/iostat_ \ > +# /etc/munin/plugins/iostat_sd0 > +# > +# ...will monitor sd0. > +# > +# To aggregate all disk traffic on the system, link iostat_aggregated > +# to this file. > +# > +# Magic markers (optional - used by munin-config and some installation > +# scripts): > +# > +#%# family=auto > +#%# capabilities=autoconf suggest > + > +DISK=${0##*iostat_} > + > + > +if [ "$1" = "autoconf" ]; then > + if [ -x /usr/sbin/iostat -a -x /sbin/sysctl ]; then > + echo yes > + exit 0 > + else > + echo "no (/usr/sbin/iostat or /sbin/sysctl not found)" > + exit 0 > + fi > +fi > + > +if [ "$1" = "suggest" ]; then > + if [ -x /sbin/sysctl ]; then > + /sbin/sysctl hw.disknames | perl -ne ' > + my @disks = split(/=|,/); > + for my $disk (@disks) { > + next if $disk =~ m{hw.disknames}; > + my @d = split(/:/, $disk); > + print "$d[0]\n" if ($d[0] =~ m{[a-z]+\d+} > + and $d[1] =~ m/.{16}/); > + } > + ' > + exit 0 > + else > + exit 1 > + fi > +fi > + > +if [ "$1" = "config" ]; then > + echo 'multigraph bytes' > + echo "graph_title $DISK IO Bytes/s" > + echo 'graph_args --base 1024' > + echo 'graph_vlabel Bytes/s' > + echo 'graph_category disk' > + echo "graph_info This graph shows IO statistics (total Bytes/s) for $DISK disk." > + # echo 'graph_scale yes' > + echo "kb.info Data transfered (Bytes/s) on the $DISK disk." > + echo 'kb.label Bytes transfered' > + echo 'kb.type DERIVE' > + # echo 'kb.graph no' > + echo 'kb.cdef kb,1024,*' > + echo 'kb.min 0' > + echo '' > + echo 'multigraph xfr' > + echo "graph_title $DISK transfers/s" > + echo 'graph_args --base 1000' > + echo 'graph_vlabel xfr/s' > + echo 'graph_category disk' > + echo "graph_info This graph shows IO statistics (transfers/s) for $DISK disk." > + # echo 'graph_scale yes' > + echo "xfr.info Disk transfers (IOPs) on the $DISK disk." > + echo 'xfr.label Disk transfers' > + echo 'xfr.type DERIVE' > + # echo 'xfr.cdef xfr,8,*' > + echo 'xfr.min 0' > + > + exit 0 > +fi > + > +/usr/sbin/iostat -ID $DISK | awk ' > + /[[:digit:]]+[[:space:]][[:digit:]]+[[:space:]][[[:digit:]]|\.]+/ { > + if (NF == 3) { > + print "multigraph bytes"; > + print "kb.value", $1; > + print ""; > + print "multigraph xfr"; > + print "xfr.value", $2; > + } > +}' > + > Index: net/munin/patches/patch-plugins_node_d_openbsd_if__in > =================================================================== > RCS file: /data/repos/openbsd-cvs/ports/net/munin/patches/patch-plugins_node_d_openbsd_if__in,v > diff -u -p -r1.7 patch-plugins_node_d_openbsd_if__in > --- net/munin/patches/patch-plugins_node_d_openbsd_if__in 11 Mar 2022 19:46:25 -0000 1.7 > +++ net/munin/patches/patch-plugins_node_d_openbsd_if__in 11 Nov 2025 12:52:05 -0000 > @@ -13,7 +13,15 @@ Index: plugins/node.d.openbsd/if_.in > # > # To aggregate all network interfaces on the system (except lo0), > # link if_aggregated to this file. > -@@ -37,7 +37,7 @@ if [ "$1" = "suggest" ]; then > +@@ -31,13 +31,15 @@ if [ "$1" = "autoconf" ]; then > + fi > + fi > + > ++DESCR=$(/sbin/ifconfig ${INTERFACE} | /usr/bin/awk -F ': ' '/description:(.*)$/ {print substr($2, 1, 12);}') > ++ > + if [ "$1" = "suggest" ]; then > + if [ -x /sbin/ifconfig ] > + then > ifconfig -l | sed -Ee 's/[[:<:]](pfsync|faith|pf(log|sync)|lo|plip|carp|enc|fwe)[^ ]*//g' | xargs -n 1 echo > exit 0 > elif [ -x /usr/bin/netstat ]; then > @@ -22,7 +30,16 @@ Index: plugins/node.d.openbsd/if_.in > exit 0 > else > exit 1 > -@@ -51,7 +51,7 @@ if [ "$1" = "config" ]; then > +@@ -47,11 +49,15 @@ fi > + if [ "$1" = "config" ]; then > + > + echo "graph_order rbytes obytes" > +- echo "graph_title $INTERFACE traffic" > ++ if [ "X${DESCR}" != 'X' ]; then > ++ echo "graph_title $INTERFACE (${DESCR}) traffic" > ++ else > ++ echo "graph_title $INTERFACE traffic" > ++ fi > echo 'graph_args --base 1000' > echo 'graph_vlabel bits per ${graph_period} in (-) / out (+)' > echo 'graph_category network' > @@ -31,7 +48,7 @@ Index: plugins/node.d.openbsd/if_.in > echo 'rbytes.label received' > echo 'rbytes.type DERIVE' > echo 'rbytes.graph no' > -@@ -69,9 +69,11 @@ fi > +@@ -69,9 +75,11 @@ fi > if [ "$INTERFACE" = "aggregated" ]; then > /usr/bin/netstat -i -b -n | grep -v '^lo' | awk ' > BEGIN { rsum = 0; osum = 0; } > @@ -46,7 +63,7 @@ Index: plugins/node.d.openbsd/if_.in > } else if (NF == 11) { > if ($4 ~ /:/) { > rsum += $7; osum += $10; > -@@ -79,7 +81,7 @@ BEGIN { rsum = 0; osum = 0; } > +@@ -79,7 +87,7 @@ BEGIN { rsum = 0; osum = 0; } > rsum += $7; osum += $10; > } > } else { # NF == 12 > @@ -55,7 +72,7 @@ Index: plugins/node.d.openbsd/if_.in > } > } > END { > -@@ -89,17 +91,20 @@ END { > +@@ -89,17 +97,20 @@ END { > > else > /usr/bin/netstat -i -b -n -I $INTERFACE | awk ' > Index: net/munin/patches/patch-plugins_node_d_openbsd_if_errcoll__in > =================================================================== > RCS file: /data/repos/openbsd-cvs/ports/net/munin/patches/patch-plugins_node_d_openbsd_if_errcoll__in,v > diff -u -p -r1.5 patch-plugins_node_d_openbsd_if_errcoll__in > --- net/munin/patches/patch-plugins_node_d_openbsd_if_errcoll__in 11 Mar 2022 19:46:25 -0000 1.5 > +++ net/munin/patches/patch-plugins_node_d_openbsd_if_errcoll__in 11 Nov 2025 12:52:05 -0000 > @@ -13,7 +13,15 @@ Index: plugins/node.d.openbsd/if_errcoll > # > # Any device found in /usr/bin/netstat can be monitored. > # > -@@ -34,7 +34,7 @@ if [ "$1" = "suggest" ]; then > +@@ -28,13 +28,15 @@ if [ "$1" = "autoconf" ]; then > + fi > + fi > + > ++DESCR=$(/sbin/ifconfig ${INTERFACE} | /usr/bin/awk -F ': ' '/description:(.*)$/ {print substr($2, 1, 12);}') > ++ > + if [ "$1" = "suggest" ]; then > + if [ -x /sbin/ifconfig ] > + then > ifconfig -l | sed -Ee 's/[[:<:]](pfsync|faith|pf(log|sync)|lo|plip|carp|enc|fwe)[^ ]*//g' | xargs -n 1 echo > exit 0 > elif [ -x /usr/bin/netstat ]; then > @@ -22,7 +30,20 @@ Index: plugins/node.d.openbsd/if_errcoll > exit 0 > else > exit 1 > -@@ -57,25 +57,15 @@ if [ "$1" = "config" ]; then > +@@ -43,7 +45,11 @@ fi > + > + if [ "$1" = "config" ]; then > + echo "graph_order ierrors oerrors collisions" > +- echo "graph_title $INTERFACE Errors & Collisions" > ++ if [ "X${DESCR}" != 'X' ]; then > ++ echo "graph_title $INTERFACE (${DESCR}) Errors & Collisions" > ++ else > ++ echo "graph_title $INTERFACE Errors & Collisions" > ++ fi > + echo 'graph_args --base 1000' > + echo 'graph_vlabel events / ${graph_period}' > + echo 'graph_category network' > +@@ -57,25 +63,15 @@ if [ "$1" = "config" ]; then > exit 0 > fi; > > Index: net/munin/patches/patch-plugins_node_d_openbsd_if_packets__in > =================================================================== > RCS file: /data/repos/openbsd-cvs/ports/net/munin/patches/patch-plugins_node_d_openbsd_if_packets__in,v > diff -u -p -r1.3 patch-plugins_node_d_openbsd_if_packets__in > --- net/munin/patches/patch-plugins_node_d_openbsd_if_packets__in 11 Mar 2022 19:46:25 -0000 1.3 > +++ net/munin/patches/patch-plugins_node_d_openbsd_if_packets__in 11 Nov 2025 12:52:05 -0000 > @@ -1,7 +1,15 @@ > Index: plugins/node.d.openbsd/if_packets_.in > --- plugins/node.d.openbsd/if_packets_.in.orig > +++ plugins/node.d.openbsd/if_packets_.in > -@@ -37,7 +37,7 @@ if [ "$1" = "suggest" ]; then > +@@ -31,13 +31,15 @@ if [ "$1" = "autoconf" ]; then > + fi > + fi > + > ++DESCR=$(/sbin/ifconfig ${INTERFACE} | /usr/bin/awk -F ': ' '/description:(.*)$/ {print substr($2, 1, 12);}') > ++ > + if [ "$1" = "suggest" ]; then > + if [ -x /sbin/ifconfig ] > + then > ifconfig -l | sed -Ee 's/[[:<:]](pfsync|faith|pf(log|sync)|lo|plip|carp|enc|fwe)[^ ]*//g' | xargs -n 1 echo > exit 0 > elif [ -x /usr/bin/netstat ]; then > @@ -10,7 +18,20 @@ Index: plugins/node.d.openbsd/if_packets > exit 0 > else > exit 1 > -@@ -69,9 +69,9 @@ fi > +@@ -47,7 +49,11 @@ fi > + if [ "$1" = "config" ]; then > + > + echo "graph_order rpackets opackets" > +- echo "graph_title $INTERFACE pps" > ++ if [ "X${DESCR}" != 'X' ]; then > ++ echo "graph_title $INTERFACE (${DESCR}) pps" > ++ else > ++ echo "graph_title $INTERFACE pps" > ++ fi > + echo 'graph_args --base 1000' > + echo 'graph_vlabel packets per ${graph_period} in (-) / out (+)' > + echo 'graph_category network' > +@@ -69,9 +75,9 @@ fi > if [ "$INTERFACE" = "aggregated" ]; then > /usr/bin/netstat -i -b -n | grep -v '^lo' | awk ' > BEGIN { rsum = 0; osum = 0; } > @@ -23,7 +44,7 @@ Index: plugins/node.d.openbsd/if_packets > } else if (NF == 11) { > if ($4 ~ /:/) { > rsum += $5; osum += $8; > -@@ -79,7 +79,7 @@ BEGIN { rsum = 0; osum = 0; } > +@@ -79,7 +85,7 @@ BEGIN { rsum = 0; osum = 0; } > rsum += $4; osum += $8; > } > } else { # NF == 12 > @@ -32,7 +53,7 @@ Index: plugins/node.d.openbsd/if_packets > } > } > END { > -@@ -89,10 +89,10 @@ END { > +@@ -89,10 +95,10 @@ END { > > else > /usr/bin/netstat -i -b -n -I $INTERFACE | awk ' > @@ -46,7 +67,7 @@ Index: plugins/node.d.openbsd/if_packets > } else if (NF == 11) { > if ($4 ~ /:/) { > print "rpackets.value", $5; > -@@ -103,7 +103,7 @@ else > +@@ -103,7 +109,7 @@ else > } > } else { # NF == 12 > print "rpackets.value", $5; > Index: net/munin/patches/patch-plugins_node_d_openbsd_if_pps__in > =================================================================== > RCS file: net/munin/patches/patch-plugins_node_d_openbsd_if_pps__in > diff -N net/munin/patches/patch-plugins_node_d_openbsd_if_pps__in > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ net/munin/patches/patch-plugins_node_d_openbsd_if_pps__in 11 Nov 2025 12:52:05 -0000 > @@ -0,0 +1,25 @@ > +Index: plugins/node.d.openbsd/if_pps_.in > +--- plugins/node.d.openbsd/if_pps_.in.orig > ++++ plugins/node.d.openbsd/if_pps_.in > +@@ -31,6 +31,8 @@ if [ "$1" = "autoconf" ]; then > + fi > + fi > + > ++DESCR=$(/sbin/ifconfig ${INTERFACE} | /usr/bin/awk -F ': ' '/description:(.*)$/ {print substr($2, 1, 12);}') > ++ > + if [ "$1" = "suggest" ]; then > + if [ -x /usr/bin/netstat ]; then > + netstat -i -n | sed -n -e '/^faith/d' -e '/^lo[0-9]/d' -e '/^pflog/d' -e '//s/\** .*//p' > +@@ -42,7 +44,11 @@ fi > + > + if [ "$1" = "config" ]; then > + echo "graph_order rpkt opkt" > +- echo "graph_title $INTERFACE packets" > ++ if [ "X${DESCR}" != 'X' ]; then > ++ echo "graph_title $INTERFACE (${DESCR}) packets" > ++ else > ++ echo "graph_title $INTERFACE packets" > ++ fi > + echo 'graph_args --base 1000' > + echo 'graph_vlabel packets/${graph_period} in (-) out (+)' > + echo 'graph_category network' > Index: net/munin/pkg/PLIST-main > =================================================================== > RCS file: /data/repos/openbsd-cvs/ports/net/munin/pkg/PLIST-main,v > diff -u -p -r1.27 PLIST-main > --- net/munin/pkg/PLIST-main 8 Nov 2022 11:16:58 -0000 1.27 > +++ net/munin/pkg/PLIST-main 11 Nov 2025 12:52:05 -0000 > @@ -111,6 +111,7 @@ libexec/munin/plugins/if_packets_ > libexec/munin/plugins/if_pps_ > libexec/munin/plugins/ifx_concurrent_sessions_ > libexec/munin/plugins/intr > +libexec/munin/plugins/iostat_ > @comment libexec/munin/plugins/ipac-ng > libexec/munin/plugins/ipmi_ > libexec/munin/plugins/ipmi_sensor_