This repository contains the reference implementation of the components of RAST, divided into separate git submodules:
-
locust_scripts: Includes the source code and instructions for the RAST Load Tester component. (RAST Load Tester component)
-
Simulators: Includes the source code, predictive models, and instructions for the RAST Simulator component. (RAST Simulator component)
-
Kieker_ETL: Includes the source code to transform log files from TeaStore to our common log format. (Partial Log Transformer component)
-
ML_ETL: Includes the source code to transform log files in different formats to our common log format, process and extract feature variables, and create an SQLite database representing training data for the Predictive Model Creator component or Validation Data for Similarity Comparison. (Log Transformer component)
-
Regression-Analysis_Workload-Characterization: Includes the source code for creating predictive models from training data, performing workload characterizations and other scripts currently work in progress. (Predictive Model Creator component)
Also, contains additional modules:
-
Automations: Includes various scripts for automating processes, like running load tests against the Simulator or TeaStore. These are used to help with generating training or validation data.
-
TeaStore: Fork of the TeaStore benchmarking application adapting for our experiments. (Case Study)
If you want to work on the current version of the project, clone the repository and pull all git submodules with the following command. If you want to reproduce experiments presented at conferences or journals, navigate to the respective conference/journal in Section Reproduction Instructions for Conferences/Journals and download the zenodo repository.
git clone https://github.com/jtpgames/RAST.git && cd RAST && ./pull_all_submodules.sh
Because this repository heavily relies on git submodules, it is necessary to use the following command to make sure that all changes are properly pulled:
git pull && ./pull_all_submodules.sh
-
We recommend to work with python virtual environments in all python projects. The scripts in the Automation module create and use virtual environments. Here are the manual steps to create a virtual environment, activate it, and install dependencies:
python3 -m venv venv source venv/bin/activate pip install wheel pip install -r requirements.txt
-
GitHub unfortunately has issues with some of the cross-referenced files that are located in submodules.We recommend to read the asciidoc files locally on your computer instead of online in GitHub.