-
Create a folder structure as below:
~/ffperf-testing/ ├ ├── firefly │ ├── <Firefly Files> ├ ├── firefly-perf-cli │ ├── <Firefly Perf CLI Files> ├ ├── prep.sh ├── getLogs.sh
-
Helper commands to make folder structure from above:
# From the firefly-perf-cli folder mkdir ~/ffperf-testing git clone git@github.com:hyperledger/firefly.git ~/ffperf-testing/firefly git clone git@github.com:hyperledger/firefly-perf-cli.git ~/ffperf-testing/firefly-perf-cli cp scripts/getLogs.sh ~/ffperf-testing/getLogs.sh cp scripts/prep.sh ~/ffperf-testing/prep.sh
cd ~/ffperf-testing/firefly
git checkout ...
cd ~/ffperf-testing/firefly-perf-cli
git checkout ...
-
./prep.sh
is a script that does the following:- Kills existing perf test
- Builds local FireFly image
- Installs local FireFly Perf CLI
- Removes old FireFly stack
- Creates new FireFly stack
- Allows you to edit
docker-compose.yml
- Starts FireFly stack
- Outputs command to kick off test
-
Run:
cd ~/ffperf-testing ./prep.sh <old_stack_name> <new_stack_name> <blockchain_type> # ex: ./prep.sh oldStack newStack geth
-
Once script is done, you'll be given a command to run the perf test. Paste that in to the terminal to start the test.
-
**Please save the markdown row that is printed. You will need to use this to create an issue in hyperledger/firefly#519
-
./getLogs.sh
is a script that does the following:- Finds location of firefly_core, ethconnect, and ffperf logs
- Stores the compressed logs in a timestamped directory in ~/ff-perf-testing
-
~/ffperf-testing/ ├── /ff_logs_03_03_2022_01_18_PM/ │ ├── ffperf.log │ ├── log_ethconnect_0.log.gz │ └── log_firefly_core_0.log.gz
-
Run:
cd ~/ffperf-testing ./getLogs.sh <stack_name> # ex: ./getLogs.sh test
- In Grafana, add a Prometheus Data Source that points to your firefly node's address on port 9090 (ex. localhost:9090)
- Import
grafanaDashboard.json
in Grafana - If you don't have Grafana on your machine, you can use the docs found here