2018-07-05 16:06:11 -04:00
|
|
|
# tm-monitor
|
|
|
|
|
|
|
|
Tendermint blockchain monitoring tool; watches over one or more nodes,
|
|
|
|
collecting and providing various statistics to the user:
|
|
|
|
|
2018-08-07 18:40:11 -04:00
|
|
|
- https://github.com/tendermint/tendermint/tree/master/tools/tm-monitor
|
2018-07-05 16:06:11 -04:00
|
|
|
|
|
|
|
## Quick Start
|
|
|
|
|
|
|
|
### Docker
|
|
|
|
|
|
|
|
Assuming your application is running in another container with the name
|
|
|
|
`app`:
|
|
|
|
|
2018-07-06 14:25:04 -04:00
|
|
|
```
|
|
|
|
docker run -it --rm -v "/tmp:/tendermint" tendermint/tendermint init
|
|
|
|
docker run -it --rm -v "/tmp:/tendermint" -p "26657:26657" --name=tm --link=app tendermint/tendermint node --proxy_app=tcp://app:26658
|
2018-07-05 16:06:11 -04:00
|
|
|
|
2018-07-06 14:25:04 -04:00
|
|
|
docker run -it --rm -p "26670:26670" --link=tm tendermint/monitor tm:26657
|
|
|
|
```
|
2018-07-05 16:06:11 -04:00
|
|
|
|
|
|
|
If you don't have an application yet, but still want to try monitor out,
|
|
|
|
use `kvstore`:
|
|
|
|
|
2018-07-06 14:25:04 -04:00
|
|
|
```
|
|
|
|
docker run -it --rm -v "/tmp:/tendermint" tendermint/tendermint init
|
|
|
|
docker run -it --rm -v "/tmp:/tendermint" -p "26657:26657" --name=tm tendermint/tendermint node --proxy_app=kvstore
|
|
|
|
```
|
2018-08-27 15:33:46 +08:00
|
|
|
|
2018-07-06 14:25:04 -04:00
|
|
|
```
|
|
|
|
docker run -it --rm -p "26670:26670" --link=tm tendermint/monitor tm:26657
|
|
|
|
```
|
2018-07-05 16:06:11 -04:00
|
|
|
|
|
|
|
### Using Binaries
|
|
|
|
|
|
|
|
[Install Tendermint](https://github.com/tendermint/tendermint#install)
|
|
|
|
|
|
|
|
then run:
|
|
|
|
|
2018-07-06 14:25:04 -04:00
|
|
|
```
|
|
|
|
tendermint init
|
|
|
|
tendermint node --proxy_app=kvstore
|
|
|
|
```
|
2018-07-05 16:06:11 -04:00
|
|
|
|
2018-07-06 14:25:04 -04:00
|
|
|
```
|
|
|
|
tm-monitor localhost:26657
|
|
|
|
```
|
2018-07-05 16:06:11 -04:00
|
|
|
|
|
|
|
with the last command being in a seperate window.
|
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
2018-07-06 14:25:04 -04:00
|
|
|
```
|
|
|
|
tm-monitor [-v] [-no-ton] [-listen-addr="tcp://0.0.0.0:26670"] [endpoints]
|
2018-07-05 16:06:11 -04:00
|
|
|
|
2018-07-06 14:25:04 -04:00
|
|
|
Examples:
|
|
|
|
# monitor single instance
|
|
|
|
tm-monitor localhost:26657
|
2018-07-05 16:06:11 -04:00
|
|
|
|
2018-07-06 14:25:04 -04:00
|
|
|
# monitor a few instances by providing comma-separated list of RPC endpoints
|
|
|
|
tm-monitor host1:26657,host2:26657
|
|
|
|
Flags:
|
|
|
|
-listen-addr string
|
|
|
|
HTTP and Websocket server listen address (default "tcp://0.0.0.0:26670")
|
|
|
|
-no-ton
|
|
|
|
Do not show ton (table of nodes)
|
|
|
|
-v verbose logging
|
|
|
|
```
|
2018-07-05 16:06:11 -04:00
|
|
|
|
|
|
|
### RPC UI
|
|
|
|
|
2018-07-06 13:31:39 -04:00
|
|
|
Run `tm-monitor` and visit http://localhost:26670 You should see the
|
2018-07-05 16:06:11 -04:00
|
|
|
list of the available RPC endpoints:
|
|
|
|
|
2018-08-27 15:33:46 +08:00
|
|
|
```
|
2018-07-06 14:25:04 -04:00
|
|
|
http://localhost:26670/status
|
|
|
|
http://localhost:26670/status/network
|
|
|
|
http://localhost:26670/monitor?endpoint=_
|
|
|
|
http://localhost:26670/status/node?name=_
|
|
|
|
http://localhost:26670/unmonitor?endpoint=_
|
|
|
|
```
|
2018-07-05 16:06:11 -04:00
|
|
|
|
|
|
|
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
|
|
|
|
|
2018-07-06 14:25:04 -04:00
|
|
|
```
|
|
|
|
make get_tools
|
|
|
|
make get_vendor_deps
|
|
|
|
make test
|
|
|
|
```
|