How to monitor Solr performance under Tomcat.
I keep track of how many access and the performance, based on response time.
For this I have 2 scripts:

Here is the code:

#!/bin/bash
# script to check how many erros in the current hour
# Only works if your log file is in the format /var/log/tomcat6/access_log${tday2}.log
# Felipe Ferreira June 2012
# updated May/2015
dia=`date +%d -d  "1 hour ago"`
mes=`date +%b -d  "1 hour ago"`
mes2=`date +%m -d  "1 hour ago"`
ano=`date +%Y -d  "1 hour ago"`
hora=`date +%H -d  "1 hour ago"`
tday="${dia}/${mes}/${ano}:${hora}"
tday2="${ano}-${mes2}-${dia}"
if [ $# -lt 2 ]
  then
    echo "No arguments supplied"
    echo "Usage: $0    "
    echo "Example: $0 200 5 10"
    exit 1
fi
key=$1
warn=$2
crit=$3
log="/var/log/tomcat6/access_log${tday2}.log"
if [ ! -f $log ]; then
        echo "OK - File $log not found!"
        exit 0
fi
log_short=`echo $log|awk -F"/" '{ print $NF}'`
CMD="tail -n 300000 $log |grep '$tday'|grep -c ' ${key} '"
#echo $CMD
c=`eval $CMD`
if [ -z "$c" ]; then
 c=0
fi
if [ "$c" -ge "$crit" ]; then
 echo "CRITICAL - Existem $c $key no $log_short as $hora horas|count=$c"
 exit 2
elif [ "$c" -ge "$warn" ]; then
 echo "WARNING - Existem $c $key no $log_short as $hora horas|count=$c"
 exit 1
else
 echo "OK - Existem $c $key no $log_short as $hora horas|count=$c"
 exit 0
fi

here is the code for the average calculation script:

Here is the code:

#!/bin/bash
# script to check Solr performance based on Qtime of last hour
# Felipe Ferreira Set 2013
dia=`date +%d -d  "1 hour ago"`
mes=`date +%m -d  "1 hour ago"`
ano=`date +%Y -d  "1 hour ago"`
tday="${ano}-${mes}-${dia}"
#Numero de chamadas a verificar
nc=1000
log="/var/log/tomcat6/access_log${tday}.log"
if [ "$2" == "" ]
then
  echo -e "\n Syntax: $0   \nex.: $0 50 900 \n O script retoran a media do tempo das $nc ultimas chamads\n"
  exit 3
fi
warn=$1
crit=$2
CMD_SUM="tail -n $nc $log | grep ' 200 ' | awk '{ print \$( NF - 3)  }' | awk '{sum+=\$1} END { print sum }'"
#echo $CMD_SUM
sum=`eval $CMD_SUM`
#echo $sum
media=`expr $sum / $nc`
MSG=" Tempo meido de $media ms. nas ultimas $nc chamadas ao Solr|media=$media"
#echo $MSG
if [ $media -ge $crit ]; then
 echo "CRITICAL - $MSG"
 exit 2
elif [ $media -ge $warn ]; then
 echo "WARNING - $MSG"
 exit 1
else
 echo "OK - $MSG"
 exit 0
fi
Tags: , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *