diff --git a/README.md b/README.md index e6cc5b1dcb3519afcf61d77376718a0212145a63..c5b5f21344a34e06b241813b29bae003d9fca620 100644 --- a/README.md +++ b/README.md @@ -3,52 +3,32 @@ The MooBench Monitoring Overhead Micro-Benchmark Website: http://kieker-monitoring.net/MooBench -Note: Please note that we are currently reorganizing the project structure. -Thus, the documentation might be outdated. +The MooBench micro-benchmarks can be used to quantify the performance overhead caused by monitoring framework components. -The MooBench micro-benchmarks can be used to quantify the performance -overhead caused by monitoring framework components. - -Currenly (directly) supported monitoring frameworks are: +Currenly (fully) supported monitoring frameworks are: * Kieker (http://kieker-monitoring.net) * OpenTelemetry (https://opentelemetry.io/) -* SPASS-meter (https://github.com/SSEHUB/spassMeter.git) - -The gradle buildfile is provided to prepare the benchmark. To build -the monitored application and copy it to the framework you want to benchmark, -just execute `./gradlew assemble` - -All experiments are started with the provided "External Controller" -scripts. These scripts are available inside the respective bin/ -directory. Currently only shell (.sh) scripts are provided. These -scripts have been developed on Solaris environments. Thus, minor -adjustments might be required for common Linux operatong systems, -such as Ubuntu. Additionally, several Eclipse launch targets are -provided for debugging purposes. - -The default execution of the benchmark requires a 64Bit JVM! -However, this behavior can be changed in the respective .sh scripts. Initially, the following steps are required: -1. Make sure, that you've installed R (http://www.r-project.org/) to - generate the results. +1. Make sure, that you've installed R (http://www.r-project.org/) to generate the results (Ubuntu: `sudo apt install r-base`). 2. Compile the application by calling `./gradlew assemble`. -Execution of the micro-benchmark: -All benchmarks are started with calls of .sh scripts in the bin folder. -The top of the files include some configuration parameters, such as +All experiments are started with the provided "External Controller" scripts. The following scripts are available +* for Kieker: In `frameworks/Kieker/scripts/benchmark.sh` for regular execution and `frameworks/Kieker/scripts/runExponentialSizes.sh` for execution of different call tree depth sizes +* for OpenTelemetry: `frameworks/opentelemetry/benchmark.sh` for regular execution and `frameworks/opentelemetry/runExponentialSizes.sh` for execution of different call tree depth sizes +All scripts have been tested on Ubuntu and Raspbian. + +The execution may be parameterized by the following environment variables: * SLEEPTIME between executions (default 30 seconds) * NUM_LOOPS number of repetitions (default 10) * THREADS concurrent benchmarking threads (default 1) * MAXRECURSIONDEPTH recursion up to this depth (default 10) * TOTALCALLS the duration of the benchmark (deafult 2,000,000 calls) * METHODTIME the time per monitored call (default 0 ns or 500 us) +If they are unset, the values are set via `frameworks/common-function.sh`. -Furthermore some JVM arguments can be adjusted: -* JAVAARGS JVM Arguments (e.g., available memory) - -Typical call (using Solaris): -$ nohup ./benchmark.sh & sleep 1;tail +0cf nohup.out +Typical call (using Ubuntu): +$ export SLEEPTIME=1 && ./gradlew assemble && cd frameworks/opentelemetry/ && ./benchmark.sh Analyzing the data: