Xymon Mailing List Archive search

iostatcpu & iostatdisk graphs

4 messages in this thread

list Craig Cook · Mon, 17 Jul 2006 21:48:17 -0500 ·
I have noticed in 4.2 RC there are iostat commands 
(hobbitclient-sunos.sh -> [iostatcpu] & [iostatdisk])

But there is no definition listed in hobbitgraph.cfg...

Is this a "work-in-progress"?

Thanks

Craig Cook
--
Systems Monitoring Consulting and Support Services
http://www.cookitservices.com
list Henrik Størner · Tue, 18 Jul 2006 10:11:28 +0200 ·
quoted from Craig Cook
On Mon, Jul 17, 2006 at 09:48:17PM -0500, Craig Cook wrote:
I have noticed in 4.2 RC there are iostat commands 
(hobbitclient-sunos.sh -> [iostatcpu] & [iostatdisk])

But there is no definition listed in hobbitgraph.cfg...

Is this a "work-in-progress"?
Yes. I added it to the client scripts because that way it would
be easy to use once I get the server-end adapted to use it.

Doing so will require some new logic in Hobbit to decide which
of the many sources of load-measurements to use - e.g. vmstat
or sar data could provide some of those same data. We need to
rethink how to collect and present these data.

Regards,
Henrik
list Jeff Newman · Tue, 18 Jul 2006 08:54:25 -0500 ·
I know sar was somewhat challenging to implement here.

First, the lowest interval I could achieve was 2 seconds (but thats
just my craziness) so this would apply even to 5 minute increments.
One thing I would love by the way is still to be able to customize the

One note: I had to change the perms on sar to allow hobbit to run it
(/usr/lib/sa/sa1 and sa2 on AIX)

The first piece was a client script like this:

while read aline; do
CPUNUM=`echo $aline | awk '{print $1}'`
PUSR=`echo $aline | awk '{print $2}'`
PSYS=`echo $aline | awk '{print $3}'`
PWIO=`echo $aline | awk '{print $4}'`
PIDL=`echo $aline | awk '{print $5}'`

echo "cpu"$CPUNUM"pcntusr: $PUSR" >> /tmp/hobbit_sar"$CPUNUM".msg
echo "cpu"$CPUNUM"pcntsys: $PSYS" >> /tmp/hobbit_sar"$CPUNUM".msg
echo "cpu"$CPUNUM"pcntwio: $PWIO" >> /tmp/hobbit_sar"$CPUNUM".msg
echo "cpu"$CPUNUM"pcntidl : $PIDL" >> /tmp/hobbit_sar"$CPUNUM".msg


$BB $BBDISP "status $MACHINE.sar green `date`
`cat /tmp/hobbit_sar"$CPUNUM".msg`
"
rm /tmp/hobbit_sar"$CPUNUM".msg
done < /tmp/hobbit_sar.tmp
rm /tmp/hobbit_sar.tmp


The second piece was the server side script:

if [ "$TESTNAME" = "sar" ] ; then

         NUM=`cat $FNAME | grep cpu | head -1 | cut -c 4`
         if [ $NUM -eq 1 ] ; then
            NEXT=`cat $FNAME | grep cpu | head -1 | cut -c 5`
            if [ $NEXT != "p" ] ; then
               NUM=`cat $FNAME | grep cpu | head -1 | cut -c 4-5`
            fi
         fi

         USR=`grep pcntusr $FNAME | awk -F: '{print $2}'`
         SYS=`grep pcntsys $FNAME | awk -F: '{print $2}'`
         WIO=`grep pcntwio $FNAME | awk -F: '{print $2}'`
         IDL=`grep pcntidl $FNAME | awk -F: '{print $2}'`
         echo "DS:cpu"$NUM"pcntusr:GAUGE:3:0:U"
         echo "DS:cpu"$NUM"pcntsys:GAUGE:3:0:U"
         echo "DS:cpu"$NUM"pcntwio:GAUGE:3:0:U"
         echo "DS:cpu"$NUM"pcntidl:GAUGE:3:0:U"
         if [ $NUM -eq 0 ] ; then
            NUM=00
         fi
         if [ $NUM -eq 1 ] ; then
            NUM=01
         fi
         if [ $NUM -eq 2 ] ; then
            NUM=02
         fi
         if [ $NUM -eq 3 ] ; then
            NUM=03
         fi
         if [ $NUM -eq 4 ] ; then
            NUM=04
         fi
         if [ $NUM -eq 5 ] ; then
            NUM=05
         fi
         if [ $NUM -eq 6 ] ; then
            NUM=06
         fi
         if [ $NUM -eq 7 ] ; then
            NUM=07
         fi
         if [ $NUM -eq 8 ] ; then
            NUM=08
         fi
         if [ $NUM -eq 9 ] ; then
            NUM=09
         fi
         echo "sar,cpu"$NUM".rrd"
         echo "$USR:$SYS:$WIO:$IDL"

fi

The reason for the number conversion had to do with the way
the charts appeared. sar,cpu1.rrd, sar,cpu10.rrd acts differently than
sar,cpu01.rrd and sar,cpu10.

Then i needed a hobbit graph definition:

        FNPATTERN sar,(.*).rrd
        TITLE CPU sar
        YAXIS %
        DEF:usr at RRDIDX@=@RRDFN@:cpu at RRDIDX@pcntusr:AVERAGE
        DEF:sys at RRDIDX@=@RRDFN@:cpu at RRDIDX@pcntsys:AVERAGE
        DEF:wio at RRDIDX@=@RRDFN@:cpu at RRDIDX@pcntwio:AVERAGE
        DEF:idl at RRDIDX@=@RRDFN@:cpu at RRDIDX@pcntidl:AVERAGE
        -u 100
        -l 0
        -r
        -E
        -Y
        AREA:usr at RRDIDX@#0000FF:cpu at RRDIDX@pcntusr
        GPRINT:usr at RRDIDX@:LAST: \: %5.1lf (cur)
        GPRINT:usr at RRDIDX@:MAX: \: %5.1lf (max)
        GPRINT:usr at RRDIDX@:MIN: \: %5.1lf (min)
        GPRINT:usr at RRDIDX@:AVERAGE: \: %5.1lf (avg)\n
        STACK:sys at RRDIDX@#FF0000:cpu at RRDIDX@pcntsys
        GPRINT:sys at RRDIDX@:LAST: \: %5.1lf (cur)
        GPRINT:sys at RRDIDX@:MAX: \: %5.1lf (max)
        GPRINT:sys at RRDIDX@:MIN: \: %5.1lf (min)
        GPRINT:sys at RRDIDX@:AVERAGE: \: %5.1lf (avg)\n
        STACK:wio at RRDIDX@#800080:cpu at RRDIDX@pcntwio
        GPRINT:wio at RRDIDX@:LAST: \: %5.1lf (cur)
        GPRINT:wio at RRDIDX@:MAX: \: %5.1lf (max)
        GPRINT:wio at RRDIDX@:MIN: \: %5.1lf (min)
        GPRINT:wio at RRDIDX@:AVERAGE: \: %5.1lf (avg)\n
        STACK:idl at RRDIDX@#008000:cpu at RRDIDX@pcntidl
        GPRINT:idl at RRDIDX@:LAST: \: %5.1lf (cur)
        GPRINT:idl at RRDIDX@:MAX: \: %5.1lf (max)
        GPRINT:idl at RRDIDX@:MIN: \: %5.1lf (min)
        GPRINT:idl at RRDIDX@:AVERAGE: \: %5.1lf (avg)\n

Then I added "sar" to TEST2RRD in hobbitserver.cfg, as well as: "sar::1"
in the graphs.

Because I wanted things at a certain interval, I hand-created the rrd's for
each server (depending on the number of CPU's):


/usr/local/rrdtool/bin/rrdtool create sar,cpu00.rrd --step 2 \
 DS:cpu0pcntwio:GAUGE:3:0:U \
 DS:cpu0pcntsys:GAUGE:3:0:U \
 DS:cpu0pcntusr:GAUGE:3:0:U \
 DS:cpu0pcntidl:GAUGE:3:0:U \
 RRA:AVERAGE:0.5:1:86400 \
 RRA:AVERAGE:0.5:6:86400 \
 RRA:AVERAGE:0.5:24:86400 \
 RRA:AVERAGE:0.5:288:86400
<etc etc etc... for each cpu>


That's what I had to do to get sar stuff working here. Of course, I probably
did it some wacky way because of the --step I needed.

-Jeff
quoted from Henrik Størner


On 7/18/06, Henrik Stoerner <user-ce4a2c883f75@xymon.invalid> wrote:
On Mon, Jul 17, 2006 at 09:48:17PM -0500, Craig Cook wrote:
I have noticed in 4.2 RC there are iostat commands
(hobbitclient-sunos.sh -> [iostatcpu] & [iostatdisk])

But there is no definition listed in hobbitgraph.cfg...

Is this a "work-in-progress"?
Yes. I added it to the client scripts because that way it would
be easy to use once I get the server-end adapted to use it.

Doing so will require some new logic in Hobbit to decide which
of the many sources of load-measurements to use - e.g. vmstat
or sar data could provide some of those same data. We need to
rethink how to collect and present these data.

Regards,
Henrik

list Scott Walters · Sun, 23 Jul 2006 13:49:23 -0400 (EDT) ·
quoted from Jeff Newman
On Tue, 18 Jul 2006, (Henrik Stoerner) wrote:
Doing so will require some new logic in Hobbit to decide which
of the many sources of load-measurements to use - e.g. vmstat
or sar data could provide some of those same data. We need to
rethink how to collect and present these data.
Something to keep in mind, vmstat does not take into account wait for IO,
whereas sar generally does.

If you have both sar and vmstat, prefer sar.  I wouldn't mix vmstat
"%busy" with sar "%busy".  You'd probably be better off with two seperate
rrds for vmstat and sar cpu info.

sar is usually not activiated by default, and is not always installed.
But it's great if you have it.

PS - You want to collect sar with 300 second samples just like vmstat.  A
two second sample interval would require a lot of modification on the
server side to create and display rrds with that granularity.

-- 
Scott Walters
-PacketPusher