Skip to content
Snippets Groups Projects
Commit 3e29b122 authored by David Georg Reichelt's avatar David Georg Reichelt
Browse files

Also unify opentelemetry measurement

parent 542046e0
No related branches found
No related tags found
No related merge requests found
...@@ -84,6 +84,7 @@ function getSum { ...@@ -84,6 +84,7 @@ function getSum {
JAVABIN="" JAVABIN=""
BASE_DIR=$(pwd) BASE_DIR=$(pwd)
RSCRIPT_PATH="../stats.csv.r"
source ../common-functions.sh source ../common-functions.sh
source labels.sh source labels.sh
......
#!/bin/bash #!/bin/bash
# This file is configured for linux instead of solaris!!!
function startZipkin {
if [ ! -d zipkin ]
then
mkdir zipkin
cd zipkin
curl -sSL https://zipkin.io/quickstart.sh | bash -s
fi
cd zipkin
java -Xmx6g -jar zipkin.jar &> zipkin.txt &
sleep 5
cd ..
}
function startJaeger { function startJaeger {
if [ ! -d jaeger-1.24.0-linux-amd64 ] if [ ! -d jaeger-1.24.0-linux-amd64 ]
...@@ -27,56 +13,56 @@ function startJaeger { ...@@ -27,56 +13,56 @@ function startJaeger {
} }
function cleanup { function cleanup {
[ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTS_DIR}hotspot-${i}-$RECURSION_DEPTH-${k}.log [ -f ${BASE_DIR}hotspot.log ] && mv ${BASE_DIR}hotspot.log ${RESULTS_DIR}hotspot-${i}-$RECURSION_DEPTH-${k}.log
echo >>${BASEDIR}opentelemetry.log echo >>${BASE_DIR}/opentelemetry.log
echo >>${BASEDIR}opentelemetry.log echo >>${BASE_DIR}/opentelemetry.log
sync sync
sleep ${SLEEP_TIME} sleep ${SLEEP_TIME}
} }
function runNoInstrumentation { function runNoInstrumentation {
# No instrumentation # No instrumentation
echo " # ${i}.$RECURSION_DEPTH.${k} No instrumentation" echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]}
echo " # ${i}.$RECURSION_DEPTH.${k} No instrumentation" >>${BASEDIR}opentelemetry.log echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} >>${BASE_DIR}/opentelemetry.log
${JAVABIN}java ${JAVAARGS_NOINSTR} ${JAR} \ ${JAVABIN}java ${JAVAARGS_NOINSTR} ${JAR} \
--output-filename ${RAWFN}-${i}-$RECURSION_DEPTH-${k}.csv \ --output-filename ${RAWFN}-${i}-$RECURSION_DEPTH-${k}.csv \
--total-calls ${TOTAL_NUM_OF_CALLS} \ --total-calls ${TOTAL_NUM_OF_CALLS} \
--method-time ${METHOD_TIME} \ --method-time ${METHOD_TIME} \
--total-threads ${THREADS} \ --total-threads ${THREADS} \
--recursion-depth $RECURSION_DEPTH \ --recursion-depth $RECURSION_DEPTH \
${MOREPARAMS} &> ${RESULTS_DIR}output_"$i"_uninstrumented.txt ${MOREPARAMS} &> ${RESULTS_DIR}/output_"$i"_"$RECURSION_DEPTH"_$k.txt
} }
function runOpenTelemetryNoLogging { function runOpenTelemetryNoLogging {
# OpenTelemetry Instrumentation Logging Deactivated # OpenTelemetry Instrumentation Logging Deactivated
k=`expr ${k} + 1` k=`expr ${k} + 1`
echo " # ${i}.$RECURSION_DEPTH.${k} OpenTelemetry Instrumentation Logging Deactivated" echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]}
echo " # ${i}.$RECURSION_DEPTH.${k} OpenTelemetry Instrumentation Logging Deactivated" >>${BASEDIR}opentelemetry.log echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} >>${BASE_DIR}/opentelemetry.log
${JAVABIN}java ${JAVAARGS_OPENTELEMETRY_LOGGING_DEACTIVATED} ${JAR} \ ${JAVABIN}java ${JAVAARGS_OPENTELEMETRY_LOGGING_DEACTIVATED} ${JAR} \
--output-filename ${RAWFN}-${i}-$RECURSION_DEPTH-${k}.csv \ --output-filename ${RAWFN}-${i}-$RECURSION_DEPTH-${k}.csv \
--total-calls ${TOTAL_NUM_OF_CALLS} \ --total-calls ${TOTAL_NUM_OF_CALLS} \
--method-time ${METHOD_TIME} \ --method-time ${METHOD_TIME} \
--total-threads ${THREADS} \ --total-threads ${THREADS} \
--recursion-depth $RECURSION_DEPTH \ --recursion-depth $RECURSION_DEPTH \
${MOREPARAMS} &> ${RESULTS_DIR}output_"$i"_opentelemetry.txt ${MOREPARAMS} &> ${RESULTS_DIR}/output_"$i"_"$RECURSION_DEPTH"_$k.txt
} }
function runOpenTelemetryLogging { function runOpenTelemetryLogging {
# OpenTelemetry Instrumentation Logging # OpenTelemetry Instrumentation Logging
k=`expr ${k} + 1` k=`expr ${k} + 1`
echo " # ${i}.$RECURSION_DEPTH.${k} OpenTelemetry Instrumentation Logging" echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]}
echo " # ${i}.$RECURSION_DEPTH.${k} OpenTelemetry Instrumentation Logging" >>${BASEDIR}opentelemetry.log echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} >>${BASE_DIR}/opentelemetry.log
${JAVABIN}java ${JAVAARGS_OPENTELEMETRY_LOGGING} ${JAR} \ ${JAVABIN}java ${JAVAARGS_OPENTELEMETRY_LOGGING} ${JAR} \
--output-filename ${RAWFN}-${i}-$RECURSION_DEPTH-${k}.csv \ --output-filename ${RAWFN}-${i}-$RECURSION_DEPTH-${k}.csv \
--total-calls ${TOTAL_NUM_OF_CALLS} \ --total-calls ${TOTAL_NUM_OF_CALLS} \
--method-time ${METHOD_TIME} \ --method-time ${METHOD_TIME} \
--total-threads ${THREADS} \ --total-threads ${THREADS} \
--recursion-depth $RECURSION_DEPTH \ --recursion-depth $RECURSION_DEPTH \
${MOREPARAMS} &> ${RESULTS_DIR}output_"$i"_opentelemetry_logging.txt ${MOREPARAMS} &> ${RESULTS_DIR}/output_"$i"_"$RECURSION_DEPTH"_$k.txt
if [ ! "$DEBUG" = true ] if [ ! "$DEBUG" = true ]
then then
echo "DEBUG is $DEBUG, deleting opentelemetry logging file" echo "DEBUG is $DEBUG, deleting opentelemetry logging file"
rm ${RESULTS_DIR}output_"$i"_opentelemetry_logging.txt rm ${RESULTS_DIR}/output_"$i"_"$RECURSION_DEPTH"_$k.txt
fi fi
} }
...@@ -84,15 +70,15 @@ function runOpenTelemetryZipkin { ...@@ -84,15 +70,15 @@ function runOpenTelemetryZipkin {
# OpenTelemetry Instrumentation Zipkin # OpenTelemetry Instrumentation Zipkin
k=`expr ${k} + 1` k=`expr ${k} + 1`
startZipkin startZipkin
echo " # ${i}.$RECURSION_DEPTH.${k} OpenTelemetry Instrumentation Zipkin" echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]}
echo " # ${i}.$RECURSION_DEPTH.${k} OpenTelemetry Instrumentation Zipkin" >>${BASEDIR}opentelemetry.log echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} >>${BASE_DIR}/opentelemetry.log
${JAVABIN}java ${JAVAARGS_OPENTELEMETRY_ZIPKIN} ${JAR} \ ${JAVABIN}java ${JAVAARGS_OPENTELEMETRY_ZIPKIN} ${JAR} \
--output-filename ${RAWFN}-${i}-$RECURSION_DEPTH-${k}.csv \ --output-filename ${RAWFN}-${i}-$RECURSION_DEPTH-${k}.csv \
--total-calls ${TOTAL_NUM_OF_CALLS} \ --total-calls ${TOTAL_NUM_OF_CALLS} \
--method-time ${METHOD_TIME} \ --method-time ${METHOD_TIME} \
--total-threads ${THREADS} \ --total-threads ${THREADS} \
--recursion-depth $RECURSION_DEPTH \ --recursion-depth $RECURSION_DEPTH \
${MOREPARAMS} &> ${RESULTS_DIR}output_"$i"_opentelemetry_zipkin.txt ${MOREPARAMS} &> ${RESULTS_DIR}/output_"$i"_"$RECURSION_DEPTH"_$k.txt
stopBackgroundProcess stopBackgroundProcess
} }
...@@ -100,15 +86,15 @@ function runOpenTelemetryJaeger { ...@@ -100,15 +86,15 @@ function runOpenTelemetryJaeger {
# OpenTelemetry Instrumentation Jaeger # OpenTelemetry Instrumentation Jaeger
k=`expr ${k} + 1` k=`expr ${k} + 1`
startJaeger startJaeger
echo " # ${i}.$RECURSION_DEPTH.${k} OpenTelemetry Instrumentation Jaeger" echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]}
echo " # ${i}.$RECURSION_DEPTH.${k} OpenTelemetry Instrumentation Jaeger" >>${BASEDIR}opentelemetry.log echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} >>${BASE_DIR}/opentelemetry.log
${JAVABIN}java ${JAVAARGS_OPENTELEMETRY_JAEGER} ${JAR} \ ${JAVABIN}java ${JAVAARGS_OPENTELEMETRY_JAEGER} ${JAR} \
--output-filename ${RAWFN}-${i}-$RECURSION_DEPTH-${k}.csv \ --output-filename ${RAWFN}-${i}-$RECURSION_DEPTH-${k}.csv \
--total-calls ${TOTAL_NUM_OF_CALLS} \ --total-calls ${TOTAL_NUM_OF_CALLS} \
--method-time ${METHODTIME} \ --method-time ${METHOD_TIME} \
--total-threads ${THREADS} \ --total-threads ${THREADS} \
--recursion-depth $RECURSION_DEPTH \ --recursion-depth $RECURSION_DEPTH \
${MOREPARAMS} &> ${RESULTS_DIR}output_"$i"_opentelemetry_jaeger.txt ${MOREPARAMS} &> ${RESULTS_DIR}/output_"$i"_"$RECURSION_DEPTH"_$k.txt
stopBackgroundProcess stopBackgroundProcess
} }
...@@ -116,51 +102,25 @@ function runOpenTelemetryPrometheus { ...@@ -116,51 +102,25 @@ function runOpenTelemetryPrometheus {
# OpenTelemetry Instrumentation Prometheus # OpenTelemetry Instrumentation Prometheus
k=`expr ${k} + 1` k=`expr ${k} + 1`
startPrometheus startPrometheus
echo " # ${i}.$RECURSION_DEPTH.${k} OpenTelemetry Instrumentation Prometheus" echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]}
echo " # ${i}.$RECURSION_DEPTH.${k} OpenTelemetry Instrumentation Prometheus" >>${BASEDIR}opentelemetry.log echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} >>${BASE_DIR}/opentelemetry.log
${JAVABIN}java ${JAVAARGS_OPENTELEMETRY_PROMETHEUS} ${JAR} \ ${JAVABIN}java ${JAVAARGS_OPENTELEMETRY_PROMETHEUS} ${JAR} \
--output-filename ${RAWFN}-${i}-$RECURSION_DEPTH-${k}.csv \ --output-filename ${RAWFN}-${i}-$RECURSION_DEPTH-${k}.csv \
--total-calls ${TOTAL_NUM_OF_CALLS} \ --total-calls ${TOTAL_NUM_OF_CALLS} \
--method-time ${METHOD_TIME} \ --method-time ${METHOD_TIME} \
--total-threads ${THREADS} \ --total-threads ${THREADS} \
--recursion-depth $RECURSION_DEPTH \ --recursion-depth $RECURSION_DEPTH \
${MOREPARAMS} &> ${RESULTS_DIR}output_"$i"_opentelemetry_prometheus.txt ${MOREPARAMS} &> ${RESULTS_DIR}/output_"$i"_"$RECURSION_DEPTH"_$k.txt
stopBackgroundProcess stopBackgroundProcess
} }
function printIntermediaryResults {
echo -n "Intermediary results uninstrumented "
cat results-opentelemetry/raw-*-$RECURSION_DEPTH-0.csv | awk -F';' '{print $2}' | getSum
echo -n "Intermediary results opentelemetry Logging Deactivated "
cat results-opentelemetry/raw-*-$RECURSION_DEPTH-1.csv | awk -F';' '{print $2}' | getSum
echo -n "Intermediary results opentelemetry Logging "
cat results-opentelemetry/raw-*-$RECURSION_DEPTH-2.csv | awk -F';' '{print $2}' | getSum
echo -n "Intermediary results opentelemetry Zipkin "
cat results-opentelemetry/raw-*-$RECURSION_DEPTH-3.csv | awk -F';' '{print $2}' | getSum
MACHINE_TYPE=`uname -m`;
if [ ${MACHINE_TYPE} == 'x86_64' ]
then
echo -n "Intermediary results opentelemetry Jaeger "
cat results-opentelemetry/raw-*-$RECURSION_DEPTH-4.csv | awk -F';' '{print $2}' | getSum
# Prometheus does not work currently
#echo -n "Intermediary results opentelemetry Prometheus"
#cat results-opentelemetry/raw-*-$RECURSION_DEPTH-5.csv | awk -F';' '{print $2}' | getSum
fi
}
JAVABIN="" JAVABIN=""
RSCRIPTDIR=r/ BASE_DIR=$(pwd)
BASEDIR=./ RSCRIPT_PATH="../stats.csv.r"
RESULTS_DIR="${BASEDIR}results-opentelemetry/"
source ../common-functions.sh source ../common-functions.sh
echo "NUM_OF_LOOPS: $NUM_OF_LOOPS" source labels.sh
#MOREPARAMS="--quickstart" #MOREPARAMS="--quickstart"
MOREPARAMS="--application moobench.application.MonitoredClassSimple ${MOREPARAMS}" MOREPARAMS="--application moobench.application.MonitoredClassSimple ${MOREPARAMS}"
...@@ -173,15 +133,13 @@ echo "Cleaning and recreating '$RESULTS_DIR'" ...@@ -173,15 +133,13 @@ echo "Cleaning and recreating '$RESULTS_DIR'"
#mkdir ${RESULTS_DIR}stat/ #mkdir ${RESULTS_DIR}stat/
# Clear opentelemetry.log and initialize logging # Clear opentelemetry.log and initialize logging
rm -f ${BASEDIR}opentelemetry.log rm -f ${BASE_DIR}/opentelemetry.log
touch ${BASEDIR}opentelemetry.log touch ${BASE_DIR}/opentelemetry.log
RAWFN="${RESULTS_DIR}raw"
JAVAARGS="-server" JAVAARGS="-server"
JAVAARGS="${JAVAARGS} " JAVAARGS="${JAVAARGS} "
JAVAARGS="${JAVAARGS} -Xms1G -Xmx2G" JAVAARGS="${JAVAARGS} -Xms1G -Xmx2G"
JAVAARGS="${JAVAARGS} -verbose:gc -XX:+PrintCompilation" JAVAARGS="${JAVAARGS} -verbose:gc "
JAR="-jar MooBench.jar" JAR="-jar MooBench.jar"
checkMoobenchApplication checkMoobenchApplication
...@@ -189,34 +147,20 @@ checkMoobenchApplication ...@@ -189,34 +147,20 @@ checkMoobenchApplication
getOpentelemetryAgent getOpentelemetryAgent
JAVAARGS_NOINSTR="${JAVAARGS}" JAVAARGS_NOINSTR="${JAVAARGS}"
JAVAARGS_OPENTELEMETRY_BASIC="${JAVAARGS} -javaagent:${BASEDIR}lib/opentelemetry-javaagent-all.jar -Dotel.resource.attributes=service.name=moobench -Dotel.instrumentation.methods.include=moobench.application.MonitoredClassSimple[monitoredMethod];moobench.application.MonitoredClassThreaded[monitoredMethod]" JAVAARGS_OPENTELEMETRY_BASIC="${JAVAARGS} -javaagent:${BASE_DIR}/lib/opentelemetry-javaagent-all.jar -Dotel.resource.attributes=service.name=moobench -Dotel.instrumentation.methods.include=moobench.application.MonitoredClassSimple[monitoredMethod];moobench.application.MonitoredClassThreaded[monitoredMethod]"
JAVAARGS_OPENTELEMETRY_LOGGING_DEACTIVATED="${JAVAARGS_OPENTELEMETRY_BASIC} -Dotel.traces.exporter=logging -Dotel.traces.sampler=always_off" JAVAARGS_OPENTELEMETRY_LOGGING_DEACTIVATED="${JAVAARGS_OPENTELEMETRY_BASIC} -Dotel.traces.exporter=logging -Dotel.traces.sampler=always_off"
JAVAARGS_OPENTELEMETRY_LOGGING="${JAVAARGS_OPENTELEMETRY_BASIC} -Dotel.traces.exporter=logging" JAVAARGS_OPENTELEMETRY_LOGGING="${JAVAARGS_OPENTELEMETRY_BASIC} -Dotel.traces.exporter=logging"
JAVAARGS_OPENTELEMETRY_ZIPKIN="${JAVAARGS_OPENTELEMETRY_BASIC} -Dotel.traces.exporter=zipkin" JAVAARGS_OPENTELEMETRY_ZIPKIN="${JAVAARGS_OPENTELEMETRY_BASIC} -Dotel.traces.exporter=zipkin"
JAVAARGS_OPENTELEMETRY_JAEGER="${JAVAARGS_OPENTELEMETRY_BASIC} -Dotel.traces.exporter=jaeger" JAVAARGS_OPENTELEMETRY_JAEGER="${JAVAARGS_OPENTELEMETRY_BASIC} -Dotel.traces.exporter=jaeger"
JAVAARGS_OPENTELEMETRY_PROMETHEUS="${JAVAARGS_OPENTELEMETRY_BASIC} -Dotel.traces.exporter=prometheus" JAVAARGS_OPENTELEMETRY_PROMETHEUS="${JAVAARGS_OPENTELEMETRY_BASIC} -Dotel.traces.exporter=prometheus"
writeConfiguration
## Write configuration
uname -a >${RESULTS_DIR}configuration.txt
${JAVABIN}java ${JAVAARGS} -version 2>>${RESULTS_DIR}configuration.txt
echo "JAVAARGS: ${JAVAARGS}" >>${RESULTS_DIR}configuration.txt
echo "" >>${RESULTS_DIR}configuration.txt
echo "Runtime: circa ${TIME} seconds" >>${RESULTS_DIR}configuration.txt
echo "" >>${RESULTS_DIR}configuration.txt
echo "SLEEPTIME=${SLEEPTIME}" >>${RESULTS_DIR}configuration.txt
echo "NUM_OF_LOOPS=${NUM_OF_LOOPS}" >>${RESULTS_DIR}configuration.txt
echo "TOTAL_NUM_OF_CALLS=${TOTAL_NUM_OF_CALLS}" >>${RESULTS_DIR}configuration.txt
echo "METHODTIME=${METHODTIME}" >>${RESULTS_DIR}configuration.txt
echo "THREADS=${THREADS}" >>${RESULTS_DIR}configuration.txt
echo "RECURSION_DEPTH=${RECURSION_DEPTH}" >>${RESULTS_DIR}configuration.txt
sync
## Execute Benchmark ## Execute Benchmark
for ((i=1;i<=${NUM_OF_LOOPS};i+=1)); do for ((i=1;i<=${NUM_OF_LOOPS};i+=1)); do
k=0 k=0
echo "## Starting iteration ${i}/${NUM_OF_LOOPS}" echo "## Starting iteration ${i}/${NUM_OF_LOOPS}"
echo "## Starting iteration ${i}/${NUM_OF_LOOPS}" >>${BASEDIR}opentelemetry.log echo "## Starting iteration ${i}/${NUM_OF_LOOPS}" >>${BASE_DIR}opentelemetry.log
runNoInstrumentation runNoInstrumentation
cleanup cleanup
...@@ -237,8 +181,8 @@ for ((i=1;i<=${NUM_OF_LOOPS};i+=1)); do ...@@ -237,8 +181,8 @@ for ((i=1;i<=${NUM_OF_LOOPS};i+=1)); do
cleanup cleanup
# Prometheus does not work currently # Prometheus does not work currently
#runOpenTelemetryPrometheus runOpenTelemetryPrometheus
#cleanup cleanup
else else
echo "No 64 Bit System; skipping Prometheus" echo "No 64 Bit System; skipping Prometheus"
fi fi
...@@ -246,16 +190,15 @@ for ((i=1;i<=${NUM_OF_LOOPS};i+=1)); do ...@@ -246,16 +190,15 @@ for ((i=1;i<=${NUM_OF_LOOPS};i+=1)); do
printIntermediaryResults printIntermediaryResults
done done
# Create R labels
LABELS=$(createRLabels)
run-r
cleanup-results cleanup-results
#zip -jqr ${RESULTS_DIR}stat.zip ${RESULTS_DIR}stat #zip -jqr ${RESULTS_DIR}stat.zip ${RESULTS_DIR}stat
#rm -rf ${RESULTS_DIR}stat/ #rm -rf ${RESULTS_DIR}stat/
mv ${BASEDIR}opentelemetry.log ${RESULTS_DIR}opentelemetry.log mv ${BASE_DIR}opentelemetry.log ${RESULTS_DIR}opentelemetry.log
[ -f ${RESULTS_DIR}hotspot-1-${RECURSION_DEPTH}-1.log ] && grep "<task " ${RESULTS_DIR}hotspot-*.log >${RESULTS_DIR}log.log [ -f ${RESULTS_DIR}hotspot-1-${RECURSION_DEPTH}-1.log ] && grep "<task " ${RESULTS_DIR}hotspot-*.log >${RESULTS_DIR}log.log
[ -f ${BASEDIR}errorlog.txt ] && mv ${BASEDIR}errorlog.txt ${RESULTS_DIR} [ -f ${BASE_DIR}errorlog.txt ] && mv ${BASE_DIR}errorlog.txt ${RESULTS_DIR}
## Clean up raw results
#gzip -qr ${RESULTS_DIR}results.zip ${RAWFN}*
#rm -f ${RAWFN}*
[ -f ${BASEDIR}nohup.out ] && cp ${BASEDIR}nohup.out ${RESULTS_DIR}
[ -f ${BASEDIR}nohup.out ] && > ${BASEDIR}nohup.out
TITLE[0]="No instrumentation"
TITLE[1]="OpenTelemetry No Logging"
TITLE[2]="OpenTelemetry Logging"
TITLE[3]="OpenTelemetry Zipkin"
MACHINE_TYPE=`uname -m`;
if [ ${MACHINE_TYPE} == 'x86_64' ]
then
TITLE[4]="OpenTelemetry Jaeger"
TITLE[5]="OpenTelemetry Prometheus"
fi
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment