To check whether your node is synchronized with the leader, there's a built-in endpoint at port 5000 called /node-sync. It returns a boolean flag true or false to indicate whether your node is caught up to the latest block, on par with the majority node-runners.
This endpoint can be used to feed into your favorite dashboard metrics (Grafana, CloudWatch, etc.) and trigger alarms (Healthchecks.io, UptimeRobot, PagerDuty, webhooks into Discord, etc.) that can to help monitor your node operations. If you're running a node service to host the RPC endpoint on port 9500, this will be a great way to check the health of your nodes behind a load balancer and take unhealthy nodes out of rotation.
Network Status
Here you can check the status of Harmony Mainnet & Testnet:
Make sure you have Golang installed. For instructions on how to install here click here. To make sure it is installed run correctly:
go version
Output example:
go version go1.16.3 linux/amd64
Check Metrics
Make sure metrics are being exposed. For this check you can run:
curl localhost:9900/metrics | grep ^hmy
Output example:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 6087 0 6087 0 0 849k 0 --:--:-- --:--:-- -hmy_consensus_blskeys{index="0",pubkey="892f005b61d2c4f482a87a1da7226c210dbb6175b52ba391a941bcdab577f90767d0bbb5282f0d073b73eeb706c14810"} 0
-:--hmy_consensus_finality_bucket{le="800"} 1959
:-hmy_consensus_finality_bucket{le="1000"} 1960
- hmy_consensus_finality_bucket{le="1250"} 1960
8hmy_consensus_finality_bucket{le="1562.5"} 1960
49hmy_consensus_finality_bucket{le="1953.125"} 1960
khmy_consensus_finality_bucket{le="2441.40625"} 1960 (...continues)
You can now load Prometheus on your browser: http://Your_IP_Address:9090. You can run up or any other query to see if everthing is working as expected:
Setup Grafana
Install
Follow instructions here on how to download and install Grafana for your OS.
Make sure to enable and start Grafana server.
Once started, you should be able to load Grafana on your browser: http://Your_IP_Address:3000. Default user and password is admin.
Add Prometheus Datasource
Go to http://Your_IP_Address:3000/datasourcesand add Prometheu as datasource:
Import Dashboard
Go to http://Your_IP_Address:3000/dashboard/import and load the json file below: