Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add reporting to goose shoot and improve error handling #42

Merged
merged 12 commits into from
Mar 18, 2024
36 changes: 35 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,11 +85,12 @@ The configuration is defined by the following spec

- `num_erc20_transfers`: Number of ERC20 `transfer` transactions
- `num_erc721_mints`: Number of ERC721 `mint` transactions
- `concurrency`: How many transactions to do simultaneously

- `report`

- `num_blocks`: Number of last blocks to take into account in the report
- `reports_dir`: Path to the directory where to save the reports
- `location`: Path to the file where to save the reports
tdelabro marked this conversation as resolved.
Show resolved Hide resolved

- `deployer`

Expand All @@ -103,6 +104,39 @@ The configuration is defined by the following spec
gatling shoot -c config/default.yaml
```

### Output

The main output of gomu gomu is the report location specified in specified in the configuration file.

At the end of all benchmarks gomu gomu will collect the results into a single json file with the following structure:

- `users`: The amount of goose users used to do the benchmarks, changed by `concurrency`

- `all_bench_report`: A report over all benchmarks done, has a portion of metrics that `benches` has

- `benches`: A array of reports for all benchmarks

- `name`: The name of the benchmark
- `amount`: How many times this benchmark was ran
- `metrics`: Metrics over the whole benchmark

- `name`: The name of the metric
- `unit`: The unit of the metric, empty when there is no unit
- `value`: The metrics value, a number

- For floats, `Infinite` and `NaN` are not JSON numbers and thus will be turned into `null`
- Values gotten from submission time are calculated from the latency to add a new transaction to the node
- Values gotten from verification time are calculated from the latency to get the transaction receipt after the transactions have been processed

- `last_x_blocks_metrics`: Metrics over the last blocks of the benchmark

- `num_blocks`: The amount of last transactions that were measured
- `metrics`: An array of metrics

- `extra`: Extra information for this run

Gomu gomu will also display into the console information about each step in the benchmark.

## Resources

- Gomu Gomu is originally inspired from [Flood](https://github.com/paradigmxyz/flood)
Expand Down
2 changes: 1 addition & 1 deletion config/default.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ run:

report:
num_blocks: 4
reports_dir: "reports"
location: "report"

deployer:
salt: "1"
Expand Down
2 changes: 1 addition & 1 deletion config/katana.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ run:

report:
num_blocks: 4
reports_dir: "reports"
location: "report"

deployer:
salt: "1"
Expand Down
2 changes: 1 addition & 1 deletion config/sharingan.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ run:

report:
num_blocks: 4
reports_dir: "reports"
location: "report"

# need to add an adress and signing key on sharingan network
deployer:
Expand Down
2 changes: 1 addition & 1 deletion config/v2.1.0.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ run:

report:
num_blocks: 3
reports_dir: "reports"
location: "report"

deployer:
salt: "1"
Expand Down
Loading
Loading