1.8 KiB
Sonda
Sonda is a tool to monitor store nodes and measure their performance.
It works by running a nwaku
node, publishing a message from it every fixed interval and performing a store query to all the store nodes we want to monitor to check they respond with the last message we published.
Instructions
-
Create an
.env
file which will contain the configuration parameters. You can start by copying.env.example
and adapting it for your use casecp .env.example .env ${EDITOR} .env
The variables that have to be filled for Sonda are
CLUSTER_ID= SHARD= # Comma separated list of store nodes to poll STORE_NODES= # Wait time in seconds between two consecutive queries QUERY_DELAY= # Consecutive successful store requests to consider a store node healthy HEALTH_THRESHOLD=
-
If you want to query nodes in
cluster-id
1, then you have to follow the steps of registering an RLN membership. Otherwise, you can skip this step.For it, you need:
- Ethereum Sepolia WebSocket endpoint. Get one free from Infura.
- Ethereum Sepolia account with some balance <0.01 Eth. Get some here.
- A password to protect your rln membership.
Fill the
RLN_RELAY_ETH_CLIENT_ADDRESS
,ETH_TESTNET_KEY
andRLN_RELAY_CRED_PASSWORD
env variables and run./register_rln.sh
-
Start Sonda by running
docker-compose up -d
-
Browse to http://localhost:3000/dashboards and monitor the performance
There's two Grafana dashboards:
nwaku-monitoring
to track the stats of your node that is publishing messages and performing queries, andsonda-monitoring
to monitor the responses of the store nodes.