Do not run this procedure. Wait for the official Monad Foundation announcement.
Collecting node metrics through the OpenTelemetry (OTel) collector is deprecated. Use the native metrics endpoint instead.
Default configuration
Since v0.16.0, the native metrics endpoint is enabled by default:- Port:
9143/TCP. - Listen address:
0.0.0.0:9143(all IPv4 interfaces). - Path:
/metrics. - Local URL:
http://127.0.0.1:9143/metrics. - Remote URL:
http://NODE_IP:9143/metrics.
/home/monad/monad-bft/config/node.toml:
Configure your node
1. Configure the endpoint
The endpoint is enabled by default, so no extra configuration is required. To confirm, edit thenode.toml file and verify the metrics endpoint is not set as enabled = false.
To set up a custom port, for example, to listen on port 9144:
monad-bft service to reload the configuration.
2. Set up the firewall
Block the metrics port from the public internet and allow only approved monitoring source IPs. It is requested that validators allow the Monad Foundation monitoring server’s source IP (84.32.32.227) to access their metrics endpoint.
9143 in the commands above.
Verify that the allow from 84.32.32.227 appears above the deny from Anywhere.
3. Verify the endpoint
Locally, this should work:# TYPE lines.
Also, from another node on the internet, test with the node’s public address to confirm the firewall is blocking external traffic:
Monad Foundation scrapping
By default, Monad Foundation will scrape all active validators on their public IP address, on the default9143 port.
Custom port
It is possible to expose the validator metrics using a custom port or custom IP address. You can set up your metrics endpoint on a different port (see above), or behind a NAT setup. To declare the custom configuration, set the optionalmetrics_address or metrics_port on your validator-info record. Open a pull request in monad-developers/validator-info with the change.
For example, merge the following fields into your validator file, keeping its other fields unchanged:
http://, a port, or /metrics; specify the port separately as an integer. Do not use 0.0.0.0 as metrics_address: it is a local bind address, not a scrape destination.
The reachable address does not have to be the node’s own IP. The endpoint can be exposed through NAT redirection — a firewall or load balancer that forwards a custom public IP and port to the node’s listen_addr — in which case metrics_address and metrics_port must match that public-facing IP and port, not the node’s internal bind address.
Confirming MF connects
To confirm Monad Foundation is actively scraping your metrics endpoint, check both sides of the connection. To see the MF monitoring server’s requests coming in:Related instructions
- v0.16.0 upgrade instructions: configuration rename and metrics defaults.
- v0.16.1 upgrade instructions: confirmation of the default endpoint for mainnet and testnet operators.

