#!/bin/bash
CALAMARIS_COMMAND=/usr/local/calamaris/calamaris
:<< _EOF

This script generates a real time analysis of traffic by parsing access.log with calamaris script
This Script can be used as an External Parser with SafeSquid
_EOF

SAMPLING=1000000
LOG_FILE=/opt/safesquid/safesquid/logs/access/access.log

REPORT_UPTO=`date +%Y%m%d%H%M%S`
REPORT_SINCE=`date --date="4 hour ago" +%Y%m%d%H%M%S`
CACHE_FILE=/var/www/html/calamaris/calamaris-cache

# define the output parameters
FORMAT=$1
:<< _COM 
        mail        = mail format, disables graph output.
        html        = HTML format
        html-frame  = HTML frames, disables mail output.
        html-embed  = HTML format without HTML-headers.
        graph       = enable graphics, needs GD::Graph, only useful with html
                      or html-embed, see --output-path. Disables mail output.
        unformatted = plain unformatted output
_COM


SET_PARAMS ()
	{
	# set all the parameters as arguments to CALAMARIS_COMMAND
	[ "x${FORMAT}" != "x" ] && CALAMARIS_COMMAND=`echo ${CALAMARIS_COMMAND} -F ${FORMAT}`
	CALAMARIS_COMMAND=`echo ${CALAMARIS_COMMAND}  --time-interval ${REPORT_SINCE}-${REPORT_UPTO}`
#	[ -f ${CACHE_FILE} ] &&	CALAMARIS_COMMAND=`echo ${CALAMARIS_COMMAND}  --cache-input-file ${CACHE_FILE}`
#	CALAMARIS_COMMAND=`echo ${CALAMARIS_COMMAND}  --cache-output-file ${CACHE_FILE}`
	CALAMARIS_COMMAND=`echo ${CALAMARIS_COMMAND}  --output-format 'html'`
	CALAMARIS_COMMAND=`echo ${CALAMARIS_COMMAND}  --domain-report -1`
	CALAMARIS_COMMAND=`echo ${CALAMARIS_COMMAND}  --domain-report-n-level -1`
	CALAMARIS_COMMAND=`echo ${CALAMARIS_COMMAND}  --errorcode-distribution-report`
	CALAMARIS_COMMAND=`echo ${CALAMARIS_COMMAND}  --peak-report new`
	CALAMARIS_COMMAND=`echo ${CALAMARIS_COMMAND}  --performance-report 1`
	CALAMARIS_COMMAND=`echo ${CALAMARIS_COMMAND}  --requester-report -1`
	CALAMARIS_COMMAND=`echo ${CALAMARIS_COMMAND}  --requester-report-use-user-info`
	CALAMARIS_COMMAND=`echo ${CALAMARIS_COMMAND}  --requester-report-with-targets -1`
	CALAMARIS_COMMAND=`echo ${CALAMARIS_COMMAND}  --response-time-report`
	CALAMARIS_COMMAND=`echo ${CALAMARIS_COMMAND}  --size-distribution-report 10`
	CALAMARIS_COMMAND=`echo ${CALAMARIS_COMMAND}  --status-report`
	CALAMARIS_COMMAND=`echo ${CALAMARIS_COMMAND}  --type-report 50`
	CALAMARIS_COMMAND=`echo ${CALAMARIS_COMMAND}  --type-report-ignore-case`
	CALAMARIS_COMMAND=`echo ${CALAMARIS_COMMAND}  --input-format squid`
	CALAMARIS_COMMAND=`echo ${CALAMARIS_COMMAND}  --hostname linuxha1`
	


	return;
	}





SET_PARAMS

# Tail the required number of lines and pipe it into calamaris

# tail -n ${SAMPLING} ${LOG_FILE} | ${CALAMARIS_COMMAND} -a -P 1 

# tail -n ${SAMPLING} ${LOG_FILE} | ${CALAMARIS_COMMAND} -a -P 1 -S "0,1,2.3,5,6,7,8,9,10,11,12,13,14,15,16,18,20"
tail -n ${SAMPLING} ${LOG_FILE} | ${CALAMARIS_COMMAND}

exit 0





