#!/usr/bin/env bash set -eo pipefail this=`basename $0` this_dir=`dirname $0` show_help() { cat << EOF Usage: $this [-a APPLICATION_NAME] Aggregate the results from the specified application and plot the result. -a APPLICATION_NAME run the pods with APPLICATION_NAME application. APPLICATION_NAME can be one of parsec or cloverleaf. EOF } if [ $# -eq 0 ] then show_help exit 1 fi app="parsec" OPTIND=1 options="ha:" while getopts $options option do case $option in a) if [ "$OPTARG" == "parsec" ] || [ "$OPTARG" == "cloverleaf" ] then app=$OPTARG else echo "Invalid application name." show_help exit 0 fi ;; h) show_help exit 0 ;; '?') show_help exit 1 ;; esac done for i in {1..10} do kubectl logs -f demo-$app-$i-wo-discovery | grep real | cut -f2 | sed -e "s/m/*60+/" -e "s/s//" | bc >> temp.log done paste <(cat labels-without-discovery-$app.log) <(cat temp.log) > performance.log rm -f temp.log labels-without-discovery-$app.log for i in {1..10} do kubectl logs -f demo-$app-$i-with-discovery | grep real | cut -f2 | sed -e "s/m/*60+/" -e "s/s//" | bc >> temp.log done paste <(cat labels-with-discovery-$app.log) <(cat temp.log) >> performance.log rm -f temp.log labels-with-discovery-$app.log minimum=$(awk 'min=="" || $2 < min {min=$2} END {print min}' performance.log) awk -v min=$minimum '{print $1,((($2/min)*100))-100}' performance.log > performance-norm.log "$this_dir/box-plot.R" performance.log performance-comparison-$app.pdf "$this_dir/box-plot-norm.R" performance-norm.log performance-comparison-$app-norm.pdf "$this_dir/clean-up.sh" -a $app