Skip to content

Metrics

The validator node and the indexer export Prometheus metrics in OpenMetrics text format. Counters carry a _total suffix. Every series is labelled with app and the node’s public_key.

AppEndpointConfig keyapp label
Validator nodeGET /_metrics on a dedicated listener (default 127.0.0.1:18201)validator_node.metrics_listener_addressValidatorNode
IndexerGET /_metrics on a dedicated listener (default 127.0.0.1:18302)indexer.metrics_listen_addressOotleIndexer

Unsetting the listener address disables the endpoint.

MetricTypeLabelsMeaning
libp2p_ping_rtt_secondshistogramPing round-trip time to peers.
libp2p_ping_failure_totalcounterreasonPing failures by kind.
libp2p_identify_errors_totalcounterIdentify protocol errors.
libp2p_identify_pushed_totalcounterIdentify pushes sent.
libp2p_identify_received_totalcounterIdentify infos received.
libp2p_identify_sent_totalcounterIdentify infos sent.
libp2p_identify_remote_protocolsgaugeprotocolIdentified peers supporting each protocol.
libp2p_identify_remote_listen_addressesgaugelisten_addressPeers advertising each listen-address stack.
libp2p_identify_local_observed_addressesgaugeobserved_addressPeers reporting each observed address for this node.
libp2p_gossipsub_messages_totalcounterGossipsub messages received.
libp2p_relay_events_totalcountereventRelay server events (reservations, circuits).
libp2p_dcutr_events_totalcountereventHole-punch successes and failures.

These series are exported but not yet recorded, so they read zero.

MetricTypeMeaning
libp2p_swarm_connections_incoming_totalcounterInbound connections received.
libp2p_swarm_connections_incoming_error_totalcounterInbound connections that failed to upgrade.
libp2p_swarm_connections_established_totalcounterConnections established.
libp2p_swarm_connections_establishment_durationhistogramTime to establish a connection.
libp2p_swarm_connections_duration_secondshistogramLifetime of closed connections.
libp2p_swarm_new_listen_addr_totalcounterNew listen addresses.
libp2p_swarm_expired_listen_addr_totalcounterExpired listen addresses.
libp2p_swarm_external_addr_candidates_totalcounterExternal address candidates.
libp2p_swarm_external_addr_confirmed_totalcounterExternal addresses confirmed.
libp2p_swarm_external_addr_expired_totalcounterExternal addresses expired.
libp2p_swarm_listener_closed_totalcounterListeners closed.
libp2p_swarm_listener_error_totalcounterListener errors.
libp2p_swarm_dial_attempt_totalcounterOutbound dial attempts.
libp2p_swarm_outgoing_connection_error_totalcounterOutbound connection failures.
MetricTypeMeaning
libp2p_ext_substream_num_open_substreamsgaugeSubstreams opened; never decremented, so it is cumulative.
libp2p_ext_substream_inbound_open_count_totalcounterInbound substreams opened.
libp2p_ext_substream_inbound_failure_count_totalcounterInbound substream failures.
libp2p_ext_substream_outbound_failure_count_totalcounterOutbound substream failures.
libp2p_ext_substream_error_count_totalcounterInbound plus outbound substream failures.
libp2p_ext_messaging_received_message_count_totalcounterDirect messages received.
libp2p_ext_messaging_num_messages_sent_totalcounterDirect messages sent.
libp2p_ext_messaging_inbound_failure_count_totalcounterInbound messaging stream failures.
libp2p_ext_messaging_outbound_failure_count_totalcounterOutbound messaging stream failures.
libp2p_ext_messaging_inbound_stream_opened_count_totalcounterInbound messaging streams opened.
libp2p_ext_messaging_outbound_stream_opened_count_totalcounterOutbound messaging streams opened.
libp2p_ext_messaging_num_open_substreamsgaugeMessaging streams currently open.
libp2p_ext_messaging_error_count_totalcounterMessaging errors.
MetricTypeMeaning
libp2p_ext_rendezvous_client_registered_totalcounterSuccessful registrations with a rendezvous server.
libp2p_ext_rendezvous_client_register_failed_totalcounterFailed registrations with a rendezvous server.
libp2p_ext_rendezvous_client_discovered_totalcounterDiscover responses received.
libp2p_ext_rendezvous_client_discovered_peers_totalcounterPeers discovered via rendezvous.
libp2p_ext_rendezvous_client_discover_failed_totalcounterFailed discover requests.
libp2p_ext_rendezvous_client_expired_totalcounterDiscovered peers whose registration expired.
libp2p_ext_rendezvous_server_peer_registered_totalcounterPeers that registered with this node.
libp2p_ext_rendezvous_server_peer_not_registered_totalcounterRegistrations this node declined.
libp2p_ext_rendezvous_server_peer_unregistered_totalcounterPeers that unregistered from this node.
libp2p_ext_rendezvous_server_registration_expired_totalcounterRegistrations held by this node that expired.
libp2p_ext_rendezvous_server_discover_served_totalcounterDiscover requests served.
libp2p_ext_rendezvous_server_discover_not_served_totalcounterDiscover requests this node could not serve.
MetricTypeMeaning
tari_consensus_blocks_committed_totalcounterBlocks committed locally.
tari_consensus_commit_heightgaugeHeight of the last committed block.
tari_consensus_current_epochgaugeEpoch of the last committed block.
tari_consensus_num_commandsgaugeCommands in committed blocks; only increases.
tari_consensus_published_templates_count_totalcounterTemplates published by committed transactions.
tari_consensus_messages_received_totalcounterHotStuff messages received.
tari_consensus_errors_totalcounterConsensus errors.
tari_consensus_pacemaker_heightgaugeCurrent pacemaker height; stalls when the chain is not progressing.
tari_consensus_leader_failures_totalcounterLeader timeouts.
tari_consensus_block_validation_failed_totalcounterProposed blocks that failed validation.
tari_consensus_needs_sync_totalcounterReserved; not yet recorded.
tari_consensus_vote_equivocations_totalcounterCommittee members caught signing conflicting votes for one view.
tari_consensus_transaction_ready_for_consensus_totalcounterTransactions that became ready for consensus.
tari_consensus_transaction_finalized_committed_totalcounterTransactions finalized with a COMMIT decision.
tari_consensus_transaction_finalized_aborted_totalcounterTransactions finalized with an ABORT decision.
MetricTypeMeaning
tari_epoch_manager_current_epochgaugeThe epoch manager’s current epoch.
tari_epoch_oracle_last_event_epochgaugeEpoch of the most recent L1 scanner event.
tari_epoch_oracle_errors_totalcounterL1 epoch scanner errors.
tari_epoch_oracle_epoch_changed_totalcounterEpoch changes observed on L1.
tari_epoch_oracle_active_validator_set_changed_totalcounterActive validator set changes.
tari_epoch_oracle_new_validator_registered_totalcounterValidator registrations observed.
tari_epoch_oracle_new_validator_exit_totalcounterValidator exits observed.
tari_epoch_oracle_done_for_now_totalcounterScanner passes that caught up with the L1 tip.
MetricTypeMeaning
tari_mempool_transactions_received_totalcounterTransactions received by the mempool.
tari_mempool_transaction_validation_error_totalcounterTransactions rejected by mempool validation.

Label queue is transaction_gossip, consensus_gossip or consensus_messaging.

MetricTypeMeaning
inbound_queue_queued_bytesgaugeBytes waiting in the queue.
inbound_queue_max_queued_bytesgaugeThe queue’s configured byte budget.
inbound_queue_queued_messagesgaugeMessages waiting in the queue.
inbound_queue_dropped_messages_totalcounterMessages dropped because the queue was full.
inbound_queue_dropped_bytes_totalcounterBytes dropped because the queue was full.
MetricTypeMeaning
state_store_memory_capacity_bytesgaugeRocksDB block cache capacity, including memtable charges.
state_store_memtable_capacity_bytesgaugeMemtable budget across column families before flushing.
state_store_memtable_bytesgaugeBytes held by live memtables.
state_store_block_cache_bytesgaugeBytes charged to the block cache.
state_store_block_cache_pinned_bytesgaugeBlock cache bytes that cannot be evicted.
MetricTypeMeaning
tari_template_prewarm_enqueued_totalcounterTemplates queued for background compilation.
tari_template_prewarm_dropped_totalcounterPrewarm requests dropped because the queue was full.
tari_template_prewarm_loaded_totalcounterTemplates made resident, compiled or from the disk cache.
tari_template_prewarm_already_resident_totalcounterRequests for a template that was already resident.
tari_template_prewarm_not_found_totalcounterRequests for a template this node does not hold.
tari_template_prewarm_failed_totalcounterTemplates this node holds but could not load.
tari_template_prewarm_queue_depthgaugeTemplates queued, including the one in progress.
tari_template_prewarm_load_secondshistogramTime to make one template resident.

Present when indexer.api_listen_address is set.

MetricTypeLabelsMeaning
api_http_requests_total_totalcounterHTTP requests received.
api_http_response_time_secondshistogramRequest handling latency.
api_http_requests_pendinggaugeRequests in flight.
api_http_response_body_size_byteshistogramResponse body size, when known.
api_sse_connections_activegaugeendpointOpen server-sent event streams per route.
MetricTypeMeaning
substate_scanner_cache_hits_totalcounterSubstate lookups served from the cache.
substate_scanner_cache_misses_totalcounterLookups that missed the cache and went to the network.
substate_cache_invalidations_totalcounterEntries retired by state sync or finalized transactions.
substate_cache_evictions_totalcounterEntries evicted to stay within substate_cache_max_entries.
substate_cache_refused_stale_totalcounterCache reads refused because the shard was not recently confirmed in sync.

Present when indexer.index_gossiped_transactions is enabled.

MetricTypeMeaning
transaction_gossip_messages_received_totalcounterGossip messages taken off the queue.
transaction_gossip_messages_accepted_totalcounterMessages validated and propagated.
transaction_gossip_messages_rejected_totalcounterMessages withheld and penalised against the sending peer.
transaction_gossip_messages_ignored_totalcounterMessages withheld without penalty.
transaction_gossip_transactions_stored_totalcounterGossiped transactions newly stored.
transaction_gossip_transactions_dropped_totalcounterValidated transactions lost to a failed batch write.
transaction_gossip_queue_queued_bytesgaugeBytes waiting in the gossip queue.
transaction_gossip_queue_max_queued_bytesgaugeThe gossip queue’s byte budget.
transaction_gossip_queue_queued_messagesgaugeMessages waiting in the gossip queue.
transaction_gossip_queue_dropped_messages_totalcounterMessages dropped because the queue was full.
transaction_gossip_queue_dropped_bytes_totalcounterBytes dropped because the queue was full.

Cumulative network totals in microtari, updated by network state sync.

MetricTypeMeaning
network_exhaust_burned_microtarigaugeExhaust burned since genesis, from checkpoint headers.
network_claimed_microtarigaugeXTR claimed from L1 burns.
network_fee_volume_microtarigaugeFees paid, summed over stored receipts.
network_receipt_exhaust_burned_microtarigaugeExhaust burned, summed over stored receipts.
network_transaction_receipt_countgaugeTransaction receipts stored.
network_validator_claimable_fees_microtarigaugeLeader fees in validator fee pools, not yet claimed.
network_exhaust_rate_bpsgaugeExhaust burn rate in basis points at the current epoch.
MetricTypeMeaning
sqlite_connection_wait_secondshistogramWait for a pooled connection.
sqlite_write_lock_wait_secondshistogramWait for the write lock.
sqlite_write_lock_hold_secondshistogramTime the write lock was held.
sqlite_write_lock_busy_totalcounterWrites that gave up waiting for the lock (SQLITE_BUSY).
sqlite_db_bytesgaugeDatabase file size, sampled every 30s.
sqlite_wal_bytesgaugeWAL file size; a high-water mark, as SQLite reuses the file.
sqlite_wal_uncheckpointed_framesgaugeWAL frames a passive checkpoint could not copy back.
sqlite_freelist_bytesgaugeBytes of free pages in the database file.