Your node's vital signs, straight off the wire.
Pearl Metrics renders a pearld Prometheus scrape the way an
operator actually reads it: chain-tip freshness, peer health, wire traffic by command,
per-method RPC latency from the real histogram buckets, mempool pressure, and
per-second rates between scrapes. Everything is parsed in this page — nothing is
uploaded anywhere.
/metrics endpoint
comes from upstream pearl-research-labs/pearl
PR #310 (--metricslisten, default port 9105), which is
not yet in a released pearld as of 2026-10-06. This dashboard is built
against that PR's published metric catalogue (node/metrics/README.md on the
branch) so it is ready the day the PR lands — until then, use it with a pearld built
from that branch, or explore it with the clearly-labelled sample scrape.
The endpoint is unauthenticated: upstream warns to bind it to loopback or a
firewalled private address, never the public internet.
Get a scrape
Enable it on the node with pearld --metricslisten=127.0.0.1:9105.
Browsers usually can't fetch it from this HTTPS page (pearld sends no CORS headers) —
running this page locally against a loopback node works, and paste always works.
No scrape loaded yet.
Health notes (heuristics, not consensus)
Chain
Peers
Mempool
RPC by method
Latency is computed from the pearld_rpc_request_duration_seconds
histogram: mean is exact (sum ÷ count); p95 is approximated by interpolation inside
the bucket where the rank falls, and is hidden when the rank falls in the +Inf bucket.
| Method | Requests | Errors | Error % | Mean | p95 ≈ |
|---|
Wire traffic by command
| Command | Messages in | Messages out | Bytes in | Bytes out |
|---|
All series
| Series | Type | Value |
|---|
Includes the standard go_* and process_*
series pearld exports on the same endpoint — they're listed, just not summarised above.
How this differs from the Node console
The Pearl Node console polls JSON-RPC
(getinfo, getpeerinfo, …) for live state. This dashboard reads the
Prometheus endpoint instead, which carries what RPC doesn't publish: cumulative RPC
request/latency statistics per method, auth failures, wire bytes per P2P command,
peer bans and rejection reasons, and block connect/disconnect counters. Operators running
Prometheus + Grafana don't need this page at all — it's for a quick, dependency-free look
at one scrape, on any machine, with nothing installed.