-
Terraform
-
Ansible
-
Python 3 set as default.
-
In the top level directory run
mvn clean install -Dlicense.skip=true
. This will build the benchmark client needed during deployment. -
Create an ssh key for the benchmark using the following:
ssh-keygen -f ~/.ssh/redpanda_aws
. Set the password to blank. -
In the
driver-redpanda/deploy
directory. Run the following:terraform init terraform apply -auto-approve
-
Install ansible roles:
ansible-galaxy install -r requirements.yaml
-
Install jmespath:
pip3 install jmespath
-
To setup the deployed nodes. Run:
ansible-playbook deploy.yaml
-
SSH to the client machine.
ssh -i ~/.ssh/redpanda_aws ubuntu@$(terraform output --raw client_ssh_host)
-
Change into the benchmark directory
cd /opt/benchmark
-
Run a benchmark using a specific driver and workload, for example:
sudo bin/benchmark -d driver-redpanda/redpanda-ack-all-group-linger-10ms.yaml \ driver-redpanda/deploy/workloads/1-topic-100-partitions-1kb-4-producers-500k-rate.yaml
Once you have ran a benchmark, a json file will be generated in the data directory. You can use bin/generate_charts.py
to generate a a visual representation of this data.
First install the python script's prerequisites (Note Python 3.10 or later is not currently supported):
python3 -m pip install numpy jinja2 pygal
The script has a few flags to say where the benchmark output file is, where the output will be stored, etc. Run the script with the help flag for more details (from the project's root directory):
./bin/generate_charts.py -h
You will need to create an output folder (named output
here):
mkdir output
Then run the script. The following example looks for benchmark files in bin/data
and sends output to the folder created above:
./bin/generate_charts.py --results ./bin/data --output ./output
The output of this command is web page with charts for throughput, publish latency, end-to-end latency, publish rate, and consume rate (open in your favorite browser).
Once you are done. Tear down the cluster with the following command:
terraform destroy -auto-approve