[hobbit] http response time
Ralph Mitchell
ralphmitchell at gmail.com
Fri May 9 22:45:17 CEST 2008
On Thu, May 8, 2008 at 10:11 AM, Ralph Mitchell <ralphmitchell at gmail.com>
wrote:
> On Thu, May 8, 2008 at 1:01 AM, Rolf Schrittenlocher <
> schritte at hebis.uni-frankfurt.de> wrote:
>
>> Hi Ralph,
>>
>> I don't think there is something like that in hobbit. But you might want
>> to create a custom script including something like (perl)
>>
>> # Aktuelles Datum
>> $t0 = time;
>> $ZEITSTEMPEL = localtime($t0);
>>
>> ##################################################################
>> # Check Website
>> ##################################################################
>> #
>> system("wget -o /dev/null -O /tmp/ \"$REQUEST\" 2>/dev/null");
>>
>> # Bestimmung des Ergebnissstatuses aus der Antwortzeit.
>> $elapsed = time - $t0;
>> if ( $elapsed <= 6 ){
>> $STATUS = $OPTIMAL;
>> }
>> elsif ( $elapsed <= 12 ){
>> $STATUS = $WARNUNG;
>> }
>> else {
>> $STATUS = $FEHLER;
>> }
>
>
> Thanks for that. If I have to I'll do something similar in bash with curl,
> as I'm more familiar with that:
>
> elapsed=`curl -s -S -L -w '%{time_total}' http://server.domain.com`
>
> which gives me time in seconds, with millisecond resolution.
>
> I'd like to get the graphs as well, without having to fiddle with the
> message format.
>
> Ralph Mitchell
>
OK, so it wasn't as hard as I thought to replicate the http built-in test.
This script does everything I need right now, though it could do with
refining:
#!/bin/bash
# Format in bb-hosts: 1.2.3.4 server.domain.com # httpplus:warn:alert
# warn and alert values are expressed in milliseconds, just because we can
bbhostgrep httpplus\* | while read line
do
set $line
TESTHOST=$2
httpplus=`echo $line | $SED -e 's/^.* httpplus://' -e 's/ .*//' -e 's/:/
/g'`
set $httpplus
WARNVAL=$1
ALERTVAL=$2
URL="http://$TESTHOST/"
res=`/usr/bin/curl -I -s -S -w 'Seconds:\t%{time_total}' $URL`
ret=$?
elapsed=`echo "$res" | $GREP Seconds: | $SED -e 's/^.* //'`
elapsed=`echo $elapsed \* 1000 | /usr/bin/bc | $SED -e 's/\..*//'`
if [ "$elapsed" -gt "$ALERTVAL" ]; then
COLOR=red
STATUS="Server too slow"
elif [ "$elapsed" -gt "$WARNVAL" ]; then
COLOR=yellow
STATUS="Server response degraded"
else
COLOR=green
STATUS="OK"
fi
MACHINE=`echo $TESTHOST | $SED -e 's/\./,/g'`
LINE="status $MACHINE.http $COLOR `date`: $STATUS
&$COLOR $URL - $STATUS
$res
WARN at ${WARNVAL}ms, ALERT at ${ALERTVAL}ms"
$BB $BBDISP "$LINE"
done
It assumes that it's OK to use the hostname field for the url, and picks up
the WARN and ALERT times from the "httpplus" tag in the bb-hosts file. It
also ignores any curl errors, such as timeout due to the server not
responding.
Ralph Mitchell
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.xymon.com/pipermail/xymon/attachments/20080509/b9a7fb75/attachment.html>
More information about the Xymon
mailing list