Tenderduty is no stranger to seasoned validators in the Cosmos ecosystem. For everyone else, Tenderduty is an OSS monitoring tool for Tendermint validators with out-of-the-box support for Telegram, Discord, Slack and Pagerduty alerts on a series of key metrics such as missed blocks or chain halts. The tool exposes a live dashboard with key metrics across all configured chains in real-time. Due to its setup simplicity, it is a popular choice for validator monitoring.
We are big fans of Tenderduty but have noticed opportunities of improvement, which we started working on earlier this year. When we were about to merge our improvements upstream, we realized the original repository was archived. As we heavily rely on it (among additional lines of defense to proactively detect performance issues - redundancy is key!), we have decided to pick up the baton and start maintaining our own version of the project.
For now, we have added two new features:
Governance monitoring.
Enhanced Namada support.
Validator governance participation is paramount to the well functioning of a blockchain. Sadly, the current state of affairs in most blockchain's governance is to communicate proposals and open votes through Discord channels and Forums, without any reliable process to systematically ensure validators don't miss votes. This is stressful for validators who want to deliver on their duties because they have to constantly sift through many channels across several Discords to ensure no proposal falls through the cracks.
We decided to take action by adding the following features to Tenderduty:
Unvoted proposal alerts. Receive notifications via those channels set up for "warning" level alerts.
Unvoted proposal dashboard reporting. View the number of unvoted open proposals per chain in your Tenderduty dashboard.
Unvoted proposal Prometheus metric. Scrape the number of unvoted open proposals per chain via Prometheus.
This is an example of a governance alert which got resolved after we promptly voted:
If you're a Tenderduty user who is validating on Namada, you'll have noticed certain information is missing in the Tenderduty dashboard. Whether the moniker, uptime data or slashing threshold. We couldn't find this information through the usual ABCI querying method, so instead this feature relies on Namada indexers, which can be configured in your config.yml
.
This is how it looks for us now:
The repository can be found at https://github.com/Firstset/tenderduty. If you want to contribute to it, we'd rather you open an issue first, but PRs are also welcome.
And if you have any feedback or feature requests, let us know.