-
Notifications
You must be signed in to change notification settings - Fork 111
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #737 from GeorgeTsagk/loadtest-push-metrics-updated
Loadtesting metrics, updated
- Loading branch information
Showing
4 changed files
with
169 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
## Description | ||
|
||
This directory (`itest/loadtest`) includes all files and data related to running | ||
the loadtesting suite for taproot assets daemon. These tests use the existing | ||
itest framework to run against real external running daemons. | ||
|
||
The configuration file needs to be named `loadtest.conf` and must be placed on | ||
the working directory in order for the loadtest executable to detect it. A | ||
sample configuration can be found in `loadtest-sample.conf` which includes all | ||
the fields that are required for the tests to run successfully. This includes | ||
connection credentials for the tapd & lnd nodes, as well as a bitcoind backend. | ||
|
||
For further tracking and metrics, a prometheus gateway is configured and used by | ||
the loadtests in order to submit any desired data in-flight. | ||
|
||
## Building | ||
|
||
To create the loadtest executable run `make build-loadtest`. This will | ||
create a `loadtest` binary in your working directory which you can run, given | ||
that you have a correct `loadtest.conf` in the same directory. | ||
|
||
The executable will consult the appropriate fields of `loadtest.conf` and it's | ||
going to run the defined test case with the respective config. | ||
|
||
Example: To run a mint loadtest which mints batches of `450` assets we will | ||
define `test-case="mint"` and `mint-test-batch-size=450` in our `loadtest.conf`. | ||
|
||
## Using dev-resources docker setup | ||
|
||
You can use any kind of external running daemon, as long as it's reachable. The | ||
easiest way to spin up some nodes from scratch for the purpose of the loadtests | ||
is to run the `dev-resources/docker-regtest` setup and use `alice`, | ||
`alice-tapd`, `bob`, `bob-tapd` and the single `bitcoind` instance. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,19 +1,56 @@ | ||
# Network the nodes are connected to | ||
network=regtest | ||
|
||
# The name of the test case to run. Example "send" or "mint" | ||
test-case="mint" | ||
|
||
# Batch size for mint test | ||
mint-test-batch-size=5 | ||
|
||
# Number of send operations to perform for send test | ||
send-test-num-sends=5 | ||
|
||
# Number of assets to send in each send operation for send test | ||
send-test-num-assets=1 | ||
|
||
# Timeout for the entire test suite | ||
test-suite-timeout=120m | ||
|
||
# Timeout for each test | ||
test-timeout=10m | ||
|
||
[bitcoin] | ||
bitcoin.host="localhost" | ||
bitcoin.port=18443 | ||
bitcoin.user=lightning | ||
bitcoin.password=lightning | ||
|
||
|
||
[alice] | ||
alice.tapd.name=alice | ||
alice.tapd.host="localhost" | ||
alice.tapd.port=10029 | ||
alice.tapd.tlspath=path-to-alice/.tapd/tls.cert | ||
alice.tapd.macpath=path-to-alice/.tapd/data/regtest/admin.macaroon | ||
alice.tapd.port=XXX | ||
alice.tapd.tlspath=/path/to/tls.cert | ||
alice.tapd.macpath=/path/to/admin.macaroon | ||
alice.lnd.name=alice_lnd | ||
alice.lnd.host="localhost" | ||
alice.lnd.port=XXX | ||
alice.lnd.tlspath=/path/to/tls.cert | ||
alice.lnd.macpath=/path/to/admin.macaroon | ||
|
||
[bob] | ||
bob.tapd.name=bob | ||
bob.tapd.host="localhost" | ||
bob.tapd.port=10032 | ||
bob.tapd.tlspath=path-to-bob/.tapd/tls.cert | ||
bob.tapd.macpath=path-to-bob/.tapd/data/regtest/admin.macaroon | ||
bob.tapd.port=XXX | ||
bob.tapd.tlspath=/path/to/tls.cert | ||
bob.tapd.macpath=/path/to/admin.macaroon | ||
bob.lnd.name=bob_lnd | ||
bob.lnd.host="localhost" | ||
bob.lnd.port=XXX | ||
bob.lnd.tlspath=/path/to/tls.cert | ||
bob.lnd.macpath=/path/to/admin.macaroon | ||
|
||
[prometheus-gateway] | ||
prometheus-gateway.enabled=true | ||
prometheus-gateway.host=prometheus-gateway-host | ||
prometheus-gateway.port=9091 |