On 1/23/26 12:09 PM, Olivier Cherrier wrote:
On 1/22/26 5:01 PM, Job Snijders wrote:
On Wed, 14 Jan 2026 at 16:31, Job Snijders <[email protected] <mailto:[email protected]>> wrote:

    Anyway, I'm not sure we should keep both 'iostat_' and 'iostat'
    around (since
    they are intended do the same thing)



How shall we proceed?

Kind regards,

Job


    Hi,

Please find attached a patch to bump net/munin with the new iostat plugin.
Since new file, iostat is not in the diff. It needs to be cvs added manually into "files".
iostat_ one can be delete from the tree.

Is it ok ?

Thanks,
Best.

Olivier Cherrier
Phone: +352691570680
mailto:[email protected]

Index: net/munin/Makefile
===================================================================
RCS file: /data/repos/openbsd-cvs/ports/net/munin/Makefile,v
diff -u -r1.122 Makefile
--- net/munin/Makefile	17 Nov 2025 07:01:24 -0000	1.122
+++ net/munin/Makefile	24 Jan 2026 17:57:07 -0000
@@ -9,7 +9,7 @@
 PKGNAME-main =	munin-node-${GH_TAGNAME}
 PKGNAME-server =munin-server-${GH_TAGNAME}
 CATEGORIES =	net
-REVISION =	0
+REVISION =	1
 
 HOMEPAGE =	https://munin-monitoring.org/
 
@@ -73,7 +73,7 @@
 			DOCDIR=${WRKINST}/${PREFIX}/share/doc/munin \
 			CONFDIR=${WRKINST}/${PREFIX}/share/examples/munin
 
-MUNIN_PLUGINS =		bgpd if_pps_ intr iostat_ pf_changes pf_searches \
+MUNIN_PLUGINS =		bgpd if_pps_ intr iostat pf_changes pf_searches \
 			pf_states sensors_ vmstat
 
 .for i in ${MUNIN_PLUGINS}
@@ -86,7 +86,6 @@
 	cp -p ${WRKSRC}/plugins/node.d.netbsd/memory.in ${WRKSRC}/plugins/node.d.openbsd
 	${SUBST_CMD} -m 444 -c ${SUBST_LIST}
 	chmod -R +x ${WRKSRC}/plugins/node.d.openbsd
-	rm ${WRKSRC}/plugins/node.d.openbsd/iostat.in # not yet ported
 	rm ${WRKSRC}/plugins/node.d.openbsd/swap.in # we have no in/out fields
 
 # Fixup hardcoded paths in plugins to use TRUEPREFIX/LOCALBASE as appropriate,
Index: net/munin/pkg/PLIST-main
===================================================================
RCS file: /data/repos/openbsd-cvs/ports/net/munin/pkg/PLIST-main,v
diff -u -r1.28 PLIST-main
--- net/munin/pkg/PLIST-main	17 Nov 2025 07:01:25 -0000	1.28
+++ net/munin/pkg/PLIST-main	24 Jan 2026 17:57:07 -0000
@@ -111,7 +111,7 @@
 libexec/munin/plugins/if_pps_
 libexec/munin/plugins/ifx_concurrent_sessions_
 libexec/munin/plugins/intr
-libexec/munin/plugins/iostat_
+libexec/munin/plugins/iostat
 @comment libexec/munin/plugins/ipac-ng
 libexec/munin/plugins/ipmi_
 libexec/munin/plugins/ipmi_sensor_
#!/bin/sh
# -*- sh -*-
# Copyright (c) 2026 Job Snijders <[email protected]>
#
# Permission to use, copy, modify, and distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#
# Munin multigraph plugin to monitor disk activity on OpenBSD systems.
#
# Magic markers:
#
#%# family=auto
#%# capabilities=autoconf

if [ "$1" = "autoconf" ]; then
        if [ -x /usr/sbin/iostat -a -x /sbin/sysctl ]; then
                echo yes
                exit 0
        else
                echo no
                exit 0
        fi
fi

DISKS=$(/sbin/sysctl hw.disknames \
        | /usr/bin/cut -d= -f2 | /usr/bin/tr ',' '\n' \
        | /usr/bin/grep -v ':$' | /usr/bin/cut -d: -f1)

if [ "$1" = "config" ]; then
        echo 'multigraph iostat_throughput'
        echo 'graph_title Disk throughput per device'
        echo 'graph_args --base 1024'
        echo 'graph_vlabel Bytes/${graph_period}'
        echo 'graph_category disk'
        echo 'graph_info This graph shows averaged throughput in bytes per 
device.'
        echo ''

        for DISK in ${DISKS}; do
                echo "${DISK}_kb.label $DISK"
                echo "${DISK}_kb.cdef ${DISK}_kb,1024,*"
                echo "${DISK}_kb.type DERIVE"
                echo "${DISK}_kb.min 0"
                echo "${DISK}_kb.draw LINE1"
                echo ''
        done

        for DISK in ${DISKS}; do
                echo "multigraph iostat_throughput.${DISK}"
                echo "graph_title Disk throughput for ${DISK}"
                echo 'graph_args --base 1024'
                echo 'graph_category disk'
                echo 'graph_info This graph shows disk throughput in bytes.'
                echo ''
                echo 'kb.label Bytes'
                echo 'kb.cdef kb,1024,*'
                echo 'kb.type DERIVE'
                echo 'kb.min 0'
                echo 'kb.draw LINE1'
                echo ''
        done

        echo 'multigraph iostat_iops'
        echo 'graph_title Disk IOs per device'
        echo 'graph_vlabel IOs/${graph_period}'
        echo 'graph_args --base 1000'
        echo 'graph_category disk'
        echo 'graph_info This graph shows averaged IO operations per device.'
        echo ''

        for DISK in ${DISKS}; do
                echo "${DISK}_xfr.label ${DISK}"
                echo "${DISK}_xfr.type DERIVE"
                echo "${DISK}_xfr.min 0"
                echo "${DISK}_xfr.draw LINE1"
                echo ''
        done

        for DISK in ${DISKS}; do
                echo "multigraph iostat_iops.${DISK}"
                echo "graph_title Disk IOs for ${DISK}"
                echo 'graph_args --base 1000'
                echo 'graph_category disk'
                echo 'graph_info This graph shows the number of IOPS.'
                echo ''
                echo 'xfr.label IO/sec'
                echo 'xfr.type DERIVE'
                echo 'xfr.min 0'
                echo 'xfr.draw LINE1'
                echo ''
        done

        # TODO: implement tracking IO busy as a percentage.
        # To convert 'Seconds spent in disk activity' into a busy percentage, 
state
        # tracking via $MUNIN_PLUGSTATE or $MUNIN_STATEFILE should be 
implemented.
        # CDEF $cur,$prev,-,300,/,100,*

        exit 0
fi

echo 'multigraph iostat_throughput'
for DISK in $DISKS; do
        echo -n "${DISK}_kb.value "
        /usr/sbin/iostat -ID "${DISK}" | tail -1 | /usr/bin/awk '{ print $1 }'
done
echo ''

echo 'multigraph iostat_iops'
for DISK in $DISKS; do
        echo -n "${DISK}_xfr.value "
        /usr/sbin/iostat -ID "${DISK}" | tail -1 | /usr/bin/awk '{ print $2 }'
done
echo ''

for DISK in ${DISKS}; do
        /usr/sbin/iostat -ID "${DISK}" | tail -1 | /usr/bin/awk '
        {
                print "multigraph iostat_throughput.@DISK@";
                print "kb.value", $1;
                print "";
                print "multigraph iostat_iops.@DISK@";
                print "xfr.value", $2;
                print "";
        }' | /usr/bin/sed "s/@DISK@/${DISK}/"
done

Reply via email to