diff --git a/.gitignore b/.gitignore
index 8f8dcd936e12749cda261ba95f915f12b7caa8fe..7b247314b6b47a489fd1f0bd0abc47d1e2a6b8e8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,8 +1,5 @@
 
 # Ignore Gradle project-specific cache directory
-**/.gradle/**
-/receiver
-/benchmark
 .classpath
 .settings
 **/.classpath
@@ -10,37 +7,5 @@
 **/.settings/**
 **/build/**
 **/bin/**
-frameworks/log_*
-frameworks/Kieker/benchmark/
-frameworks/Kieker/data/
-frameworks/Kieker/MooBench.jar
-frameworks/Kieker/kieker-*-aspectj.jar
-frameworks/Kieker/receiver/
-frameworks/Kieker/results-Kieker/
-frameworks/Kieker/benchmark_*
-frameworks/SPASSmeter/spassmeter.log
-frameworks/SPASSmeter/tmp/
-frameworks/SPASSmeter/MooBench.jar
-frameworks/inspectIT/inspectit.log
-frameworks/inspectIT/MooBench.jar
-frameworks/inspectIT/logs/
-frameworks/inspectIT/tmp/
-frameworks/inspectIT/zipkin/
-frameworks/inspectIT/configuration.txt
-frameworks/inspectIT/results-inspectIT/
-frameworks/inspectIT/prometheus-2.28.1.linux-amd64/
-frameworks/OpenTelemetry/results-OpenTelemetry/
-frameworks/OpenTelemetry/tmp/
-frameworks/OpenTelemetry/*.txt
-frameworks/OpenTelemetry/OpenTelemetry.log
-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
-
-frameworks/Kieker/compile-results/
-tools/getConfidenceIntervalTable/*csv
 /.gradle/
 /build/
diff --git a/frameworks/Kieker/java/.gitignore b/frameworks/Kieker/java/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..e1d90f11377df9a522f48ee11de7fe6e42146964
--- /dev/null
+++ b/frameworks/Kieker/java/.gitignore
@@ -0,0 +1,8 @@
+.RData
+.Rhistory
+benchmark/**
+data/**
+kieker-2.0.0-SNAPSHOT-aspectj.jar
+receiver/**
+results-java/**
+
diff --git a/frameworks/Kieker/java/benchmark.sh b/frameworks/Kieker/java/benchmark.sh
index 19ec54ebb97ba24bba2227cdc34ca554d573c392..fa74eb883b227310f50dafad61724b5051582d41 100755
--- a/frameworks/Kieker/java/benchmark.sh
+++ b/frameworks/Kieker/java/benchmark.sh
@@ -25,10 +25,10 @@ else
 	exit 1
 fi
 
-if [ -f "${BASE_DIR}/../common-functions.sh" ] ; then
-	source "${BASE_DIR}/../common-functions.sh"
+if [ -f "${MAIN_DIR}/frameworks/common-functions.sh" ] ; then
+	source "${MAIN_DIR}/frameworks/common-functions.sh"
 else
-	echo "Missing library: ${BASE_DIR}/../common-functions.sh"
+	echo "Missing library: ${MAIN_DIR}/frameworks/common-functions.sh"
 	exit 1
 fi
 
@@ -163,8 +163,8 @@ if [ "$MODE" == "execute" ] ; then
 
    # Create R labels
    LABELS=$(createRLabels)
-   runR
-
+   runRyaml
+   read R
    cleanupResults
 else
    executeBenchmarkBody $OPTION 1 1
diff --git a/frameworks/Kieker/java/config.rc b/frameworks/Kieker/java/config.rc
index e186b9ecc3d0cc10c395ec4683a8782c1e9dfa62..5e7b66e5f6c6745f3a078a3ada4a52b97c955d38 100644
--- a/frameworks/Kieker/java/config.rc
+++ b/frameworks/Kieker/java/config.rc
@@ -9,7 +9,7 @@ RSCRIPT_PATH="${BASE_DIR}/stats.csv.r"
 MAIN_DIR="${BASE_DIR}/../../.."
 
 RECEIVER_ARCHIVE="${MAIN_DIR}/tools/receiver/build/distributions/receiver.tar"
-BENCHMARK_ARCHIVE="${MAIN_DIR}/tools/benchmark/build/distributions/benchmark.tar"
+MOOBENCH_ARCHIVE="${MAIN_DIR}/tools/benchmark/build/distributions/benchmark.tar"
 
 DATA_DIR="${BASE_DIR}/data"
 AGENT="${BASE_DIR}/kieker-2.0.0-SNAPSHOT-aspectj.jar"
diff --git a/frameworks/Kieker/java/functions.sh b/frameworks/Kieker/java/functions.sh
index 89aacc07850c819c082eb91211e687d7428f7023..5aa5682b69d7d0aae43bdcafcf4d9ddff097960c 100644
--- a/frameworks/Kieker/java/functions.sh
+++ b/frameworks/Kieker/java/functions.sh
@@ -8,17 +8,16 @@ then
 fi
 
 function getAgent() {
-	info "Checking whether Kieker is present in $AGENT"
-	if [ ! -f $AGENT ] ; then
+	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}"
-		
-		if [ ! -f $AGENT ] | [ -s $AGENT ] ; then
+
+		if [ ! -f "${AGENT}" ] || [ -s "${AGENT}" ] ; then
 			error "Kieker download from $AGENT_PATH failed; please asure that a correct Kieker AspectJ file is present!"
 		fi
-		
 	fi
 }
 
diff --git a/frameworks/Kieker/java/stats.csv.r b/frameworks/Kieker/java/stats.csv.r
index 8ba1ca1098b033fb93f7b5d5c61016c066c3af31..003dcbe10feb330eebfb65f28c7522b11c676707 100644
--- a/frameworks/Kieker/java/stats.csv.r
+++ b/frameworks/Kieker/java/stats.csv.r
@@ -87,22 +87,19 @@ resultstext <- formatC(printvalues,format="f",digits=4,width=8)
 
 print(resultstext)
 
-write(paste("Recursion Depth: ", recursion_depth),file=outtxt_fn,append=TRUE)
-write("response time",file=outtxt_fn,append=TRUE)
-write.table(resultstext,file=outtxt_fn,append=TRUE,quote=FALSE,sep="\t",col.names=FALSE)
-
-concResult <- ""
-headResult <- ""
-# write the first n-1 elements preceded by a comma (,)
-for (writer_idx in (1:(numberOfWriters-1))) {
-   headResult <- paste(headResult, configs.labels[writer_idx], ",")
-   concResult <- paste(concResult, printvalues["mean",writer_idx], ",")
+currentTime <- as.numeric(Sys.time())
+
+write("Kieker:", file=out_yaml_fn,append=FALSE)
+write(paste("- timestamp:", currentTime), file=out_yaml_fn, append=TRUE) 
+for (writer_idx in (1:(numberOfWriters))) {
+   write(paste(" ", configs.labels[writer_idx], ": [", 
+      format(printvalues["mean",writer_idx], scientific=TRUE), ",",
+      format(printvalues["sd",writer_idx], scientific=TRUE), ",", 
+      format(printvalues["ci95%",writer_idx], scientific=TRUE), ",",
+      format(printvalues["md25%",writer_idx], scientific=TRUE), ",",
+      format(printvalues["md50%",writer_idx], scientific=TRUE), ",",
+      format(printvalues["md75%",writer_idx], scientific=TRUE), ",",
+      format(printvalues["max",writer_idx], scientific=TRUE), ",",
+      format(printvalues["min",writer_idx], scientific=TRUE), "]"), file=out_yaml_fn, append=TRUE)
 }
-# write the last without a comma
-headResult <- paste(headResult, configs.labels[numberOfWriters])
-concResult <- paste(concResult, printvalues["mean", numberOfWriters])
-  
-write(headResult,file=outcsv_fn,append=TRUE)
-write(concResult,file=outcsv_fn,append=TRUE)
-
 # end
diff --git a/frameworks/OpenTelemetry/.gitignore b/frameworks/OpenTelemetry/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..e1c08bb427d6756db4f251cd606efca99a2c7e9b
--- /dev/null
+++ b/frameworks/OpenTelemetry/.gitignore
@@ -0,0 +1,5 @@
+OpenTelemetry.log
+lib/**
+results-OpenTelemetry/**
+zipkin/**
+benchmark/**
diff --git a/frameworks/common-functions.sh b/frameworks/common-functions.sh
index d0bf2e191554bce5764619d7d4e6c21314620028..618490c7df0bb8325b4f18869abf50eee70660be 100755
--- a/frameworks/common-functions.sh
+++ b/frameworks/common-functions.sh
@@ -56,6 +56,30 @@ source("${RSCRIPT_PATH}")
 EOF
 }
 
+## Generate Results file
+function runRyaml() {
+cat << EOF
+results_fn="${RAWFN}"
+out_yaml_fn="${RESULTS_DIR}/results.yaml"
+configs.loop=${NUM_OF_LOOPS}
+configs.recursion=${RECURSION_DEPTH}
+configs.labels=c($LABELS)
+results.count=${TOTAL_NUM_OF_CALLS}
+results.skip=${TOTAL_NUM_OF_CALLS}/2
+source("${RSCRIPT_PATH}")
+EOF
+R --vanilla --silent << EOF
+results_fn="${RAWFN}"
+out_yaml_fn="${RESULTS_DIR}/results.yaml"
+configs.loop=${NUM_OF_LOOPS}
+configs.recursion=${RECURSION_DEPTH}
+configs.labels=c($LABELS)
+results.count=${TOTAL_NUM_OF_CALLS}
+results.skip=${TOTAL_NUM_OF_CALLS}/2
+source("${RSCRIPT_PATH}")
+EOF
+}
+
 function startZipkin {
 	if [ ! -d "${BASE_DIR}/zipkin" ] || [ ! -f "${BASE_DIR}/zipkin/zipkin.jar" ]
 	then
@@ -217,7 +241,7 @@ if [ -z $SLEEP_TIME ]; then
 	SLEEP_TIME=30             ## 30
 fi
 if [ -z $NUM_OF_LOOPS ]; then
-	NUM_OF_LOOPS=10           ## 10
+	NUM_OF_LOOPS=1 #0           ## 10
 fi
 if [ -z $THREADS ]; then
 	THREADS=1                 ## 1
diff --git a/frameworks/inspectIT/.gitignore b/frameworks/inspectIT/.gitignore
index 8c665dd5b2e5d9c5a6f0d9d09e32e35a2e17cc06..d823cfe809a99891bd4f9bd63bb3d09936789fed 100644
--- a/frameworks/inspectIT/.gitignore
+++ b/frameworks/inspectIT/.gitignore
@@ -1,2 +1,5 @@
-agent/
-CMR/
+agent/**
+CMR/**
+results-inspectIT/**
+zipkin/**
+