Newer
Older
# Kieker specific functions
# ensure the script is sourced
if [ "${BASH_SOURCE[0]}" -ef "$0" ]
then
echo "Hey, you should source this script, not execute it!"
exit 1
fi
info "Checking whether Kieker is present in ${AGENT}"
if [ ! -f "${AGENT}" ] ; then
# get agent
export VERSION_PATH=`curl "https://oss.sonatype.org/service/local/repositories/snapshots/content/net/kieker-monitoring/kieker/" | grep '<resourceURI>' | sed 's/ *<resourceURI>//g' | sed 's/<\/resourceURI>//g' | grep '/$' | grep -v ".xml" | head -n 1`
export AGENT_PATH=`curl "${VERSION_PATH}" | grep 'aspectj.jar</resourceURI' | sort | sed 's/ *<resourceURI>//g' | sed 's/<\/resourceURI>//g' | tail -1`
curl "${AGENT_PATH}" > "${AGENT}"
error "Kieker download from $AGENT_PATH failed; please asure that a correct Kieker AspectJ file is present!"
fi
fi
}
#################################
# function: execute an experiment
#
# $1 = i iterator
# $2 = j iterator
# $3 = k iterator
# $4 = title
# $5 = writer parameters
function executeExperiment() {
loop="$1"
recursion="$2"
index="$3"
title="$4"
kieker_parameters="$5"
echo " # ${loop}.${recursion}.${index} ${title}" >> "${DATA_DIR}/kieker.log"
if [ "${kieker_parameters}" == "" ] ; then
export BENCHMARK_OPTS="${JAVA_ARGS}"
export BENCHMARK_OPTS="${JAVA_ARGS} ${LTW_ARGS} ${KIEKER_ARGS} ${kieker_parameters}"
--application moobench.application.MonitoredClassSimple \
--output-filename "${RAWFN}-${loop}-${recursion}-${index}.csv" \
--total-calls "${TOTAL_NUM_OF_CALLS}" \
--method-time "${METHOD_TIME}" \
--total-threads 1 \
--recursion-depth "${recursion}" &> "${RESULTS_DIR}/output_${loop}_${RECURSION_DEPTH}_${index}.txt"
rm -rf "${DATA_DIR}"/kieker-*
[ -f "${DATA_DIR}/hotspot.log" ] && mv "${DATA_DIR}/hotspot.log" "${RESULTS_DIR}/hotspot-${loop}-${recursion}-${index}.log"
echo >> "${DATA_DIR}/kieker.log"
echo >> "${DATA_DIR}/kieker.log"
sync
sleep "${SLEEP_TIME}"
}
function executeBenchmarkBody() {
index="$1"
loop="$2"
recursion="$3"
if [[ "${RECEIVER[$index]}" ]] ; then
${RECEIVER[$index]} >> "${DATA_DIR}/kieker.receiver-${loop}-${index}.log" &
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
fi
executeExperiment "$loop" "$recursion" "$index" "${TITLE[$index]}" "${WRITER_CONFIG[$index]}"
if [[ "${RECEIVER_PID}" ]] ; then
kill -TERM "${RECEIVER_PID}"
unset RECEIVER_PID
fi
}
## Execute Benchmark
function executeBenchmark() {
for ((loop=1;loop<="${NUM_OF_LOOPS}";loop+=1)); do
recursion="${RECURSION_DEPTH}"
info "## Starting iteration ${loop}/${NUM_OF_LOOPS}"
echo "## Starting iteration ${loop}/${NUM_OF_LOOPS}" >> "${DATA_DIR}/kieker.log"
for ((index=0;index<${#WRITER_CONFIG[@]};index+=1)); do
executeBenchmarkBody $index $loop $recursion
done
printIntermediaryResults
done
mv "${DATA_DIR}/kieker.log" "${RESULTS_DIR}/kieker.log"
[ -f "${RESULTS_DIR}/hotspot-1-${RECURSION_DEPTH}-1.log" ] && grep "<task " "${RESULTS_DIR}"/hotspot-*.log > "${RESULTS_DIR}/log.log"
[ -f "${DATA_DIR}/errorlog.txt" ] && mv "${DATA_DIR}/errorlog.txt" "${RESULTS_DIR}"
}
# end