diff --git a/Jenkinsfile b/Jenkinsfile
index 84aa637c08d41ddc51ee760a033162a8070a04b2..2e0c55d09b26e2f30e99900ec7c6a1d8cadf8539 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -5,6 +5,9 @@ pipeline {
   agent { label "build-node8" }
 
   environment {
+    KEYSTORE = credentials('kieker-irl-key')
+    UPDATE_SITE_URL = "sftp://repo@repo.se.internal/var/www/html/moobench"
+
     DOCKER_ARGS = ''
   }
 
@@ -34,7 +37,7 @@ pipeline {
 
     stage('Run Benchmark') {
        steps {
-          sh 'frameworks/Kieker/scripts/run-benchmark.sh'
+          sh 'frameworks/Kieker/scripts/run-benchmark.sh ${KEYSTORE} ${UPDATE_SITE_URL}'
        }
        post {
          cleanup {
diff --git a/frameworks/Kieker/scripts/config b/frameworks/Kieker/scripts/config
index 055f7b1c1553f9c3e07825a5a541b3e883890689..647c4b4188e8b764200d04118839af4efdb9c072 100644
--- a/frameworks/Kieker/scripts/config
+++ b/frameworks/Kieker/scripts/config
@@ -17,10 +17,10 @@ BATCH_MODE="yes"
 AOP="kieker.aop.xml"
 
 # execution parameter
-SLEEP_TIME=10                   ## 30
-NUM_OF_LOOPS=10                 ## 10
-RECURSION_DEPTH=10              ## 10
-TOTAL_NUM_OF_CALLS=20000        ## 2 000 000
+SLEEP_TIME=1                    ## 30
+NUM_OF_LOOPS=1 #0                 ## 10
+RECURSION_DEPTH=1 #0              ## 10
+TOTAL_NUM_OF_CALLS=20 #000        ## 2 000 000
 METHOD_TIME=5 #00               ## 500000
 
 # end
diff --git a/frameworks/Kieker/scripts/run-benchmark.sh b/frameworks/Kieker/scripts/run-benchmark.sh
index d9746a3d9aedd83422db9cbf82905854d7eb38f8..4b9a595d8da53e023d561a4c5bbee0b5cca1eed5 100755
--- a/frameworks/Kieker/scripts/run-benchmark.sh
+++ b/frameworks/Kieker/scripts/run-benchmark.sh
@@ -16,7 +16,24 @@ else
 	exit 1
 fi
 
-NUM_OF_REPEATS=1
+# parse parameters
+
+if [ -f "$1" ] ; then
+	KEYSTORE="$1"
+else
+	echo "Missing key"
+	exit 1
+fi
+
+if [ "$2" != "" ] ; then
+	URL="$2"
+else
+	echo "Missing URL"
+	exit 1
+fi
+
+## setup
+
 export RESULT_FILE="${BASE_DIR}/results-kieker/results-text.csv"
 COLLECTED_DATA_FILE="${BASE_DIR}/results.csv"
 BENCHMARK="${BASE_DIR}/benchmark.sh"
@@ -31,25 +48,28 @@ tar -xvpf ${BASE_DIR}/../../../benchmark/build/distributions/benchmark.tar
 curl "https://oss.sonatype.org/service/local/repositories/snapshots/content/net/kieker-monitoring/kieker/1.15-SNAPSHOT/kieker-1.15-20201102.131525-117-aspectj.jar" > "${AGENT}"
 # copy receiver
 tar -xvpf ${BASE_DIR}/../../../tools/receiver/build/distributions/receiver.tar
+# copy result compiler
+tar -xvpf ${BASE_DIR}/../../../tools/compile-results/build/distributions/compile-results.tar
 
+# Create benchmark results
 mkdir -p ${BASE_DIR}/results-kieker
 
 rm -f ${COLLECTED_DATA_FILE}
 
-## run loop
-for ((v=1;v<=${NUM_OF_REPEATS};v+=1)); do
-	echo "++++++++++++++++++++++++++"
-	echo "Rerun $v"
-	echo "++++++++++++++++++++++++++"
-	${BENCHMARK} # > /dev/null 2>&1
-	HEAD=`head -1 $RESULT_FILE`
-	VALUE=`tail -1 $RESULT_FILE`
-	if [ -f "${COLLECTED_DATA_FILE}" ] ; then
-		echo "$VALUE" >> ${COLLECTED_DATA_FILE}
-	else
-		echo "$HEAD" > ${COLLECTED_DATA_FILE}
-                echo "$VALUE" >> ${COLLECTED_DATA_FILE}
-	fi
-done
+## running the benchmark
+${BENCHMARK} # > /dev/null 2>&1
+HEAD=`head -1 $RESULT_FILE`
+VALUE=`tail -1 $RESULT_FILE`
+
+## summary results
+
+## fetch old results
+sftp -i "${KEYSTORE}" "${URL}/all-results.json"
+
+## compile results into json
+${BASE_DIR}/compile-results/bin/compile-results "${BASE_DIR}/results-kieker/results-text.csv" "${BASE_DIR}/all-results.json"
+
+## push results
+sftp -i "${KEYSTORE}" "${URL}/all-results.json" <<< $'put all-results.json'
 
 # end
diff --git a/settings.gradle b/settings.gradle
index c1326711af133b9b47c9c428f35df59942b74ad2..98876b3d01b443e01aeb54003fe717a5486ecbb7 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -11,6 +11,7 @@ rootProject.name = 'moobench'
 
 include 'benchmark'
 include 'tools:receiver'
+include 'tools:compile-results'
 include 'frameworks:inspectIT'
 include 'frameworks:Kieker'
 include 'frameworks:SPASSmeter'
diff --git a/tools/receiver/build.gradle b/tools/receiver/build.gradle
index a25c25b9cf963816cac207b3322cc475304918e2..b777f15fea4f4a731d1b4d35dfc830ab4eb54e20 100644
--- a/tools/receiver/build.gradle
+++ b/tools/receiver/build.gradle
@@ -4,7 +4,7 @@ plugins {
 }
 
 application {
-    mainClass = 'moobench.tools.receiver.RecordReceiver'
+    mainClass = 'moobench.tools.receiver.RecordReceiverMain'
 }
 
 dependencies {
diff --git a/tools/receiver/src/main/java/moobench/tools/receiver/RecordReceiver.java b/tools/receiver/src/main/java/moobench/tools/receiver/RecordReceiverMain.java
similarity index 80%
rename from tools/receiver/src/main/java/moobench/tools/receiver/RecordReceiver.java
rename to tools/receiver/src/main/java/moobench/tools/receiver/RecordReceiverMain.java
index fb48fa68ae7bab8c66e9e33dd065ddba0dbacdc0..0c4206a6fe6f271c66353356c4756d597bd80b3a 100644
--- a/tools/receiver/src/main/java/moobench/tools/receiver/RecordReceiver.java
+++ b/tools/receiver/src/main/java/moobench/tools/receiver/RecordReceiverMain.java
@@ -6,12 +6,12 @@ package moobench.tools.receiver;
 import teetime.framework.Execution;
 
 /**
- * @author reiner
+ * @author Reiner Jung
  *
  */
-public class RecordReceiver {
+public class RecordReceiverMain {
 
-	private RecordReceiver() {}
+	private RecordReceiverMain() {}
 
 	public static void main(final String[] args) {
 		ReceiverConfiguration config = new ReceiverConfiguration(Integer.parseInt(args[0]), 8192);