From d745c9c19ea6e2517ee3dcabfdfc9a3505acb1c9 Mon Sep 17 00:00:00 2001
From: David Georg Reichelt <davidgeorg_reichelt@dagere.de>
Date: Sun, 18 Jul 2021 12:44:49 +0200
Subject: [PATCH] Only run jaeger and prometheus if on 64 bit system

---
 .gitignore                            |   2 +
 frameworks/opentelemetry/benchmark.sh | 123 ++++++++++++++++++--------
 2 files changed, 87 insertions(+), 38 deletions(-)

diff --git a/.gitignore b/.gitignore
index 442f6a8..85b1a60 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,6 +24,8 @@ frameworks/opentelemetry/tmp/
 frameworks/opentelemetry/*.txt
 frameworks/opentelemetry/MooBench.jar
 frameworks/opentelemetry/zipkin/
+frameworks/opentelemetry/lib/
+frameworks/opentelemetry/jaeger-1.24.0-linux-amd64/
 frameworks/opentelemetry/prometheus-2.28.1.linux-amd64/
 frameworks/opentelemetry/prometheus-2.28.1.linux-amd64.tar.gz
 
diff --git a/frameworks/opentelemetry/benchmark.sh b/frameworks/opentelemetry/benchmark.sh
index b6899fc..3bc7b9c 100755
--- a/frameworks/opentelemetry/benchmark.sh
+++ b/frameworks/opentelemetry/benchmark.sh
@@ -14,22 +14,32 @@ function startZipkin {
 	cd ..
 }
 
-function stopZipkin {
-	kill %1
-}
-
 function startPrometheus {
 	if [ ! -d prometheus-2.28.1.linux-amd64 ]
 	then
 		wget https://github.com/prometheus/prometheus/releases/download/v2.28.1/prometheus-2.28.1.linux-amd64.tar.gz
 		tar -xvf prometheus-2.28.1.linux-amd64.tar.gz
+		rm prometheus-2.28.1.linux-amd64.tar.gz
 	fi
 	cd prometheus-2.28.1.linux-amd64
 	./prometheus > prometheus.log &
 	cd ..
 }
 
-function stopPrometheus {
+
+function startJaeger {
+	if [ ! -d jaeger-1.24.0-linux-amd64 ]
+	then
+		wget https://github.com/jaegertracing/jaeger/releases/download/v1.24.0/jaeger-1.24.0-linux-amd64.tar.gz
+		tar -xvf jaeger-1.24.0-linux-amd64.tar.gz
+		rm jaeger-1.24.0-linux-amd64.tar.gz
+	fi
+	cd jaeger-1.24.0-linux-amd64
+	./jaeger-all-in-one > jaeger.log &
+	cd ..
+}
+
+function stopBackgroundProcess {
 	kill %1
 }
 
@@ -38,6 +48,30 @@ function getSum {
   awk '{sum += $1; square += $1^2} END {print "Average: "sum/NR" Standard Deviation: "sqrt(square / NR - (sum/NR)^2)" Count: "NR}'
 }
 
+function printIntermediaryResults {
+    echo -n "Intermediary results uninstrumented"
+    cat tmp/results-opentelemetry/raw-*-$RECURSIONDEPTH-1.csv | awk -F';' '{print $2}' | getSum
+    
+    echo -n "Intermediary results opentelemetry Logging Deactivated"
+    cat tmp/results-opentelemetry/raw-*-$RECURSIONDEPTH-2.csv | awk -F';' '{print $2}' | getSum
+    
+    echo -n "Intermediary results opentelemetry Logging"
+    cat tmp/results-opentelemetry/raw-*-$RECURSIONDEPTH-3.csv | awk -F';' '{print $2}' | getSum
+    
+    echo -n "Intermediary results opentelemetry Zipkin"
+    cat tmp/results-opentelemetry/raw-*-$RECURSIONDEPTH-4.csv | awk -F';' '{print $2}' | getSum
+    
+    MACHINE_TYPE=`uname -m`; 
+    if [ ${MACHINE_TYPE} == 'x86_64' ]
+    then
+        echo -n "Intermediary results opentelemetry Jaeger"
+    	cat tmp/results-opentelemetry/raw-*-$RECURSIONDEPTH-5.csv | awk -F';' '{print $2}' | getSum
+    
+    	echo -n "Intermediary results opentelemetry Prometheus"
+    	cat tmp/results-opentelemetry/raw-*-$RECURSIONDEPTH-6.csv | awk -F';' '{print $2}' | getSum
+    fi
+}
+
 
 JAVABIN=""
 
@@ -89,6 +123,7 @@ JAVAARGS_OPENTELEMETRY_BASIC="${JAVAARGS} -javaagent:${BASEDIR}lib/opentelemetry
 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_ZIPKIN="${JAVAARGS_OPENTELEMETRY_BASIC} -Dotel.traces.exporter=zipkin"
+JAVAARGS_OPENTELEMETRY_JAEGER="${JAVAARGS_OPENTELEMETRY_BASIC} -Dotel.traces.exporter=jaeger"
 JAVAARGS_OPENTELEMETRY_PROMETHEUS="${JAVAARGS_OPENTELEMETRY_BASIC} -Dotel.traces.exporter=prometheus"
 
 
@@ -184,43 +219,55 @@ for ((i=1;i<=${NUM_LOOPS};i+=1)); do
     [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log
     echo >>${BASEDIR}opentelemetry.log
     echo >>${BASEDIR}opentelemetry.log
-    stopZipkin
+    stopBackgroundProcess
     sync
     sleep ${SLEEPTIME}
     
-    # OpenTelemetry Instrumentation Prometheus
-    k=`expr ${k} + 1`
-    startPrometheus
-    echo " # ${i}.${j}.${k} OpenTelemetry Instrumentation Prometheus"
-    echo " # ${i}.${j}.${k} OpenTelemetry Instrumentation Prometheus" >>${BASEDIR}opentelemetry.log
-    ${JAVABIN}java ${JAVAARGS_OPENTELEMETRY_PROMETHEUS} ${JAR} \
-        --output-filename ${RAWFN}-${i}-${j}-${k}.csv \
-        --total-calls ${TOTALCALLS} \
-        --method-time ${METHODTIME} \
-        --total-threads ${THREADS} \
-        --recursion-depth ${j} \
-        ${MOREPARAMS} &> ${RESULTSDIR}output_"$i"_opentelemetry_prometheus.txt
-    [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log
-    echo >>${BASEDIR}opentelemetry.log
-    echo >>${BASEDIR}opentelemetry.log
-    stopPrometheus
-    sync
-    sleep ${SLEEPTIME}
+    MACHINE_TYPE=`uname -m`; 
+    if [ ${MACHINE_TYPE} == 'x86_64' ]
+    then
+    	    # OpenTelemetry Instrumentation Jaeger
+	    k=`expr ${k} + 1`
+	    startPrometheus
+	    echo " # ${i}.${j}.${k} OpenTelemetry Instrumentation Jaeger"
+	    echo " # ${i}.${j}.${k} OpenTelemetry Instrumentation Jaeger" >>${BASEDIR}opentelemetry.log
+	    ${JAVABIN}java ${JAVAARGS_OPENTELEMETRY_JAEGER} ${JAR} \
+		--output-filename ${RAWFN}-${i}-${j}-${k}.csv \
+		--total-calls ${TOTALCALLS} \
+		--method-time ${METHODTIME} \
+		--total-threads ${THREADS} \
+		--recursion-depth ${j} \
+		${MOREPARAMS} &> ${RESULTSDIR}output_"$i"_opentelemetry_prometheus.txt
+	    [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log
+	    echo >>${BASEDIR}opentelemetry.log
+	    echo >>${BASEDIR}opentelemetry.log
+	    stopBackgroundProcess
+	    sync
+	    sleep ${SLEEPTIME}
+	    
+	    # OpenTelemetry Instrumentation Prometheus
+	    k=`expr ${k} + 1`
+	    startPrometheus
+	    echo " # ${i}.${j}.${k} OpenTelemetry Instrumentation Prometheus"
+	    echo " # ${i}.${j}.${k} OpenTelemetry Instrumentation Prometheus" >>${BASEDIR}opentelemetry.log
+	    ${JAVABIN}java ${JAVAARGS_OPENTELEMETRY_PROMETHEUS} ${JAR} \
+		--output-filename ${RAWFN}-${i}-${j}-${k}.csv \
+		--total-calls ${TOTALCALLS} \
+		--method-time ${METHODTIME} \
+		--total-threads ${THREADS} \
+		--recursion-depth ${j} \
+		${MOREPARAMS} &> ${RESULTSDIR}output_"$i"_opentelemetry_prometheus.txt
+	    [ -f ${BASEDIR}hotspot.log ] && mv ${BASEDIR}hotspot.log ${RESULTSDIR}hotspot-${i}-${j}-${k}.log
+	    echo >>${BASEDIR}opentelemetry.log
+	    echo >>${BASEDIR}opentelemetry.log
+	    stopBackgroundProcess
+	    sync
+	    sleep ${SLEEPTIME}
+    else
+    	echo "No 64 Bit System; skipping Prometheus"
+    fi
 
-    echo -n "Intermediary results uninstrumented"
-    cat tmp/results-opentelemetry/raw-*-$RECURSIONDEPTH-1.csv | awk -F';' '{print $2}' | getSum
-    
-    echo -n "Intermediary results opentelemetry Logging Deactivated"
-    cat tmp/results-opentelemetry/raw-*-$RECURSIONDEPTH-2.csv | awk -F';' '{print $2}' | getSum
-    
-    echo -n "Intermediary results opentelemetry Logging"
-    cat tmp/results-opentelemetry/raw-*-$RECURSIONDEPTH-3.csv | awk -F';' '{print $2}' | getSum
-    
-    echo -n "Intermediary results opentelemetry Zipkin"
-    cat tmp/results-opentelemetry/raw-*-$RECURSIONDEPTH-4.csv | awk -F';' '{print $2}' | getSum
-    
-    echo -n "Intermediary results opentelemetry Prometheus"
-    cat tmp/results-opentelemetry/raw-*-$RECURSIONDEPTH-5.csv | awk -F';' '{print $2}' | getSum
+    printIntermediaryResults
 done
 #zip -jqr ${RESULTSDIR}stat.zip ${RESULTSDIR}stat
 #rm -rf ${RESULTSDIR}stat/
-- 
GitLab