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
.envfile which will contain the configuration parameters. You can start by copying.env.exampleand adapting it for your use casecp .env.example .env ${EDITOR} .envThe 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-id1, then you have to follow the steps of registering an RLN membership. Otherwise, you can skip this step.For it, you need:
- Ethereum Linea Sepolia WebSocket endpoint. Get one free from Infura.
- Ethereum Linea Sepolia account with minimum 0.01ETH. Get some here.
- A password to protect your rln membership.
Fill the
RLN_RELAY_ETH_CLIENT_ADDRESS,ETH_TESTNET_KEYandRLN_RELAY_CRED_PASSWORDenv 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-monitoringto track the stats of your node that is publishing messages and performing queries, andsonda-monitoringto monitor the responses of the store nodes.