From b8c867e8d822c0d65e1d7aceb8556ff8c93b030d Mon Sep 17 00:00:00 2001
From: Reiner Jung <reiner.jung@email.uni-kiel.de>
Date: Wed, 10 Aug 2022 14:10:24 +0200
Subject: [PATCH] Generalized stats.csv.r

---
 frameworks/Kieker/java/stats.csv.r | 105 -----------------------------
 frameworks/stats.csv.r             |  34 +++++-----
 2 files changed, 16 insertions(+), 123 deletions(-)
 delete mode 100644 frameworks/Kieker/java/stats.csv.r

diff --git a/frameworks/Kieker/java/stats.csv.r b/frameworks/Kieker/java/stats.csv.r
deleted file mode 100644
index 003dcbe..0000000
--- a/frameworks/Kieker/java/stats.csv.r
+++ /dev/null
@@ -1,105 +0,0 @@
-############################################
-# R - script to collect all moobench results
-############################################
-
-# these values are here only as documentation. The parameters are set by benchmark.sh
-#rm(list=ls(all=TRUE))
-#data_fn="data/"
-#folder_fn="results-benchmark-binary"
-#results_fn=paste(data_fn,folder_fn,"/raw",sep="")
-#outtxt_fn=paste(data_fn,folder_fn,"/results-text.txt",sep="")
-#results_fn="raw"
-#outtxt_fn="results-text.txt"
-
-#########
-# These are configuration parameters which are automatically prepended to this file by the benchmark.sh script.
-# Therefore, they must not be set here. The following lines only serve as documentation.
-#configs.loop=10
-#configs.recursion=c(10)
-#configs.labels=c("No Probe","Inactive Probe","Collecting Data","Writing Data (ASCII)", "Writing Data (Bin)")
-#results.count=2000000
-#results.skip=1000000
-
-#bars.minval=500
-#bars.maxval=600
-
-
-##########
-# Process configuration
-
-# divisor 1 = nano, 1000 = micro, 1000000 = milli seconds
-timeUnit <- 1000 
-
-# number of Kieker writer configurations 
-numberOfWriters <- length(configs.labels)
-recursion_depth <- configs.recursion
-
-numberOfValues <- configs.loop*(results.count-results.skip)
-numbers <- c(1:(numberOfValues))
-resultDimensionNames <- list(configs.labels, numbers)
-
-# result values
-resultsBIG <- array(dim=c(numberOfWriters, numberOfValues), dimnames=resultDimensionNames)
-
-##########
-# Create result
-
-## "[ recursion , config , loop ]"
-
-numOfRowsToRead <- results.count-results.skip
-
-for (writer_idx in (1:numberOfWriters)) {
-   recordsPerSecond = c()
-   rpsLastDuration = 0
-   rpsCount = 0
-   file_idx <- writer_idx - 1
-
-   # loop
-   for (loop_counter in (1:configs.loop)) {
-      results_fn_filepath <- paste(results_fn, "-", loop_counter, "-", recursion_depth, "-", file_idx, ".csv", sep="")
-      message(results_fn_filepath)
-      results <- read.csv2(results_fn_filepath, nrows=numOfRowsToRead, skip=results.skip, quote="", colClasses=c("NULL","numeric", "numeric", "numeric"), comment.char="", col.names=c("thread_id", "duration_nsec", "gc", "t"), header=FALSE)
-      trx_idx <- c(1:numOfRowsToRead)
-      resultsBIG[writer_idx,trx_idx] <- results[["duration_nsec"]]
-   }
-}
-
-qnorm_value <- qnorm(0.975)
-
-# print results
-printDimensionNames <- list(c("mean","sd","ci95%","md25%","md50%","md75%","max","min"), c(1:numberOfWriters))
-# row number == number of computed result values, e.g., mean, min, max
-printvalues <- matrix(nrow=8, ncol=numberOfWriters, dimnames=printDimensionNames)
-
-for (writer_idx in (1:numberOfWriters)) {
-   idx_mult <- c(1:numOfRowsToRead)
-
-   valuesBIG <- resultsBIG[writer_idx,idx_mult]/timeUnit
-
-   printvalues["mean",writer_idx] <- mean(valuesBIG)
-   printvalues["sd",writer_idx] <- sd(valuesBIG)
-   printvalues["ci95%",writer_idx] <- qnorm_value*sd(valuesBIG)/sqrt(length(valuesBIG))
-   printvalues[c("md25%","md50%","md75%"),writer_idx] <- quantile(valuesBIG, probs=c(0.25, 0.5, 0.75))
-   printvalues["max",writer_idx] <- max(valuesBIG)
-   printvalues["min",writer_idx] <- min(valuesBIG)
-}
-resultstext <- formatC(printvalues,format="f",digits=4,width=8)
-
-print(resultstext)
-
-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)
-}
-# end
diff --git a/frameworks/stats.csv.r b/frameworks/stats.csv.r
index 8ba1ca1..701f50b 100644
--- a/frameworks/stats.csv.r
+++ b/frameworks/stats.csv.r
@@ -9,7 +9,7 @@
 #results_fn=paste(data_fn,folder_fn,"/raw",sep="")
 #outtxt_fn=paste(data_fn,folder_fn,"/results-text.txt",sep="")
 #results_fn="raw"
-#outtxt_fn="results-text.txt"
+#out_yam_fn="results.yaml"
 
 #########
 # These are configuration parameters which are automatically prepended to this file by the benchmark.sh script.
@@ -17,6 +17,7 @@
 #configs.loop=10
 #configs.recursion=c(10)
 #configs.labels=c("No Probe","Inactive Probe","Collecting Data","Writing Data (ASCII)", "Writing Data (Bin)")
+#configs.tool_id="kieker-java"
 #results.count=2000000
 #results.skip=1000000
 
@@ -87,22 +88,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(paste(configs.tool_id ":"), 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
-- 
GitLab