Monitor the health of a Celo validator deployment with alerts like:
Linux machine with Docker and docker-compose installed.
OR
Cloud provider capable of deploying Docker containers (eg Google Cloud Run or Amazon ECS)
OR
Kubernetes cluster of your choice.
- Clone this repo:
git clone https://github.com/alchemydc/celo-network-monitor.git
- Edit template-addresses.mainnet.yaml to include addresses for your your validator group (and any other accounts you wish to monitor)
- Edit mainnet.env to include your Discord webhook
cd docker && docker-compose up
- Profit
First, set the addresses you'd like to monitor in addresses.<network>.yaml
and set your node and alerting envars in <network>.env
.
Then, develop this project locally with:
# Setup
yarn
# Test
yarn test
# Run locally
ENV_FILE=<network>.env yarn dev
Monitors can be enabled or disabled by commenting out desired monitors in src/monitor/monitor.ts
. Default monitors include:
- Attestation Service - Monitor a validator's Attestation service (disabled by default)
- Balance - Monitor the CELO and cUSD balances of all addresses specified in the addresses yaml file
- Electability Threshold - Monitor the threshold of votes needed to get elected
- Governance - Monitor the network for governance activity
- Key Rotation - When validator keys are rotated, ensure that they are fully rotated
- Network Participation - Monitor overall network participation numbers
- Node - Monitor Celo node & network health
- Pending Votes - Monitor our addresses for pending votes. Remind us to activate them
- Tobin Tax - Remind us if/when the Tobin Tax is activated. Never send transactions when it is
- Validator - Monitor the health of our validators
The included build script and Dockerfile make it easy to package up your changes into a new image and quickly deploy a new container.