Benchmarking and Monitoring =========================== tm-bench -------- Tendermint blockchain benchmarking tool: https://github.com/tendermint/tools/tree/master/tm-bench For example, the following: :: tm-bench -T 10 -r 1000 localhost:46657 will output: :: Stats Avg Stdev Max Block latency 6.18ms 3.19ms 14ms Blocks/sec 0.828 0.378 1 Txs/sec 963 493 1811 Quick Start ^^^^^^^^^^^ Docker ~~~~~~ :: docker run -it --rm -v "/tmp:/tendermint" tendermint/tendermint:0.12.1 init docker run -it --rm -v "/tmp:/tendermint" -p "46657:46657" --name=tm tendermint/tendermint:0.12.1 docker run -it --rm --link=tm tendermint/bench tm:46657 Binaries ~~~~~~~~ If **Linux**, start with: :: curl -L https://s3-us-west-2.amazonaws.com/tendermint/0.12.1/tendermint_linux_amd64.zip && sudo unzip -d /usr/local/bin tendermint_linux_amd64.zip && sudo chmod +x tendermint if **Mac OS**, start with: :: curl -L https://s3-us-west-2.amazonaws.com/tendermint/0.12.1/tendermint_darwin_amd64.zip && sudo unzip -d /usr/local/bin tendermint_darwin_amd64.zip && sudo chmod +x tendermint then run: :: tendermint init tendermint node --app_proxy=dummy tm-bench localhost:46657 with the last command being in a seperate window. Usage ^^^^^ :: tm-bench [-c 1] [-T 10] [-r 1000] [endpoints] Examples: tm-bench localhost:46657 Flags: -T int Exit after the specified amount of time in seconds (default 10) -c int Connections to keep open per endpoint (default 1) -r int Txs per second to send in a connection (default 1000) -v Verbose output Development ^^^^^^^^^^^ :: make get_vendor_deps make test tm-monitor ---------- Tendermint blockchain monitoring tool; watches over one or more nodes, collecting and providing various statistics to the user: https://github.com/tendermint/tools/tree/master/tm-monitor Quick Start ^^^^^^^^^^^ Docker ~~~~~~ :: docker run -it --rm -v "/tmp:/tendermint" tendermint/tendermint init docker run -it --rm -v "/tmp:/tendermint" -p "46657:46657" --name=tm tendermint/tendermint docker run -it --rm --link=tm tendermint/monitor tm:46657 Binaries ~~~~~~~~ This will be the same as you did for ``tm-bench`` above, except for the last line which should be: :: tm-monitor localhost:46657 Usage ^^^^^ :: tm-monitor [-v] [-no-ton] [-listen-addr="tcp://0.0.0.0:46670"] [endpoints] Examples: # monitor single instance tm-monitor localhost:46657 # monitor a few instances by providing comma-separated list of RPC endpoints tm-monitor host1:46657,host2:46657 Flags: -listen-addr string HTTP and Websocket server listen address (default "tcp://0.0.0.0:46670") -no-ton Do not show ton (table of nodes) -v verbose logging RPC UI ^^^^^^ Run ``tm-monitor`` and visit http://localhost:46670 You should see the list of the available RPC endpoints: :: http://localhost:46670/status http://localhost:46670/status/network http://localhost:46670/monitor?endpoint=_ http://localhost:46670/status/node?name=_ http://localhost:46670/unmonitor?endpoint=_ The API is available as GET requests with URI encoded parameters, or as JSONRPC POST requests. The JSONRPC methods are also exposed over websocket. Development ^^^^^^^^^^^ :: make get_vendor_deps make test