Pyrometer — A Tezos node and baker monitoring tool
It is very important for a ceramic artist observing a kiln firing their art pieces to know how things are progressing. For a Tezos baker it is not very different — they need to know how their baking goes and be able to check on it. Ceramic artists use pyrometers or pyrometric cones to see how their bakes progress and now there is Pyrometer for Tezos bakers as well.
We are introducing a new open-source tool that helps with monitoring Tezos nodes and bakers. It can be configured to monitor various events from the health of the network to baking/endorsement successes or failures. Pyrometer monitors the set of events determined by the user and sends notification on various channels when one or more such events happen. It can be used with mainnet or testnets. Pyrometer can run anywhere independently of Tezos nodes, it just needs Tezos node RPC access.
Notifications
Pyrometer notifications can be received through the following channels: local desktop notifications, post to a webhook, email, Telegram, and Slack. Notifications for baker events are batched and aggregated, which allows one to effectively monitor any number of bakers. We have successfully tested pyrometer with a single baker all the way up to the entire set of registered bakers on the mainnet. Notification frequency can be set up through the config file.
Dependencies
Pyrometer is a NodeJS application with no native dependencies and should be able to run anywhere NodeJS (16 or later) runs. A docker image, npm package and Ubuntu/Debian package are available.
It requires access to a node RPC endpoint in order to work. After installation you can specify either a public or private node RPC endpoint.
The initial version of Pyrometer is a headless service and is configured via a single human and machine friendly config file written in TOML format.
How to Install and run Pyrometer
Below are the steps to run Pyrometer on Ubuntu. Other runtime scenarios are described in the readme.
Make sure you have the right version of NodeJS installed
Check the version of your Node JS
node --version
If the version is less than 16 or you don’t have Node JS installed, run the following:
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -sudo apt-get install -y nodejs
If you have any issues with NodeJS installation, refer here for more information.
Install Pyrometer
Download the latest Pyrometer release. Under Ubuntu look for the .deb file and save.
Run
sudo dpkg -i pyrometer_0.3.2_all.deb
Setup the config file
In order to run, Pyrometer needs information in your config file. By default all notification channels are disabled. It also needs information if you want to use email, Telegram or Slack. Pyrometer does not have an email server, bot or app of its own. It relies on the user to provide respective information. Below are some details on how to set up a config file and notification channels.
Open and edit the config file at /etc/pyrometer.toml
Here’s the list of settings in the config file with some explanation.
You can also find the information about config file parameters by running:
pyrometer run --help
When done editing, save and exit.
Now you need to restart Pyrometer.
sudo systemctl restart pyrometer
You should now start receiving notifications via the channels you set up.
Troubleshooting
If you do not see anything happening, you may want to do a couple of checks.
Overall:
- RPC URL is set up correctly — check the URL format and that the node RPC is accessible from the machine Pyrometer runs on.
- For notification checks you may want to include bakes and endorsements notifications first, just to make sure you receive notifications. For testing purposes you may also include a couple of active bakers, if your own are not baking/endorsing frequently.
- Make sure you have provided the correct tz addresses for bakers and/or URLs for nodes you wish to monitor.
- Check logs by running
journalctl -u pyrometer -f
- Change the log level to
debug
in the config file.
For Telegram:
- Check that you have set
enabled
to true. - Check that the token is correct.
- If the bot remains silent, send another message to it — does not matter what message it is.
- If it has been more than 24 hours between bot creation and change to config, send the bot any message.
For Slack:
- Check that you have set
enabled
to true. - Check that the webhook URL is correct.
- Check that you have sufficient permissions to post to the channel you selected (if you selected a channel, not direct messages).
For Email:
- Check that you have set
enabled
to true. - Check that the email service allows you to use smtp directly, some require changing settings first (e.g. with GMail it requires a special settings change).
- Make sure you have provided correct values for all parameters.
You may want to test email notifications first using fake smtp described in the Pyrometer readme.
What’s next
Web user interface will be added in future releases.
Feedback
Please report any issues on Gitlab.