metrics cargo feature expose Prometheus-compatible metrics. You scrape those into your own monitoring, and the network runs fleet-wide dashboards on top, covered below. Alert guidance lives with each setup guide: storage node and gateway.
The endpoint
Metrics are opt-in at build time: the binary must be compiled with themetrics cargo feature (the repository’s make targets do this). A metrics build serves /v1/metrics on the node’s regular HTTP listener; there is no separate metrics port. Serving is enabled unless you set metrics.enabled: false in node.yaml.
Node metrics
- Chain ingest:
tape_node_ingest_tip_slotandtape_node_ingest_lag_slots(how far behind the tip the node’s view is),tape_node_blocks_processed_total,tape_node_replay_events_total,tape_node_epoch_transitions_total. - Spool sync:
tape_node_spool_bytes_total{op, stage}for pipeline traffic when spools move,tape_node_epoch_synced_groupsfor per-epoch progress,tape_node_repair_escalations_totalwhen recovery has to escalate. - Storage fullness:
tape_store_disk_used_bytesagainsttape_store_disk_available_bytes, plustape_node_shards_ownedfor how many spools the node currently holds. - Committee state:
tape_node_status(1 when active in the committee),tape_node_epoch,tape_node_epoch_phase,tape_node_committee_size,tape_node_groups_total,tape_node_peers_total,tape_node_peer_capacity. - Peer serving:
tape_node_requests_total,tape_node_bytes_uploaded_total,tape_node_bytes_downloaded_total. - Queue health:
tape_node_channel_depthfor per-feature backlog inside the node.
Gateway metrics
- Request latency and throughput:
tape_http_request_duration_seconds{route, method, status_class}(error rates come fromstatus_class) andtape_http_response_bytes_total{route}, shared with the node listener. - Decode pipeline:
tape_gw_decode_duration_seconds{kind},tape_gw_decode_total{result},tape_gw_decode_slices_total{outcome}for per-slice fetch outcomes,tape_gw_decode_output_bytes_total. - Slice cache:
tape_gw_cache_requests_total{result}for hit rate,tape_gw_cache_evicted_totalfor churn.
Fleet observability
Your node’s metrics are also part of how the network sees itself. Every node serves a structured health board at/v1/observe/board; a node with metrics.aggregate_peers: true (off by default, meant for nodes backing a dashboard) also probes its committee peers on an interval and serves the aggregate at /v1/observe/network, with /v1/observe/peer/{addr}/board proxying any single peer. Dashboards built on those routes show sync status, capacity, and version spread across the committee, answering the first question you’ll have when something looks wrong on your machine: is this me, or is this everyone?