AvailabilityMonitoring is available on Dedicated Nodes only. A Pro, Business, or Enterprise subscription is required—see Chainstack pricing and subscription plans.
Metrics endpoint
Every Dedicated Node serves a Prometheus-compatible metrics endpoint you can scrape from Prometheus, Grafana Agent, VictoriaMetrics, or any Prometheus-compatible scraper. It returns node-level metrics in the standard Prometheus exposition format, and it is authenticated and isolated per node so you only ever see your own data.Endpoint URL
The metrics endpoint lives on your node’s own hostname, at the/metrics path, and uses the same access token as your node’s RPC endpoint:
/metrics to reach the metrics route.
Find your endpoint
1
Open your node
Log in to the Chainstack console, open your project, and select your Dedicated Node.
2
Copy the metrics endpoint
On the node detail page, find the metrics endpoint URL in the node’s access and credentials details. It combines your node’s host with your access token.
Authentication and isolation
Authentication uses the access token in the endpoint path—the same token as your RPC endpoint:- A missing or invalid token is rejected with
401. - A token issued for one node cannot be used to scrape another node.
- Each response is scoped on the server to your node only. Query-string and request-body parameters supplied by the client are stripped, so you cannot widen the scope to any other node, and no other organization can reach your data.
GET and HEAD requests are accepted on the metrics endpoint. Other methods return 405.
Available metrics
The endpoint exposes the following node-level series, all gauges. Each carries anode_id label identifying your node.
Compute and storage
Chain head
Chain head metrics (
chainstack_node_block_*) are available for supported protocols only. If your node’s protocol is not yet covered, these series are absent from the response while the compute and storage series are still served.chainstack_node_block_age_seconds is a local measure—wall-clock time minus the timestamp of the newest block this node has ingested—not a comparison against the network’s chain head. Read it against a per-protocol threshold rather than as an absolute: a fully synced node still reports a nonzero value close to the chain’s normal block interval, which is a few seconds on Ethereum-family chains and several minutes on Bitcoin-family chains. The value also grows when the chain itself stops producing blocks, not only when a node lags. It is recomputed periodically on the server, so a scraped reading can be a few tens of seconds old.
Example response:
Quick check
Confirm the endpoint responds with a single request:Scrape with Prometheus
Add your node as a scrape target. The access token goes inmetrics_path, and the node host goes in targets:
Visualize in Grafana
With the node scraped into Prometheus, add the metrics as a data source in Grafana and build panels from the series. A starter set of panels: CPU utilization (%)Rate limits
The metrics endpoint is rate-limited to protect the node. A scrape interval of 15–60 seconds passes comfortably; excessive scrape rates are throttled with a429 response and a Retry-After header indicating how many seconds to wait before retrying.
Rate limiting on the metrics endpoint is independent of your RPC traffic—hitting the metrics limit does not throttle JSON-RPC, WebSocket, or other requests to the node. For more, see Chainstack limits and rate limiting.