Skip to main content
Chainstack Dedicated Nodes expose monitoring data you can consume from your own observability stack. Today this is a Prometheus-compatible metrics endpoint that reports node-level compute, storage, and chain-head metrics, so you can build dashboards, alerts, and service-level objectives (SLOs) alongside your application metrics.
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:
There is no separate credential to manage. Anywhere you already use your Dedicated Node’s HTTPS endpoint, append /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.
You can also retrieve the URL programmatically from the Chainstack platform API node retrieve response.

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.
Only 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 a node_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 in metrics_path, and the node host goes in targets:
A scrape interval of 15–60 seconds is recommended. This gives you responsive dashboards while staying well within the endpoint’s rate limits.

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 (%)
Memory utilization (%)
Provisioned storage (GiB)
Latest block
Block age (seconds)
From here you can add alerts—for example, on sustained high CPU or memory utilization, or on block age exceeding a threshold suited to your node’s protocol—and SLOs that combine node health with your own application metrics.

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 a 429 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.
Last modified on July 24, 2026