diff --git a/frameworks/Kieker/benchmark.sh b/frameworks/Kieker/benchmark.sh index 0f5f41533e7ac498debe75066e653de61d2461c7..e96e5106883091d3e69b62da06f57268a325ace3 100755 --- a/frameworks/Kieker/benchmark.sh +++ b/frameworks/Kieker/benchmark.sh @@ -18,7 +18,7 @@ if [ ! -d "${BASE_DIR}" ] ; then fi # load configuration and common functions -if [ -f "${BASE_DIR}/config" ] ; then +if [ -f "${BASE_DIR}/config.rc" ] ; then source "${BASE_DIR}/config.rc" else echo "Missing configuration: ${BASE_DIR}/config.rc" diff --git a/frameworks/OpenTelemetry/benchmark.sh b/frameworks/OpenTelemetry/benchmark.sh index 4d7087395c68687019110671fc7b8e83f8afa936..6859f6b8de9bc42618f0d521b1eeaea6abe9dbb0 100755 --- a/frameworks/OpenTelemetry/benchmark.sh +++ b/frameworks/OpenTelemetry/benchmark.sh @@ -1,9 +1,9 @@ #!/bin/bash # -# Kieker benchmark script +# OpenTelemetry benchmark script # -# Usage: benchmark.sh [execute|test] +# Usage: benchmark.sh # configure base dir BASE_DIR=$(cd "$(dirname "$0")"; pwd) @@ -18,7 +18,7 @@ if [ ! -d "${BASE_DIR}" ] ; then fi # load configuration and common functions -if [ -f "${BASE_DIR}/config" ] ; then +if [ -f "${BASE_DIR}/config.rc" ] ; then source "${BASE_DIR}/config.rc" else echo "Missing configuration: ${BASE_DIR}/config.rc" @@ -60,6 +60,7 @@ checkFile log "${BASE_DIR}/OpenTelemetry.log" clean checkDirectory results-directory "${RESULTS_DIR}" recreate checkExecutable java "${JAVA_BIN}" checkFile R-script "${RSCRIPT_PATH}" +checkFile opentelemetry-agent "${AGENT_JAR}" TIME=`expr ${METHOD_TIME} \* ${TOTAL_NUM_OF_CALLS} / 1000000000 \* 4 \* ${RECURSION_DEPTH} \* ${NUM_OF_LOOPS} + ${SLEEP_TIME} \* 4 \* ${NUM_OF_LOOPS} \* ${RECURSION_DEPTH} + 50 \* ${TOTAL_NUM_OF_CALLS} / 1000000000 \* 4 \* ${RECURSION_DEPTH} \* ${NUM_OF_LOOPS} ` @@ -69,10 +70,10 @@ JAVA_ARGS="-server" JAVA_ARGS="${JAVA_ARGS} " JAVA_ARGS="${JAVA_ARGS} -Xms1G -Xmx2G" JAVA_ARGS="${JAVA_ARGS} -verbose:gc " -JAR="-jar MooBench.jar" +JAR="-jar ${BASE_DIR}/MooBench.jar" JAVA_ARGS_NOINSTR="${JAVA_ARGS}" -JAVA_ARGS_OPENTELEMETRY_BASIC="${JAVA_ARGS} -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]" +JAVA_ARGS_OPENTELEMETRY_BASIC="${JAVA_ARGS} -javaagent:${AGENT_JAR} -Dotel.resource.attributes=service.name=moobench -Dotel.instrumentation.methods.include=moobench.application.MonitoredClassSimple[monitoredMethod];moobench.application.MonitoredClassThreaded[monitoredMethod]" JAVA_ARGS_OPENTELEMETRY_LOGGING_DEACTIVATED="${JAVA_ARGS_OPENTELEMETRY_BASIC} -Dotel.traces.exporter=logging -Dotel.traces.sampler=always_off" JAVA_ARGS_OPENTELEMETRY_LOGGING="${JAVA_ARGS_OPENTELEMETRY_BASIC} -Dotel.traces.exporter=logging" JAVA_ARGS_OPENTELEMETRY_ZIPKIN="${JAVA_ARGS_OPENTELEMETRY_BASIC} -Dotel.traces.exporter=zipkin -Dotel.metrics.exporter=none" @@ -81,11 +82,19 @@ JAVA_ARGS_OPENTELEMETRY_PROMETHEUS="${JAVA_ARGS_OPENTELEMETRY_BASIC} -Dotel.trac writeConfiguration +# +# Run benchmark +# + +info "----------------------------------" +info "Running benchmark..." +info "----------------------------------" + ## Execute Benchmark for ((i=1;i<=${NUM_OF_LOOPS};i+=1)); do k=0 info "## Starting iteration ${i}/${NUM_OF_LOOPS}" - echo "## Starting iteration ${i}/${NUM_OF_LOOPS}" >>${BASE_DIR}/OpenTelemetry.log + echo "## Starting iteration ${i}/${NUM_OF_LOOPS}" >> "${BASE_DIR}/OpenTelemetry.log" runNoInstrumentation cleanup diff --git a/frameworks/OpenTelemetry/config.rc b/frameworks/OpenTelemetry/config.rc index b702812dadc7c7cf3c78fed1a8a1aaa77d633b03..8b463d2075703ee43894cc3a2018e945be6da38b 100644 --- a/frameworks/OpenTelemetry/config.rc +++ b/frameworks/OpenTelemetry/config.rc @@ -1,9 +1,11 @@ -# OpenTelementry configuraiton +# OpenTelementry configuration JAVA_BIN="/usr/bin/java" RSCRIPT_PATH="../stats.csv.r" +AGENT_JAR="${BASE_DIR}/lib/opentelemetry-javaagent.jar" + #MORE_PARAMS="--quickstart" MORE_PARAMS="--application moobench.application.MonitoredClassSimple ${MORE_PARAMS}" diff --git a/frameworks/OpenTelemetry/functions.sh b/frameworks/OpenTelemetry/functions.sh index 6da509b15cf42c484ff8e3e6be94e4ea13813395..5fb41bee553ebf2f4a301d69bda518f1c66e82fb 100644 --- a/frameworks/OpenTelemetry/functions.sh +++ b/frameworks/OpenTelemetry/functions.sh @@ -12,7 +12,7 @@ function getAgent() { if [ ! -f "${BASE_DIR}/lib/opentelemetry-javaagent.jar" ] then mkdir -p "${BASE_DIR}/lib" - wget --output-document="${BASE_DIR}/lib/opentelemetry-javaagent.jar" \ + wget --output-document="${AGENT_JAR}" \ https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/latest/download/opentelemetry-javaagent.jar fi } @@ -26,7 +26,7 @@ function startJaeger { fi cd "${BASE_DIR}/jaeger-1.24.0-linux-amd64" - ./jaeger-all-in-one &> jaeger.log & + "${BASE_DIR}/jaeger-1.24.0-linux-amd64/jaeger-all-in-one" &> "${BASE_DIR}/jaeger-1.24.0-linux-amd64/jaeger.log" & cd "${BASE_DIR}" } @@ -55,7 +55,7 @@ function runOpenTelemetryNoLogging { # OpenTelemetry Instrumentation Logging Deactivated k=`expr ${k} + 1` info " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} - echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} >>${BASE_DIR}/OpenTelemetry.log + echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} >> "${BASE_DIR}/OpenTelemetry.log" ${JAVA_BIN} ${JAVA_ARGS_OPENTELEMETRY_LOGGING_DEACTIVATED} ${JAR} \ --output-filename "${RAWFN}-${i}-$RECURSION_DEPTH-${k}.csv" \ --total-calls ${TOTAL_NUM_OF_CALLS} \ @@ -89,7 +89,7 @@ function runOpenTelemetryZipkin { k=`expr ${k} + 1` startZipkin info " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} - echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} >>${BASE_DIR}/OpenTelemetry.log + echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} >> "${BASE_DIR}/OpenTelemetry.log" ${JAVA_BIN} ${JAVA_ARGS_OPENTELEMETRY_ZIPKIN} ${JAR} \ --output-filename ${RAWFN}-${i}-$RECURSION_DEPTH-${k}.csv \ --total-calls ${TOTAL_NUM_OF_CALLS} \ @@ -106,7 +106,7 @@ function runOpenTelemetryJaeger { k=`expr ${k} + 1` startJaeger info " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} - echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} >>${BASE_DIR}/OpenTelemetry.log + echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} >> "${BASE_DIR}/OpenTelemetry.log" ${JAVA_BIN} ${JAVA_ARGS_OPENTELEMETRY_JAEGER} ${JAR} \ --output-filename ${RAWFN}-${i}-$RECURSION_DEPTH-${k}.csv \ --total-calls ${TOTAL_NUM_OF_CALLS} \ @@ -123,7 +123,7 @@ function runOpenTelemetryPrometheus { k=`expr ${k} + 1` startPrometheus info " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} - echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} >>${BASE_DIR}/OpenTelemetry.log + echo " # ${i}.$RECURSION_DEPTH.${k} "${TITLE[$k]} >> "${BASE_DIR}/OpenTelemetry.log" ${JAVA_BIN} ${JAVA_ARGS_OPENTELEMETRY_PROMETHEUS} ${JAR} \ --output-filename ${RAWFN}-${i}-$RECURSION_DEPTH-${k}.csv \ --total-calls ${TOTAL_NUM_OF_CALLS} \ diff --git a/frameworks/common-functions.sh b/frameworks/common-functions.sh index 0ddbdc5196aecb7ab615a388b75b86dc96c67743..2d9586833abd4abadb3c7dd8b4e04a980df10c26 100755 --- a/frameworks/common-functions.sh +++ b/frameworks/common-functions.sh @@ -57,18 +57,18 @@ EOF } function startZipkin { - if [ ! -d zipkin ] || [ ! -f zipkin/zipkin.jar ] + if [ ! -d "${BASE_DIR}/zipkin" ] || [ ! -f "${BASE_DIR}/zipkin/zipkin.jar" ] then - mkdir zipkin - cd zipkin + mkdir -p "${BASE_DIR}/zipkin" + cd "${BASE_DIR}/zipkin" curl -sSL https://zipkin.io/quickstart.sh | bash -s else - cd zipkin + cd "${BASE_DIR}/zipkin" fi - java -Xmx6g -jar zipkin.jar &> zipkin.txt & + java -Xmx6g -jar "${BASE_DIR}/zipkin/zipkin.jar" &> "${BASE_DIR}/zipkin/zipkin.txt" & pid=$! sleep 5 - cd .. + cd "${BASE_DIR}" } function periodicallyCurlPrometheus { @@ -90,18 +90,18 @@ function stopBackgroundProcess { } function writeConfiguration() { - uname -a >${RESULTS_DIR}/configuration.txt - ${JAVA_BIN} ${JAVA_ARGS} -version 2 >> ${RESULTS_DIR}/configuration.txt - echo "JAVA_ARGS: ${JAVA_ARGS}" >> ${RESULTS_DIR}/configuration.txt - echo "" >> ${RESULTS_DIR}/configuration.txt - echo "Runtime: circa ${TIME} seconds" >> ${RESULTS_DIR}/configuration.txt - echo "" >> ${RESULTS_DIR}/configuration.txt - echo "SLEEP_TIME=${SLEEP_TIME}" >> ${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 "METHOD_TIME=${METHOD_TIME}" >> ${RESULTS_DIR}/configuration.txt - echo "THREADS=${THREADS}" >> ${RESULTS_DIR}/configuration.txt - echo "RECURSION_DEPTH=${RECURSION_DEPTH}" >> ${RESULTS_DIR}/configuration.txt + uname -a > "${RESULTS_DIR}/configuration.txt" + ${JAVA_BIN} ${JAVA_ARGS} -version 2 >> "${RESULTS_DIR}/configuration.txt" + echo "JAVA_ARGS: ${JAVA_ARGS}" >> "${RESULTS_DIR}/configuration.txt" + echo "" >> "${RESULTS_DIR}/configuration.txt" + echo "Runtime: circa ${TIME} seconds" >> "${RESULTS_DIR}/configuration.txt" + echo "" >> "${RESULTS_DIR}/configuration.txt" + echo "SLEEP_TIME=${SLEEP_TIME}" >> "${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 "METHOD_TIME=${METHOD_TIME}" >> "${RESULTS_DIR}/configuration.txt" + echo "THREADS=${THREADS}" >> "${RESULTS_DIR}/configuration.txt" + echo "RECURSION_DEPTH=${RECURSION_DEPTH}" >> "${RESULTS_DIR}/configuration.txt" sync } diff --git a/frameworks/inspectIT/benchmark.sh b/frameworks/inspectIT/benchmark.sh index 54e981ccc45e9fc23b8b47ec13827d48df6331f3..5aa00027b2154b3be0316e38b1eadcf05d19b737 100755 --- a/frameworks/inspectIT/benchmark.sh +++ b/frameworks/inspectIT/benchmark.sh @@ -18,7 +18,7 @@ if [ ! -d "${BASE_DIR}" ] ; then fi # load configuration and common functions -if [ -f "${BASE_DIR}/config" ] ; then +if [ -f "${BASE_DIR}/config.rc" ] ; then source "${BASE_DIR}/config.rc" else echo "Missing configuration: ${BASE_DIR}/config.rc"