From 6b758e202d5382b31f357844eb289dfd891e69f2 Mon Sep 17 00:00:00 2001 From: Simon Belmas <22192134+simbelmas@users.noreply.github.com> Date: Fri, 28 Jun 2024 14:22:36 +0200 Subject: [PATCH] enhance stats generation script to ease post processing --- README.md | 2 +- analyse.sh | 37 ++++++++++++++++++++++++++----------- 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index d8a4ab2..649c4ae 100644 --- a/README.md +++ b/README.md @@ -24,4 +24,4 @@ analyse.sh {ingress fqdn} [keep_results] Option *keep_results* does not ovewrite file on startup. -Information is displayed in csv format: date (epoch) | request total time | response http code | page successfully reached (0/1) | response conntent \ No newline at end of file +Information is displayed in csv format: "Date (Epoch)";"Request duration";"HTTP Response code";"App availability";"Event";"Response content" \ No newline at end of file diff --git a/analyse.sh b/analyse.sh index 537a3a6..5842a7c 100755 --- a/analyse.sh +++ b/analyse.sh @@ -2,6 +2,7 @@ # This script asserts that init.sh workload script is left as is. +date_format='+%s' script_dir=$(dirname $(readlink -f ${0})) results_file=${script_dir}/analyse_results.csv @@ -14,13 +15,6 @@ else analyse_url=${1} fi -if [[ "${2}" == "keep_results" ]] ; then - keep_results=true -else - keep_results=false - echo '' > ${results_file} -fi - cleanup() { if [ -e "${tmp_headers_file}" ] ; then rm -v ${tmp_headers_file} @@ -28,16 +22,37 @@ cleanup() { echo Ingress statistics can be viewed in ${results_file} } -echo Launching test, press CTRL+C to exit +insert_event () { + insert_date=$(date ${date_format}) + echo "${insert_date};;;;2;\"Event from SIGUSR1\"" | tee -a ${results_file} +} -# Defining cleannup onn sigint +# Signnals handling trap cleanup 2 +trap insert_event 30 +# Explanations +echo Process id to send signal is $$ +echo To insert event in log, send SIGUSR1 to $$ +echo following command cann be used: kill -s SIGUSR1 $$ +echo +echo Launching test, press CTRL+C to exit +echo + +# Result file handling +if [[ "${2}" == "keep_results" ]] ; then + keep_results=true +else + keep_results=false + echo '"Date (Epoch)";"Request duration";"HTTP Response code";"App availability";"Event";"Response content"' | tee ${results_file} +fi + +# Statistics generation while true ; do - request_date=$(date '+%s') + request_date=$(date ${date_format}) request_data="$(curl -m 2 -s -w "%output{$tmp_headers_file}%{time_total};%{http_code}" -k "${analyse_url}" | tr -d "\r" |tr -d "\n" | tr -d ";")" request_headers=$(cat ${tmp_headers_file}) response_success=$( [[ "$(echo ${request_headers} | cut -f2 -d';')" == "200" ]] && echo 1 || echo 0) - echo "${request_date};${request_headers};${response_success};${request_data}" | tee -a ${results_file} + echo "${request_date};${request_headers};${response_success};;\"${request_data}\"" | tee -a ${results_file} sleep 1 done \ No newline at end of file