#!/bin/bash
if [ "$1" == 'debug'  ]; then set -x;	shift; fi
if [ "$1" == 'debug2' ]; then set -xvT;	shift; fi
####################################################
# - Looprate --
# Get average processing rate of a modules' recent
# trace file
####################################################
#------------------------
REALPATH=`realpath $0`
WHERE=`dirname $REALPATH`
ME=`basename $REALPATH`
cd $WHERE
. ../system.conf
. ../watcher.conf
. ../common.conf
. ../common.bashlib
#------------------------

if [ -z "$1" ]
then
	echo "Usage: $ME xx"
	echo "Specify which module to measure: LG, MX, MB, WB  ..."
	exit
else	TRACETOKEN=${1^^}
fi

case $TRACETOKEN in
	LG|MB|MX|WB)	FILEPAT="Watch$TRACETOKEN/Watch$TRACETOKEN.trace*"
	;;
	GE*)		FILEPAT='GeoTrack/GeoTrack.trace*'
;;
esac

eval FILES=$MASTER_PATH/modules/$FILEPAT
echo 	"-------------------------------------------------------------------------"
printf	"Watcher $REVISION - Loop rate - Top 20 for module: %s\n" $TRACETOKEN
echo 	"-------------------------------------------------------------------------"

awk '
#@include "../awklib/awklib.awk"
#@include "../awklib/statistics.awk"
@include "../api/awk/awklib.awk"
@include "../api/awk/statistics.awk"
BEGIN { 
	min_loop=10000000
	min_filt=10000000
	max_filt=max_loop=0
	count=0
	sum_loop=0
	sum_filt=0
}
#			{ if ( FNR == 1 ) print FILENAME }
/(Loop rate:)/		{	#print $0
				gsub(/[«»]/,"")
				split ($0, tim, "Loop rate:")

				print tim[2]
		#		if ( tim[1]=="" || tim[2]=="" ) next

				++count
				loop[count]=tim[2]
			}
END {
}
' $FILES | sort -rn | head -20
