Skip to content

Metrics

Overview

Firedancer maintains many internal performance counters for use by developers and monitoring tools, and exposes them via. a Prometheus HTTP endpoint:

toml
[tiles.metric]
    prometheus_listen_port = 7999
sh
$ curl http://localhost:7999/metrics
# HELP tile_pid The process ID of the tile.
# TYPE tile_pid gauge
tile_pid{kind="net",kind_id="0"} 1527373
tile_pid{kind="quic",kind_id="0"} 1527370
tile_pid{kind="quic",kind_id="1"} 1527371
tile_pid{kind="verify",kind_id="0"} 1527369
tile_pid{kind="verify",kind_id="1"} 1527374
tile_pid{kind="dedup",kind_id="0"} 1527365
...

WARNING

Metrics are currently only provided for developer and diagnostic use, and the endpoint or data provided may break or change in incompatible ways at any time.

There are three metric types reported by Firedancer, following the Prometheus data model:

  • counter — A cumulative metric representing a monotonically increasing counter.
  • gauge — A single numerical value that can go arbitrarily up or down.
  • histogram — Samples observations like packet sizes and counts them in buckets.

There are some metrics reported for links, which are data queues between tiles. Links are single-producer multi-consumer, so the same link (identified by a link_kind and link_kind_id) will potentially have multiple consumers reporting the metric, one per consumer (identified by a kind and kind_id).

sh
# HELP link_published_size_bytes The total number of bytes read by the link consumer.
# TYPE link_published_size_bytes counter
link_published_size_bytes{kind="net",kind_id="0",link_kind="quic_net",link_kind_id="0"} 0
link_published_size_bytes{kind="net",kind_id="0",link_kind="shred_net",link_kind_id="0"} 0

These link related metrics have four labels, which are to identify the link the metric is for:

  • kind — The name of the tile consuming from the link.
  • kind_id — The tile index of the tile which is consuming from the link.
  • link_kind — The name of the link being consumed.
  • link_kind_id — The link index of the link which is being consumed.
MetricTypeDescription
link_​slow_​countcounterThe number of times the consumer was detected as rate limiting consumer by the producer.
link_​consumed_​countcounterThe number of times the link reader has consumed a fragment.
link_​consumed_​size_​bytescounterThe total number of bytes read by the link consumer.
link_​filtered_​countcounterThe number of fragments that were filtered and not consumed.
link_​filtered_​size_​bytescounterThe total number of bytes read by the link consumer that were filtered.
link_​overrun_​polling_​countcounterThe number of times the link has been overrun while polling.
link_​overrun_​polling_​frag_​countcounterThe number of fragments the link has not processed because it was overrun while polling.
link_​overrun_​reading_​countcounterThe number of input overruns detected while reading metadata by the consumer.
link_​overrun_​reading_​frag_​countcounterThe number of fragments the link has not processed because it was overrun while reading.

All Tiles

Most performance counters are local to a tile and are not aggregated. For example if you have two QUIC tiles (two CPU cores assigned to serving incoming QUIC connections) each QUIC counter will appear twice:

sh
# HELP quic_connections_created The total number of connections that have been created.
# TYPE quic_connections_created counter
quic_connections_created{kind="quic",kind_id="0"} 42145
quic_connections_created{kind="quic",kind_id="1"} 38268

# HELP quic_connections_aborted Number of connections aborted.
# TYPE quic_connections_aborted counter
quic_connections_aborted{kind="quic",kind_id="0"} 14
quic_connections_aborted{kind="quic",kind_id="1"} 23

All tile related metrics have just two labels, and these are to identify which tile (and which tile index, for tiles of the same kind) the metric is for:

  • kind — The tile name the metric is being reported for.
  • kind_id — The tile index of the tile which is reporting the metric.
MetricTypeDescription
tile_​pidgaugeThe process ID of the tile.
tile_​tidgaugeThe thread ID of the tile. Always the same as the Pid in production, but might be different in development.
tile_​context_​switch_​involuntary_​countcounterThe number of involuntary context switches.
tile_​context_​switch_​voluntary_​countcounterThe number of voluntary context switches.
tile_​statusgaugeThe current status of the tile. 0 is booting, 1 is running.
tile_​heartbeatgaugeThe last UNIX timestamp in nanoseconds that the tile heartbeated.
tile_​in_​backpressuregaugeWhether the tile is currently backpressured or not, either 1 or 0.
tile_​backpressure_​countcounterNumber of times the tile has had to wait for one of more consumers to catch up to resume publishing.
tile_​regime_​duration_​nanos
{tile_​regime="caught_​up_​housekeeping"}
counterMutually exclusive and exhaustive duration of time the tile spent in each of the regimes. (Caught up + Housekeeping)
tile_​regime_​duration_​nanos
{tile_​regime="processing_​housekeeping"}
counterMutually exclusive and exhaustive duration of time the tile spent in each of the regimes. (Processing + Housekeeping)
tile_​regime_​duration_​nanos
{tile_​regime="backpressure_​housekeeping"}
counterMutually exclusive and exhaustive duration of time the tile spent in each of the regimes. (Backpressure + Housekeeping)
tile_​regime_​duration_​nanos
{tile_​regime="caught_​up_​prefrag"}
counterMutually exclusive and exhaustive duration of time the tile spent in each of the regimes. (Caught up + Prefrag)
tile_​regime_​duration_​nanos
{tile_​regime="processing_​prefrag"}
counterMutually exclusive and exhaustive duration of time the tile spent in each of the regimes. (Processing + Prefrag)
tile_​regime_​duration_​nanos
{tile_​regime="backpressure_​prefrag"}
counterMutually exclusive and exhaustive duration of time the tile spent in each of the regimes. (Backpressure + Prefrag)
tile_​regime_​duration_​nanos
{tile_​regime="caught_​up_​postfrag"}
counterMutually exclusive and exhaustive duration of time the tile spent in each of the regimes. (Caught up + Postfrag)
tile_​regime_​duration_​nanos
{tile_​regime="processing_​postfrag"}
counterMutually exclusive and exhaustive duration of time the tile spent in each of the regimes. (Processing + Postfrag)

Net Tile

MetricTypeDescription
net_​rx_​pkt_​cntcounterPacket receive count.
net_​rx_​bytes_​totalcounterTotal number of bytes received (including Ethernet header).
net_​rx_​undersz_​cntcounterNumber of incoming packets dropped due to being too small.
net_​rx_​fill_​blocked_​cntcounterNumber of incoming packets dropped due to fill ring being full.
net_​rx_​backpressure_​cntcounterNumber of incoming packets dropped due to backpressure.
net_​rx_​busy_​cntgaugeNumber of receive buffers currently busy.
net_​rx_​idle_​cntgaugeNumber of receive buffers currently idle.
net_​tx_​submit_​cntcounterNumber of packet transmit jobs submitted.
net_​tx_​complete_​cntcounterNumber of packet transmit jobs marked as completed by the kernel.
net_​tx_​bytes_​totalcounterTotal number of bytes transmitted (including Ethernet header).
net_​tx_​route_​fail_​cntcounterNumber of packet transmit jobs dropped due to route failure.
net_​tx_​neighbor_​fail_​cntcounterNumber of packet transmit jobs dropped due to unresolved neighbor.
net_​tx_​full_​fail_​cntcounterNumber of packet transmit jobs dropped due to XDP TX ring full or missing completions.
net_​tx_​busy_​cntgaugeNumber of transmit buffers currently busy.
net_​tx_​idle_​cntgaugeNumber of transmit buffers currently idle.
net_​xsk_​tx_​wakeup_​cntcounterNumber of XSK sendto syscalls dispatched.
net_​xsk_​rx_​wakeup_​cntcounterNumber of XSK recvmsg syscalls dispatched.
net_​xdp_​rx_​dropped_​othercounterxdp_statistics_v0.rx_dropped: Dropped for other reasons
net_​xdp_​rx_​invalid_​descscounterxdp_statistics_v0.rx_invalid_descs: Dropped due to invalid descriptor
net_​xdp_​tx_​invalid_​descscounterxdp_statistics_v0.tx_invalid_descs: Dropped due to invalid descriptor
net_​xdp_​rx_​ring_​fullcounterxdp_statistics_v1.rx_ring_full: Dropped due to rx ring being full
net_​xdp_​rx_​fill_​ring_​empty_​descscounterxdp_statistics_v1.rx_fill_ring_empty_descs: Failed to retrieve item from fill ring
net_​xdp_​tx_​ring_​empty_​descscounterxdp_statistics_v1.tx_ring_empty_descs: Failed to retrieve item from tx ring

Quic Tile

MetricTypeDescription
quic_​txns_​overruncounterCount of txns overrun before reassembled (too small txn_reassembly_count).
quic_​txn_​reasms_​startedcounterCount of fragmented txn receive ops started.
quic_​txn_​reasms_​activegaugeNumber of fragmented txn receive ops currently active.
quic_​frags_​okcounterCount of txn frags received
quic_​frags_​gapcounterCount of txn frags dropped due to data gap
quic_​frags_​dupcounterCount of txn frags dropped due to dup (stream already completed)
quic_​txns_​received
{tpu_​recv_​type="udp"}
counterCount of txns received via TPU. (TPU/UDP)
quic_​txns_​received
{tpu_​recv_​type="quic_​fast"}
counterCount of txns received via TPU. (TPU/QUIC unfragmented)
quic_​txns_​received
{tpu_​recv_​type="quic_​frag"}
counterCount of txns received via TPU. (TPU/QUIC fragmented)
quic_​txns_​abandonedcounterCount of txns abandoned because a conn was lost.
quic_​txn_​underszcounterCount of txns received via QUIC dropped because they were too small.
quic_​txn_​overszcounterCount of txns received via QUIC dropped because they were too large.
quic_​legacy_​txn_​underszcounterCount of packets received on the non-QUIC port that were too small to be a valid IP packet.
quic_​legacy_​txn_​overszcounterCount of packets received on the non-QUIC port that were too large to be a valid transaction.
quic_​received_​packetscounterNumber of IP packets received.
quic_​received_​bytescounterTotal bytes received (including IP, UDP, QUIC headers).
quic_​sent_​packetscounterNumber of IP packets sent.
quic_​sent_​bytescounterTotal bytes sent (including IP, UDP, QUIC headers).
quic_​connections_​activegaugeThe number of currently active QUIC connections.
quic_​connections_​createdcounterThe total number of connections that have been created.
quic_​connections_​closedcounterNumber of connections gracefully closed.
quic_​connections_​abortedcounterNumber of connections aborted.
quic_​connections_​timed_​outcounterNumber of connections timed out.
quic_​connections_​retriedcounterNumber of connections established with retry.
quic_​connection_​error_​no_​slotscounterNumber of connections that failed to create due to lack of slots.
quic_​connection_​error_​retry_​failcounterNumber of connections that failed during retry (e.g. invalid token).
quic_​pkt_​no_​conncounterNumber of packets with an unknown connection ID.
quic_​frame_​tx_​alloc
{frame_​tx_​alloc_​result="success"}
counterResults of attempts to acquire QUIC frame metadata. (Success)
quic_​frame_​tx_​alloc
{frame_​tx_​alloc_​result="fail_​empty_​pool"}
counterResults of attempts to acquire QUIC frame metadata. (PktMetaPoolEmpty)
quic_​frame_​tx_​alloc
{frame_​tx_​alloc_​result="fail_​conn_​max"}
counterResults of attempts to acquire QUIC frame metadata. (ConnMaxedInflightFrames)
quic_​handshakes_​createdcounterNumber of handshake flows created.
quic_​handshake_​error_​alloc_​failcounterNumber of handshakes dropped due to alloc fail.
quic_​handshake_​evictedcounterNumber of handshakes dropped due to eviction.
quic_​stream_​received_​eventscounterNumber of stream RX events.
quic_​stream_​received_​bytescounterTotal stream payload bytes received.
quic_​received_​frames
{quic_​frame_​type="unknown"}
counterNumber of QUIC frames received. (Unknown frame type)
quic_​received_​frames
{quic_​frame_​type="ack"}
counterNumber of QUIC frames received. (ACK frame)
quic_​received_​frames
{quic_​frame_​type="reset_​stream"}
counterNumber of QUIC frames received. (RESET_STREAM frame)
quic_​received_​frames
{quic_​frame_​type="stop_​sending"}
counterNumber of QUIC frames received. (STOP_SENDING frame)
quic_​received_​frames
{quic_​frame_​type="crypto"}
counterNumber of QUIC frames received. (CRYPTO frame)
quic_​received_​frames
{quic_​frame_​type="new_​token"}
counterNumber of QUIC frames received. (NEW_TOKEN frame)
quic_​received_​frames
{quic_​frame_​type="stream"}
counterNumber of QUIC frames received. (STREAM frame)
quic_​received_​frames
{quic_​frame_​type="max_​data"}
counterNumber of QUIC frames received. (MAX_DATA frame)
quic_​received_​frames
{quic_​frame_​type="max_​stream_​data"}
counterNumber of QUIC frames received. (MAX_STREAM_DATA frame)
quic_​received_​frames
{quic_​frame_​type="max_​streams"}
counterNumber of QUIC frames received. (MAX_STREAMS frame)
quic_​received_​frames
{quic_​frame_​type="data_​blocked"}
counterNumber of QUIC frames received. (DATA_BLOCKED frame)
quic_​received_​frames
{quic_​frame_​type="stream_​data_​blocked"}
counterNumber of QUIC frames received. (STREAM_DATA_BLOCKED frame)
quic_​received_​frames
{quic_​frame_​type="streams_​blocked"}
counterNumber of QUIC frames received. (STREAMS_BLOCKED(bidi) frame)
quic_​received_​frames
{quic_​frame_​type="new_​conn_​id"}
counterNumber of QUIC frames received. (NEW_CONN_ID frame)
quic_​received_​frames
{quic_​frame_​type="retire_​conn_​id"}
counterNumber of QUIC frames received. (RETIRE_CONN_ID frame)
quic_​received_​frames
{quic_​frame_​type="path_​challenge"}
counterNumber of QUIC frames received. (PATH_CHALLENGE frame)
quic_​received_​frames
{quic_​frame_​type="path_​response"}
counterNumber of QUIC frames received. (PATH_RESPONSE frame)
quic_​received_​frames
{quic_​frame_​type="conn_​close_​quic"}
counterNumber of QUIC frames received. (CONN_CLOSE(transport) frame)
quic_​received_​frames
{quic_​frame_​type="conn_​close_​app"}
counterNumber of QUIC frames received. (CONN_CLOSE(app) frame)
quic_​received_​frames
{quic_​frame_​type="handshake_​done"}
counterNumber of QUIC frames received. (HANDSHAKE_DONE frame)
quic_​received_​frames
{quic_​frame_​type="ping"}
counterNumber of QUIC frames received. (PING frame)
quic_​received_​frames
{quic_​frame_​type="padding"}
counterNumber of QUIC frames received. (PADDING frame)
quic_​ack_​tx
{quic_​ack_​tx="noop"}
counterACK events (non-ACK-eliciting packet)
quic_​ack_​tx
{quic_​ack_​tx="new"}
counterACK events (new ACK range)
quic_​ack_​tx
{quic_​ack_​tx="merged"}
counterACK events (merged into existing ACK range)
quic_​ack_​tx
{quic_​ack_​tx="drop"}
counterACK events (out of buffers)
quic_​ack_​tx
{quic_​ack_​tx="cancel"}
counterACK events (ACK suppressed by handler)
quic_​service_​duration_​secondshistogramDuration spent in service
quic_​receive_​duration_​secondshistogramDuration spent receiving packets
quic_​frame_​fail_​parsecounterNumber of QUIC frames failed to parse.
quic_​pkt_​crypto_​failed
{quic_​enc_​level="initial"}
counterNumber of packets that failed decryption. (initial)
quic_​pkt_​crypto_​failed
{quic_​enc_​level="early"}
counterNumber of packets that failed decryption. (early data)
quic_​pkt_​crypto_​failed
{quic_​enc_​level="handshake"}
counterNumber of packets that failed decryption. (handshake)
quic_​pkt_​crypto_​failed
{quic_​enc_​level="app"}
counterNumber of packets that failed decryption. (app data)
quic_​pkt_​no_​key
{quic_​enc_​level="initial"}
counterNumber of packets that failed decryption due to missing key. (initial)
quic_​pkt_​no_​key
{quic_​enc_​level="early"}
counterNumber of packets that failed decryption due to missing key. (early data)
quic_​pkt_​no_​key
{quic_​enc_​level="handshake"}
counterNumber of packets that failed decryption due to missing key. (handshake)
quic_​pkt_​no_​key
{quic_​enc_​level="app"}
counterNumber of packets that failed decryption due to missing key. (app data)
quic_​pkt_​net_​header_​invalidcounterNumber of packets dropped due to weird IP or UDP header.
quic_​pkt_​quic_​header_​invalidcounterNumber of packets dropped due to weird QUIC header.
quic_​pkt_​underszcounterNumber of QUIC packets dropped due to being too small.
quic_​pkt_​overszcounterNumber of QUIC packets dropped due to being too large.
quic_​pkt_​vernegcounterNumber of QUIC version negotiation packets received.
quic_​retry_​sentcounterNumber of QUIC Retry packets sent.
quic_​pkt_​retransmissionscounterNumber of QUIC packets that retransmitted.

Bundle Tile

MetricTypeDescription
bundle_​transaction_​receivedcounterTotal count of transactions received, including transactions within bundles
bundle_​packet_​receivedcounterTotal count of packets received
bundle_​bundle_​receivedcounterTotal count of bundles received
bundle_​errors
{bundle_​error="protobuf"}
counterNumber of gRPC errors encountered (Protobuf decode/encode error)
bundle_​errors
{bundle_​error="transport"}
counterNumber of gRPC errors encountered (Transport error)
bundle_​errors
{bundle_​error="timeout"}
counterNumber of gRPC errors encountered (I/O timeout)
bundle_​errors
{bundle_​error="no_​fee_​info"}
counterNumber of gRPC errors encountered (Bundle dropped due to missing fee info)
bundle_​errors
{bundle_​error="ssl_​alloc"}
counterNumber of gRPC errors encountered (OpenSSL alloc fail)
bundle_​heap_​sizegaugeWorkspace heap size
bundle_​heap_​free_​bytesgaugeApprox free space in workspace
bundle_​shredstream_​heartbeatscounterNumber of ShredStream heartbeats successfully sent
bundle_​keepalivescounterNumber of HTTP/2 PINGs acknowledged by server
bundle_​connectedgauge1 if connected to the bundle server, 0 if not

Verify Tile

MetricTypeDescription
verify_​transaction_​bundle_​peer_​failurecounterCount of transactions that failed to verify because a peer transaction in the bundle failed
verify_​transaction_​parse_​failurecounterCount of transactions that failed to parse
verify_​transaction_​dedup_​failurecounterCount of transactions that failed to deduplicate in the verify stage
verify_​transaction_​verify_​failurecounterCount of transactions that failed to deduplicate in the verify stage

Dedup Tile

MetricTypeDescription
dedup_​transaction_​bundle_​peer_​failurecounterCount of transactions that failed to dedup because a peer transaction in the bundle failed
dedup_​transaction_​dedup_​failurecounterCount of transactions that failed to deduplicate in the dedup stage
dedup_​gossiped_​votes_​receivedcounterCount of simple vote transactions received over gossip instead of via the normal TPU path

Resolv Tile

MetricTypeDescription
resolv_​no_​bank_​dropcounterCount of transactions dropped because the bank was not available
resolv_​stash_​operation
{resolve_​stash_​operation="inserted"}
counterCount of operations that happened on the transaction stash (A transaction with an unknown blockhash was added to the stash)
resolv_​stash_​operation
{resolve_​stash_​operation="overrun"}
counterCount of operations that happened on the transaction stash (A transaction with an unknown blockhash was dropped because the stash was full)
resolv_​stash_​operation
{resolve_​stash_​operation="published"}
counterCount of operations that happened on the transaction stash (A transaction with an unknown blockhash was published as the blockhash became known)
resolv_​stash_​operation
{resolve_​stash_​operation="removed"}
counterCount of operations that happened on the transaction stash (A transaction with an unknown blockhash was removed from the stash without publishing, due to a bad LUT resolved failure, or no bank. These errors are double counted with the respective metrics for those categories.)
resolv_​lut_​resolved
{lut_​resolve_​result="invalid_​lookup_​index"}
counterCount of address lookup tables resolved (The transaction referenced an index in a LUT that didn't exist)
resolv_​lut_​resolved
{lut_​resolve_​result="account_​uninitialized"}
counterCount of address lookup tables resolved (The account referenced as a LUT hasn't been initialized)
resolv_​lut_​resolved
{lut_​resolve_​result="invalid_​account_​data"}
counterCount of address lookup tables resolved (The account referenced as a LUT couldn't be parsed)
resolv_​lut_​resolved
{lut_​resolve_​result="invalid_​account_​owner"}
counterCount of address lookup tables resolved (The account referenced as a LUT wasn't owned by the ALUT program ID)
resolv_​lut_​resolved
{lut_​resolve_​result="account_​not_​found"}
counterCount of address lookup tables resolved (The account referenced as a LUT couldn't be found)
resolv_​lut_​resolved
{lut_​resolve_​result="success"}
counterCount of address lookup tables resolved (Resolved successfully)
resolv_​blockhash_​expiredcounterCount of transactions that failed to resolve because the blockhash was expired
resolv_​transaction_​bundle_​peer_​failurecounterCount of transactions that failed to resolve because a peer transaction in the bundle failed

Pack Tile

MetricTypeDescription
pack_​schedule_​microblock_​duration_​secondshistogramDuration of scheduling one microblock
pack_​no_​sched_​microblock_​duration_​secondshistogramDuration of discovering that there are no schedulable transactions
pack_​insert_​transaction_​duration_​secondshistogramDuration of inserting one transaction into the pool of available transactions
pack_​complete_​microblock_​duration_​secondshistogramDuration of the computation associated with marking one microblock as complete
pack_​total_​transactions_​per_​microblock_​counthistogramCount of transactions in a scheduled microblock, including both votes and non-votes
pack_​votes_​per_​microblock_​counthistogramCount of simple vote transactions in a scheduled microblock
pack_​normal_​transaction_​receivedcounterCount of transactions received via the normal TPU path
pack_​transaction_​inserted
{pack_​txn_​insert_​return="bundle_​blacklist"}
counterResult of inserting a transaction into the pack object (Transaction uses an account on the bundle blacklist)
pack_​transaction_​inserted
{pack_​txn_​insert_​return="write_​sysvar"}
counterResult of inserting a transaction into the pack object (Transaction tries to write to a sysvar)
pack_​transaction_​inserted
{pack_​txn_​insert_​return="estimation_​fail"}
counterResult of inserting a transaction into the pack object (Estimating compute cost and/or fee failed)
pack_​transaction_​inserted
{pack_​txn_​insert_​return="duplicate_​account"}
counterResult of inserting a transaction into the pack object (Transaction included an account address twice)
pack_​transaction_​inserted
{pack_​txn_​insert_​return="too_​many_​accounts"}
counterResult of inserting a transaction into the pack object (Transaction tried to load too many accounts)
pack_​transaction_​inserted
{pack_​txn_​insert_​return="too_​large"}
counterResult of inserting a transaction into the pack object (Transaction requests too many CUs)
pack_​transaction_​inserted
{pack_​txn_​insert_​return="expired"}
counterResult of inserting a transaction into the pack object (Transaction already expired)
pack_​transaction_​inserted
{pack_​txn_​insert_​return="addr_​lut"}
counterResult of inserting a transaction into the pack object (Transaction loaded accounts from a lookup table)
pack_​transaction_​inserted
{pack_​txn_​insert_​return="unaffordable"}
counterResult of inserting a transaction into the pack object (Fee payer's balance below transaction fee)
pack_​transaction_​inserted
{pack_​txn_​insert_​return="duplicate"}
counterResult of inserting a transaction into the pack object (Pack aware of transaction with same signature)
pack_​transaction_​inserted
{pack_​txn_​insert_​return="priority"}
counterResult of inserting a transaction into the pack object (Transaction's fee was too low given its compute unit requirement and other competing transactions)
pack_​transaction_​inserted
{pack_​txn_​insert_​return="nonvote_​add"}
counterResult of inserting a transaction into the pack object (Transaction that was not a simple vote added to pending transactions)
pack_​transaction_​inserted
{pack_​txn_​insert_​return="vote_​add"}
counterResult of inserting a transaction into the pack object (Simple vote transaction was added to pending transactions)
pack_​transaction_​inserted
{pack_​txn_​insert_​return="nonvote_​replace"}
counterResult of inserting a transaction into the pack object (Transaction that was not a simple vote replaced a lower priority transaction)
pack_​transaction_​inserted
{pack_​txn_​insert_​return="vote_​replace"}
counterResult of inserting a transaction into the pack object (Simple vote transaction replaced a lower priority transaction)
pack_​metric_​timing
{pack_​timing_​state="no_​txn_​no_​bank_​no_​leader_​no_​microblock"}
counterTime in nanos spent in each state (Pack had no transactions available, and wasn't leader)
pack_​metric_​timing
{pack_​timing_​state="txn_​no_​bank_​no_​leader_​no_​microblock"}
counterTime in nanos spent in each state (Pack had transactions available, but wasn't leader or had hit a limit)
pack_​metric_​timing
{pack_​timing_​state="no_​txn_​bank_​no_​leader_​no_​microblock"}
counterTime in nanos spent in each state (Pack had no transactions available, had banks but wasn't leader)
pack_​metric_​timing
{pack_​timing_​state="txn_​bank_​no_​leader_​no_​microblock"}
counterTime in nanos spent in each state (Pack had transactions available, had banks but wasn't leader)
pack_​metric_​timing
{pack_​timing_​state="no_​txn_​no_​bank_​leader_​no_​microblock"}
counterTime in nanos spent in each state (Pack had no transactions available, and was leader but had no available banks)
pack_​metric_​timing
{pack_​timing_​state="txn_​no_​bank_​leader_​no_​microblock"}
counterTime in nanos spent in each state (Pack had transactions available, was leader, but had no available banks)
pack_​metric_​timing
{pack_​timing_​state="no_​txn_​bank_​leader_​no_​microblock"}
counterTime in nanos spent in each state (Pack had available banks but no transactions)
pack_​metric_​timing
{pack_​timing_​state="txn_​bank_​leader_​no_​microblock"}
counterTime in nanos spent in each state (Pack had banks and transactions available but couldn't schedule anything non-conflicting)
pack_​metric_​timing
{pack_​timing_​state="no_​txn_​no_​bank_​no_​leader_​microblock"}
counterTime in nanos spent in each state (Pack scheduled a non-empty microblock while not leader)
pack_​metric_​timing
{pack_​timing_​state="txn_​no_​bank_​no_​leader_​microblock"}
counterTime in nanos spent in each state (Pack scheduled a non-empty microblock while not leader)
pack_​metric_​timing
{pack_​timing_​state="no_​txn_​bank_​no_​leader_​microblock"}
counterTime in nanos spent in each state (Pack scheduled a non-empty microblock while not leader)
pack_​metric_​timing
{pack_​timing_​state="txn_​bank_​no_​leader_​microblock"}
counterTime in nanos spent in each state (Pack scheduled a non-empty microblock while not leader)
pack_​metric_​timing
{pack_​timing_​state="no_​txn_​no_​bank_​leader_​microblock"}
counterTime in nanos spent in each state (Pack scheduled a non-empty microblock but all banks were busy)
pack_​metric_​timing
{pack_​timing_​state="txn_​no_​bank_​leader_​microblock"}
counterTime in nanos spent in each state (Pack scheduled a non-empty microblock but all banks were busy)
pack_​metric_​timing
{pack_​timing_​state="no_​txn_​bank_​leader_​microblock"}
counterTime in nanos spent in each state (Pack scheduled a non-empty microblock and now has no transactions)
pack_​metric_​timing
{pack_​timing_​state="txn_​bank_​leader_​microblock"}
counterTime in nanos spent in each state (Pack scheduled a non-empty microblock)
pack_​transaction_​dropped_​from_​extracounterTransactions dropped from the extra transaction storage because it was full
pack_​transaction_​inserted_​to_​extracounterTransactions inserted into the extra transaction storage because pack's primary storage was full
pack_​transaction_​inserted_​from_​extracounterTransactions pulled from the extra transaction storage and inserted into pack's primary storage
pack_​transaction_​expiredcounterTransactions deleted from pack because their TTL expired
pack_​transaction_​dropped_​partial_​bundlecounterTransactions dropped from pack because they were part of a partial bundle
pack_​available_​transactions
{avail_​txn_​type="all"}
gaugeThe total number of pending transactions in pack's pool that are available to be scheduled (All transactions in any treap)
pack_​available_​transactions
{avail_​txn_​type="regular"}
gaugeThe total number of pending transactions in pack's pool that are available to be scheduled (Non-votes in the main treap)
pack_​available_​transactions
{avail_​txn_​type="votes"}
gaugeThe total number of pending transactions in pack's pool that are available to be scheduled (Simple votes)
pack_​available_​transactions
{avail_​txn_​type="conflicting"}
gaugeThe total number of pending transactions in pack's pool that are available to be scheduled (Non-votes that write to a hotly-contended account)
pack_​available_​transactions
{avail_​txn_​type="bundles"}
gaugeThe total number of pending transactions in pack's pool that are available to be scheduled (Transactions that are part of a bundle)
pack_​pending_​transactions_​heap_​sizegaugeThe maximum number of pending transactions that pack can consider. This value is fixed at Firedancer startup but is a useful reference for AvailableTransactions.
pack_​smallest_​pending_​transactiongaugeA lower bound on the smallest non-vote transaction (in cost units) that is immediately available for scheduling
pack_​microblock_​per_​block_​limitcounterThe number of times pack did not pack a microblock because the limit on microblocks/block had been reached
pack_​data_​per_​block_​limitcounterThe number of times pack did not pack a microblock because it reached the data per block limit at the start of trying to schedule a microblock
pack_​transaction_​schedule
{pack_​txn_​schedule="taken"}
counterResult of trying to consider a transaction for scheduling (Pack included the transaction in the microblock)
pack_​transaction_​schedule
{pack_​txn_​schedule="cu_​limit"}
counterResult of trying to consider a transaction for scheduling (Pack skipped the transaction because it would have exceeded the block CU limit)
pack_​transaction_​schedule
{pack_​txn_​schedule="fast_​path"}
counterResult of trying to consider a transaction for scheduling (Pack skipped the transaction because of account conflicts using the fast bitvector check)
pack_​transaction_​schedule
{pack_​txn_​schedule="byte_​limit"}
counterResult of trying to consider a transaction for scheduling (Pack skipped the transaction because it would have exceeded the block data size limit)
pack_​transaction_​schedule
{pack_​txn_​schedule="write_​cost"}
counterResult of trying to consider a transaction for scheduling (Pack skipped the transaction because it would have caused a writable account to exceed the per-account block write cost limit)
pack_​transaction_​schedule
{pack_​txn_​schedule="slow_​path"}
counterResult of trying to consider a transaction for scheduling (Pack skipped the transaction because of account conflicts using the full slow check)
pack_​transaction_​schedule
{pack_​txn_​schedule="defer_​skip"}
counterResult of trying to consider a transaction for scheduling (Pack skipped the transaction it previously exceeded the per-account block write cost limit too many times)
pack_​bundle_​crank_​status
{bundle_​crank_​result="not_​needed"}
counterResult of considering whether bundle cranks are needed (On-chain state in the correct state)
pack_​bundle_​crank_​status
{bundle_​crank_​result="inserted"}
counterResult of considering whether bundle cranks are needed (Inserted an initializer bundle to update the on-chain state)
pack_​bundle_​crank_​status
{bundle_​crank_​result="creation_​failed"}
counterResult of considering whether bundle cranks are needed (Tried to insert an initializer bundle to update the on-chain state, but creation failed)
pack_​bundle_​crank_​status
{bundle_​crank_​result="insertion_​failed"}
counterResult of considering whether bundle cranks are needed (Tried to insert an initializer bundle to update the on-chain state, but insertion failed)
pack_​cus_​consumed_​in_​blockgaugeThe number of cost units consumed in the current block, or 0 if pack is not currently packing a block
pack_​cus_​scheduledhistogramThe number of cost units scheduled for each block pack produced. This can be higher than the block limit because of returned CUs.
pack_​cus_​rebatedhistogramThe number of compute units rebated for each block pack produced. Compute units are rebated when a transaction fails prior to execution or requests more compute units than it uses.
pack_​cus_​nethistogramThe net number of cost units (scheduled - rebated) in each block pack produced.
pack_​cus_​pcthistogramThe percent of the total block cost limit used for each block pack produced.
pack_​delete_​missedcounterCount of attempts to delete a transaction that wasn't found
pack_​delete_​hitcounterCount of attempts to delete a transaction that was found and deleted

Bank Tile

MetricTypeDescription
bank_​transaction_​sanitize_​failurecounterNumber of transactions that failed to sanitize.
bank_​transaction_​not_​executed_​failurecounterNumber of transactions that did not execute. This is different than transactions which fail to execute, which make it onto the chain.
bank_​precompile_​verify_​failurecounterNumber of transactions that failed precompile verification and thus will not execute.
bank_​slot_​acquire
{bank_​slot_​acquire="success"}
counterResult of acquiring a slot. (Success)
bank_​slot_​acquire
{bank_​slot_​acquire="too_​high"}
counterResult of acquiring a slot. (Too high)
bank_​slot_​acquire
{bank_​slot_​acquire="too_​low"}
counterResult of acquiring a slot. (Too low)
bank_​transaction_​load_​address_​tables
{bank_​load_​address_​lookup_​table="success"}
counterResult of loading address lookup tables for a transaction. If there are multiple errors for the transaction, only the first one is reported. (Success)
bank_​transaction_​load_​address_​tables
{bank_​load_​address_​lookup_​table="slot_​hashes_​sysvar_​not_​found"}
counterResult of loading address lookup tables for a transaction. If there are multiple errors for the transaction, only the first one is reported. (The slot hashes syvar could not be found.)
bank_​transaction_​load_​address_​tables
{bank_​load_​address_​lookup_​table="account_​not_​found"}
counterResult of loading address lookup tables for a transaction. If there are multiple errors for the transaction, only the first one is reported. (The account storing the address lookup table was deactivated or could not be found.)
bank_​transaction_​load_​address_​tables
{bank_​load_​address_​lookup_​table="invalid_​account_​owner"}
counterResult of loading address lookup tables for a transaction. If there are multiple errors for the transaction, only the first one is reported. (The account that owns the referenced lookup table is not the address lookup table program.)
bank_​transaction_​load_​address_​tables
{bank_​load_​address_​lookup_​table="invalid_​account_​data"}
counterResult of loading address lookup tables for a transaction. If there are multiple errors for the transaction, only the first one is reported. (The data for the referenced address lookup table is malformed.)
bank_​transaction_​load_​address_​tables
{bank_​load_​address_​lookup_​table="invalid_​index"}
counterResult of loading address lookup tables for a transaction. If there are multiple errors for the transaction, only the first one is reported. (The referenced index in the address lookup table does not exist.)
bank_​transaction_​result
{transaction_​error="success"}
counterResult of loading and executing a transaction. (Success)
bank_​transaction_​result
{transaction_​error="account_​in_​use"}
counterResult of loading and executing a transaction. (An account is already being processed in another transaction in a way that does not support parallelism.)
bank_​transaction_​result
{transaction_​error="account_​loaded_​twice"}
counterResult of loading and executing a transaction. (A Pubkey appears twice in the transaction's account_keys. Instructions can reference Pubkeys more than once but the message must contain a list with no duplicate keys.)
bank_​transaction_​result
{transaction_​error="account_​not_​found"}
counterResult of loading and executing a transaction. (Attempt to debit an account but found no record of a prior credit.)
bank_​transaction_​result
{transaction_​error="program_​account_​not_​found"}
counterResult of loading and executing a transaction. (Attempt to load a program that does not exist.)
bank_​transaction_​result
{transaction_​error="insufficient_​funds_​for_​fee"}
counterResult of loading and executing a transaction. (The fee payer Pubkey does not have sufficient balance to pay the fee to schedule the transaction.)
bank_​transaction_​result
{transaction_​error="invalid_​account_​for_​fee"}
counterResult of loading and executing a transaction. (This account may not be used to pay transaction fees.)
bank_​transaction_​result
{transaction_​error="already_​processed"}
counterResult of loading and executing a transaction. (The bank has seen this transaction before. This can occur under normal operation when a UDP packet is duplicated, as a user error from a client not updating its recent_blockhash, or as a double-spend attack.)
bank_​transaction_​result
{transaction_​error="blockhash_​not_​found"}
counterResult of loading and executing a transaction. (The bank has not seen the given recent_blockhash or the transaction is too old and the recent_blockhash has been discarded.)
bank_​transaction_​result
{transaction_​error="instruction_​error"}
counterResult of loading and executing a transaction. (An error occurred while processing an instruction.)
bank_​transaction_​result
{transaction_​error="call_​chain_​too_​deep"}
counterResult of loading and executing a transaction. (Loader call chain is too deep.)
bank_​transaction_​result
{transaction_​error="missing_​signature_​for_​fee"}
counterResult of loading and executing a transaction. (Transaction requires a fee but has no signature present.)
bank_​transaction_​result
{transaction_​error="invalid_​account_​index"}
counterResult of loading and executing a transaction. (Transaction contains an invalid account reference.)
bank_​transaction_​result
{transaction_​error="signature_​failure"}
counterResult of loading and executing a transaction. (Transaction did not pass signature verification.)
bank_​transaction_​result
{transaction_​error="invalid_​program_​for_​execution"}
counterResult of loading and executing a transaction. (This program may not be used for executing instructions.)
bank_​transaction_​result
{transaction_​error="sanitize_​failure"}
counterResult of loading and executing a transaction. (Transaction failed to sanitize accounts offsets correctly implies that account locks are not taken for this TX, and should not be unlocked.)
bank_​transaction_​result
{transaction_​error="cluster_​maintenance"}
counterResult of loading and executing a transaction. (Transactions are currently disabled due to cluster maintenance.)
bank_​transaction_​result
{transaction_​error="account_​borrow_​outstanding"}
counterResult of loading and executing a transaction. (Transaction processing left an account with an outstanding borrowed reference.)
bank_​transaction_​result
{transaction_​error="would_​exceed_​max_​block_​cost_​limit"}
counterResult of loading and executing a transaction. (Transaction would exceed max Block Cost Limit.)
bank_​transaction_​result
{transaction_​error="unsupported_​version"}
counterResult of loading and executing a transaction. (Transaction version is unsupported.)
bank_​transaction_​result
{transaction_​error="invalid_​writable_​account"}
counterResult of loading and executing a transaction. (Transaction loads a writable account that cannot be written.)
bank_​transaction_​result
{transaction_​error="would_​exceed_​max_​account_​cost_​limit"}
counterResult of loading and executing a transaction. (Transaction would exceed max account limit within the block.)
bank_​transaction_​result
{transaction_​error="would_​exceed_​account_​data_​block_​limit"}
counterResult of loading and executing a transaction. (Transaction would exceed account data limit within the block.)
bank_​transaction_​result
{transaction_​error="too_​many_​account_​locks"}
counterResult of loading and executing a transaction. (Transaction locked too many accounts.)
bank_​transaction_​result
{transaction_​error="address_​lookup_​table_​not_​found"}
counterResult of loading and executing a transaction. (Address lookup table not found.)
bank_​transaction_​result
{transaction_​error="invalid_​address_​lookup_​table_​owner"}
counterResult of loading and executing a transaction. (Attempted to lookup addresses from an account owned by the wrong program.)
bank_​transaction_​result
{transaction_​error="invalid_​address_​lookup_​table_​data"}
counterResult of loading and executing a transaction. (Attempted to lookup addresses from an invalid account.)
bank_​transaction_​result
{transaction_​error="invalid_​address_​lookup_​table_​index"}
counterResult of loading and executing a transaction. (Address table lookup uses an invalid index.)
bank_​transaction_​result
{transaction_​error="invalid_​rent_​paying_​account"}
counterResult of loading and executing a transaction. (Transaction leaves an account with a lower balance than rent-exempt minimum.)
bank_​transaction_​result
{transaction_​error="would_​exceed_​max_​vote_​cost_​limit"}
counterResult of loading and executing a transaction. (Transaction would exceed max Vote Cost Limit.)
bank_​transaction_​result
{transaction_​error="would_​exceed_​account_​data_​total_​limit"}
counterResult of loading and executing a transaction. (Transaction would exceed total account data limit.)
bank_​transaction_​result
{transaction_​error="duplicate_​instruction"}
counterResult of loading and executing a transaction. (Transaction contains a duplicate instruction that is not allowed.)
bank_​transaction_​result
{transaction_​error="insufficient_​funds_​for_​rent"}
counterResult of loading and executing a transaction. (Transaction results in an account with insufficient funds for rent.)
bank_​transaction_​result
{transaction_​error="max_​loaded_​accounts_​data_​size_​exceeded"}
counterResult of loading and executing a transaction. (Transaction exceeded max loaded accounts data size cap.)
bank_​transaction_​result
{transaction_​error="invalid_​loaded_​accounts_​data_​size_​limit"}
counterResult of loading and executing a transaction. (LoadedAccountsDataSizeLimit set for transaction must be greater than 0.)
bank_​transaction_​result
{transaction_​error="resanitization_​needed"}
counterResult of loading and executing a transaction. (Sanitized transaction differed before/after feature activation. Needs to be resanitized.)
bank_​transaction_​result
{transaction_​error="program_​execution_​temporarily_​restricted"}
counterResult of loading and executing a transaction. (Program execution is temporarily restricted on an account.)
bank_​transaction_​result
{transaction_​error="unbalanced_​transaction"}
counterResult of loading and executing a transaction. (The total balance before the transaction does not equal the total balance after the transaction.)
bank_​transaction_​result
{transaction_​error="program_​cache_​hit_​max_​limit"}
counterResult of loading and executing a transaction. (The total program cache size hit the maximum allowed limit.)
bank_​transaction_​result
{transaction_​error="commit_​cancelled"}
counterResult of loading and executing a transaction. (The process for comitting the transaction was cancelled internaly.)
bank_​transaction_​result
{transaction_​error="bundle_​peer"}
counterResult of loading and executing a transaction. (Transaction is part of a bundle and one of the peer transactions failed.)
bank_​processing_​failedcounterCount of transactions for which the processing stage failed and won't land on chain
bank_​fee_​only_​transactionscounterCount of transactions that will land on chain but without executing
bank_​executed_​failed_​transactionscounterCount of transactions that execute on chain but failed
bank_​successful_​transactionscounterCount of transactions that execute on chain and succeed
bank_​cost_​model_​undercountcounterCount of transactions that used more CUs than the cost model should have permitted them to

Poh Tile

MetricTypeDescription
poh_​begin_​leader_​delay_​secondshistogramDelay between when we become leader in a slot and when we receive the bank.
poh_​first_​microblock_​delay_​secondshistogramDelay between when we become leader in a slot and when we receive the first microblock.
poh_​slot_​done_​delay_​secondshistogramDelay between when we become leader in a slot and when we finish the slot.
poh_​bundle_​initialize_​delay_​secondshistogramDelay in starting the slot caused by loading the information needed to generate the bundle crank transactions

Shred Tile

MetricTypeDescription
shred_​cluster_​contact_​info_​cnthistogramNumber of contact infos in the cluster contact info message
shred_​microblocks_​abandonedcounterThe number of microblocks that were abandoned because we switched slots without finishing the current slot
shred_​invalid_​block_​idcounterThe number of times a block was created with unknown parent block_id
shred_​batch_​szhistogramThe size (in bytes) of each microblock batch that is shredded
shred_​batch_​microblock_​cnthistogramThe number of microblocks in each microblock batch that is shredded
shred_​shredding_​duration_​secondshistogramDuration of producing one FEC set from the shredder
shred_​add_​shred_​duration_​secondshistogramDuration of verifying and processing one shred received from the network
shred_​shred_​processed
{shred_​processing_​result="bad_​slot"}
counterThe result of processing a thread from the network (Shred was for a slot for which we don't know the leader)
shred_​shred_​processed
{shred_​processing_​result="parse_​failed"}
counterThe result of processing a thread from the network (Shred parsing failed)
shred_​shred_​processed
{shred_​processing_​result="rejected"}
counterThe result of processing a thread from the network (Shred was invalid for one of many reasons)
shred_​shred_​processed
{shred_​processing_​result="ignored"}
counterThe result of processing a thread from the network (Shred was ignored because we had already received or reconstructed it)
shred_​shred_​processed
{shred_​processing_​result="okay"}
counterThe result of processing a thread from the network (Shred accepted to an incomplete FEC set)
shred_​shred_​processed
{shred_​processing_​result="completes"}
counterThe result of processing a thread from the network (Shred accepted and resulted in a valid, complete FEC set)
shred_​fec_​set_​spilledcounterThe number of FEC sets that were spilled because they didn't complete in time and we needed space
shred_​shred_​rejected_​initialcounterThe number shreds that were rejected before any resources were allocated for the FEC set
shred_​fec_​rejected_​fatalcounterThe number of FEC sets that were rejected for reasons that cause the whole FEC set to become invalid
shred_​force_​complete_​requestcounterThe number of times we recieved a FEC force complete message
shred_​force_​complete_​failurecounterThe number of times we failed to force complete a FEC set on request
shred_​force_​complete_​successcounterThe number of times we successfully forced completed a FEC set on request

Store Tile

MetricTypeDescription
store_​transactions_​insertedcounterCount of transactions produced while we were leader in the shreds that have been inserted so far

Replay Tile

MetricTypeDescription
replay_​slotgauge
replay_​last_​voted_​slotgauge

Storei Tile

MetricTypeDescription
storei_​first_​turbine_​slotgauge
storei_​current_​turbine_​slotgauge

Gossip Tile

MetricTypeDescription
gossip_​last_​crds_​push_​contact_​info_​publish_​timestamp_​nanosgaugeTime (in nanoseconds) of last CRDS Push ContactInfo message publish
gossip_​mismatched_​contact_​info_​shred_​versioncounterMismatched Contact Info Shred Version
gossip_​ipv6_​contact_​info
{peer_​types="tvu"}
counterIPv6 Contact Info (by peer type) (TVU)
gossip_​ipv6_​contact_​info
{peer_​types="repair"}
counterIPv6 Contact Info (by peer type) (Repair)
gossip_​ipv6_​contact_​info
{peer_​types="voter"}
counterIPv6 Contact Info (by peer type) (Voter)
gossip_​zero_​ipv4_​contact_​info
{peer_​types="tvu"}
counterZero IPv4 Contact Info (by peer type) (TVU)
gossip_​zero_​ipv4_​contact_​info
{peer_​types="repair"}
counterZero IPv4 Contact Info (by peer type) (Repair)
gossip_​zero_​ipv4_​contact_​info
{peer_​types="voter"}
counterZero IPv4 Contact Info (by peer type) (Voter)
gossip_​peer_​counts
{peer_​types="tvu"}
gaugeNumber of peers of each type (TVU)
gossip_​peer_​counts
{peer_​types="repair"}
gaugeNumber of peers of each type (Repair)
gossip_​peer_​counts
{peer_​types="voter"}
gaugeNumber of peers of each type (Voter)
gossip_​shred_​version_​zerocounterShred version zero
gossip_​value_​meta_​sizegaugeCurrent size of the CRDS value metas map
gossip_​value_​vec_​sizegaugeCurrent size of the CRDS value vector
gossip_​received_​packetscounterNumber of all gossip packets received
gossip_​corrupted_​messagescounterNumber of corrupted gossip messages received
gossip_​received_​gossip_​messages
{gossip_​message="pull_​request"}
counterNumber of gossip messages received (Pull Request)
gossip_​received_​gossip_​messages
{gossip_​message="pull_​response"}
counterNumber of gossip messages received (Pull Response)
gossip_​received_​gossip_​messages
{gossip_​message="push"}
counterNumber of gossip messages received (Push)
gossip_​received_​gossip_​messages
{gossip_​message="prune"}
counterNumber of gossip messages received (Prune)
gossip_​received_​gossip_​messages
{gossip_​message="ping"}
counterNumber of gossip messages received (Ping)
gossip_​received_​gossip_​messages
{gossip_​message="pong"}
counterNumber of gossip messages received (Pong)
gossip_​received_​unknown_​messagecounterNumber of gossip messages received that have an unknown discriminant
gossip_​received_​crds_​push
{crds_​value="contact_​info_​v1"}
counterNumber of CRDS values received from push messages (Contact Info V1)
gossip_​received_​crds_​push
{crds_​value="vote"}
counterNumber of CRDS values received from push messages (Vote)
gossip_​received_​crds_​push
{crds_​value="lowest_​slot"}
counterNumber of CRDS values received from push messages (Lowest Slot)
gossip_​received_​crds_​push
{crds_​value="snapshot_​hashes"}
counterNumber of CRDS values received from push messages (Snapshot Hashes)
gossip_​received_​crds_​push
{crds_​value="accounts_​hashes"}
counterNumber of CRDS values received from push messages (Accounts Hashes)
gossip_​received_​crds_​push
{crds_​value="epoch_​slots"}
counterNumber of CRDS values received from push messages (Epoch Slots)
gossip_​received_​crds_​push
{crds_​value="version_​v1"}
counterNumber of CRDS values received from push messages (Version V1)
gossip_​received_​crds_​push
{crds_​value="version_​v2"}
counterNumber of CRDS values received from push messages (Version V2)
gossip_​received_​crds_​push
{crds_​value="node_​instance"}
counterNumber of CRDS values received from push messages (Node Instance)
gossip_​received_​crds_​push
{crds_​value="duplicate_​shred"}
counterNumber of CRDS values received from push messages (Duplicate Shred)
gossip_​received_​crds_​push
{crds_​value="incremental_​snapshot_​hashes"}
counterNumber of CRDS values received from push messages (Incremental Snapshot Hashes)
gossip_​received_​crds_​push
{crds_​value="contact_​info_​v2"}
counterNumber of CRDS values received from push messages (Contact Info V2)
gossip_​received_​crds_​push
{crds_​value="restart_​last_​voted_​fork_​slots"}
counterNumber of CRDS values received from push messages (Restart Last Voted Fork Slots)
gossip_​received_​crds_​push
{crds_​value="restart_​heaviest_​fork"}
counterNumber of CRDS values received from push messages (Restart Heaviest Fork)
gossip_​received_​crds_​pull
{crds_​value="contact_​info_​v1"}
counterNumber of CRDS values received from pull response messages (Contact Info V1)
gossip_​received_​crds_​pull
{crds_​value="vote"}
counterNumber of CRDS values received from pull response messages (Vote)
gossip_​received_​crds_​pull
{crds_​value="lowest_​slot"}
counterNumber of CRDS values received from pull response messages (Lowest Slot)
gossip_​received_​crds_​pull
{crds_​value="snapshot_​hashes"}
counterNumber of CRDS values received from pull response messages (Snapshot Hashes)
gossip_​received_​crds_​pull
{crds_​value="accounts_​hashes"}
counterNumber of CRDS values received from pull response messages (Accounts Hashes)
gossip_​received_​crds_​pull
{crds_​value="epoch_​slots"}
counterNumber of CRDS values received from pull response messages (Epoch Slots)
gossip_​received_​crds_​pull
{crds_​value="version_​v1"}
counterNumber of CRDS values received from pull response messages (Version V1)
gossip_​received_​crds_​pull
{crds_​value="version_​v2"}
counterNumber of CRDS values received from pull response messages (Version V2)
gossip_​received_​crds_​pull
{crds_​value="node_​instance"}
counterNumber of CRDS values received from pull response messages (Node Instance)
gossip_​received_​crds_​pull
{crds_​value="duplicate_​shred"}
counterNumber of CRDS values received from pull response messages (Duplicate Shred)
gossip_​received_​crds_​pull
{crds_​value="incremental_​snapshot_​hashes"}
counterNumber of CRDS values received from pull response messages (Incremental Snapshot Hashes)
gossip_​received_​crds_​pull
{crds_​value="contact_​info_​v2"}
counterNumber of CRDS values received from pull response messages (Contact Info V2)
gossip_​received_​crds_​pull
{crds_​value="restart_​last_​voted_​fork_​slots"}
counterNumber of CRDS values received from pull response messages (Restart Last Voted Fork Slots)
gossip_​received_​crds_​pull
{crds_​value="restart_​heaviest_​fork"}
counterNumber of CRDS values received from pull response messages (Restart Heaviest Fork)
gossip_​received_​crds_​duplicate_​message_​push
{crds_​value="contact_​info_​v1"}
counterNumber of duplicate CRDS values received from push messages (Contact Info V1)
gossip_​received_​crds_​duplicate_​message_​push
{crds_​value="vote"}
counterNumber of duplicate CRDS values received from push messages (Vote)
gossip_​received_​crds_​duplicate_​message_​push
{crds_​value="lowest_​slot"}
counterNumber of duplicate CRDS values received from push messages (Lowest Slot)
gossip_​received_​crds_​duplicate_​message_​push
{crds_​value="snapshot_​hashes"}
counterNumber of duplicate CRDS values received from push messages (Snapshot Hashes)
gossip_​received_​crds_​duplicate_​message_​push
{crds_​value="accounts_​hashes"}
counterNumber of duplicate CRDS values received from push messages (Accounts Hashes)
gossip_​received_​crds_​duplicate_​message_​push
{crds_​value="epoch_​slots"}
counterNumber of duplicate CRDS values received from push messages (Epoch Slots)
gossip_​received_​crds_​duplicate_​message_​push
{crds_​value="version_​v1"}
counterNumber of duplicate CRDS values received from push messages (Version V1)
gossip_​received_​crds_​duplicate_​message_​push
{crds_​value="version_​v2"}
counterNumber of duplicate CRDS values received from push messages (Version V2)
gossip_​received_​crds_​duplicate_​message_​push
{crds_​value="node_​instance"}
counterNumber of duplicate CRDS values received from push messages (Node Instance)
gossip_​received_​crds_​duplicate_​message_​push
{crds_​value="duplicate_​shred"}
counterNumber of duplicate CRDS values received from push messages (Duplicate Shred)
gossip_​received_​crds_​duplicate_​message_​push
{crds_​value="incremental_​snapshot_​hashes"}
counterNumber of duplicate CRDS values received from push messages (Incremental Snapshot Hashes)
gossip_​received_​crds_​duplicate_​message_​push
{crds_​value="contact_​info_​v2"}
counterNumber of duplicate CRDS values received from push messages (Contact Info V2)
gossip_​received_​crds_​duplicate_​message_​push
{crds_​value="restart_​last_​voted_​fork_​slots"}
counterNumber of duplicate CRDS values received from push messages (Restart Last Voted Fork Slots)
gossip_​received_​crds_​duplicate_​message_​push
{crds_​value="restart_​heaviest_​fork"}
counterNumber of duplicate CRDS values received from push messages (Restart Heaviest Fork)
gossip_​received_​crds_​duplicate_​message_​pull
{crds_​value="contact_​info_​v1"}
counterNumber of duplicate CRDS values received from pull response messages (Contact Info V1)
gossip_​received_​crds_​duplicate_​message_​pull
{crds_​value="vote"}
counterNumber of duplicate CRDS values received from pull response messages (Vote)
gossip_​received_​crds_​duplicate_​message_​pull
{crds_​value="lowest_​slot"}
counterNumber of duplicate CRDS values received from pull response messages (Lowest Slot)
gossip_​received_​crds_​duplicate_​message_​pull
{crds_​value="snapshot_​hashes"}
counterNumber of duplicate CRDS values received from pull response messages (Snapshot Hashes)
gossip_​received_​crds_​duplicate_​message_​pull
{crds_​value="accounts_​hashes"}
counterNumber of duplicate CRDS values received from pull response messages (Accounts Hashes)
gossip_​received_​crds_​duplicate_​message_​pull
{crds_​value="epoch_​slots"}
counterNumber of duplicate CRDS values received from pull response messages (Epoch Slots)
gossip_​received_​crds_​duplicate_​message_​pull
{crds_​value="version_​v1"}
counterNumber of duplicate CRDS values received from pull response messages (Version V1)
gossip_​received_​crds_​duplicate_​message_​pull
{crds_​value="version_​v2"}
counterNumber of duplicate CRDS values received from pull response messages (Version V2)
gossip_​received_​crds_​duplicate_​message_​pull
{crds_​value="node_​instance"}
counterNumber of duplicate CRDS values received from pull response messages (Node Instance)
gossip_​received_​crds_​duplicate_​message_​pull
{crds_​value="duplicate_​shred"}
counterNumber of duplicate CRDS values received from pull response messages (Duplicate Shred)
gossip_​received_​crds_​duplicate_​message_​pull
{crds_​value="incremental_​snapshot_​hashes"}
counterNumber of duplicate CRDS values received from pull response messages (Incremental Snapshot Hashes)
gossip_​received_​crds_​duplicate_​message_​pull
{crds_​value="contact_​info_​v2"}
counterNumber of duplicate CRDS values received from pull response messages (Contact Info V2)
gossip_​received_​crds_​duplicate_​message_​pull
{crds_​value="restart_​last_​voted_​fork_​slots"}
counterNumber of duplicate CRDS values received from pull response messages (Restart Last Voted Fork Slots)
gossip_​received_​crds_​duplicate_​message_​pull
{crds_​value="restart_​heaviest_​fork"}
counterNumber of duplicate CRDS values received from pull response messages (Restart Heaviest Fork)
gossip_​received_​crds_​drop
{crds_​drop_​reason="success"}
counterNumber of CRDS values dropped on receive (Successfully processed CRDS (not dropped))
gossip_​received_​crds_​drop
{crds_​drop_​reason="duplicate"}
counterNumber of CRDS values dropped on receive (Duplicate CRDS value)
gossip_​received_​crds_​drop
{crds_​drop_​reason="unknown_​discriminant"}
counterNumber of CRDS values dropped on receive (Unknown discriminant)
gossip_​received_​crds_​drop
{crds_​drop_​reason="own_​message"}
counterNumber of CRDS values dropped on receive (Own message)
gossip_​received_​crds_​drop
{crds_​drop_​reason="invalid_​signature"}
counterNumber of CRDS values dropped on receive (Invalid signature)
gossip_​received_​crds_​drop
{crds_​drop_​reason="table_​full"}
counterNumber of CRDS values dropped on receive (Table full)
gossip_​received_​crds_​drop
{crds_​drop_​reason="push_​queue_​full"}
counterNumber of CRDS values dropped on receive (Push queue full)
gossip_​received_​crds_​drop
{crds_​drop_​reason="invalid_​gossip_​port"}
counterNumber of CRDS values dropped on receive (Invalid gossip port)
gossip_​received_​crds_​drop
{crds_​drop_​reason="peer_​table_​full"}
counterNumber of CRDS values dropped on receive (Peer table full)
gossip_​received_​crds_​drop
{crds_​drop_​reason="inactives_​queue_​full"}
counterNumber of CRDS values dropped on receive (Inactives queue full)
gossip_​received_​crds_​drop
{crds_​drop_​reason="discarded_​peer"}
counterNumber of CRDS values dropped on receive (Discarded peer)
gossip_​received_​crds_​drop
{crds_​drop_​reason="encoding_​failed"}
counterNumber of CRDS values dropped on receive (Encoding failed)
gossip_​push_​crds
{crds_​value="contact_​info_​v1"}
counterNumber of CRDS values pushed (Contact Info V1)
gossip_​push_​crds
{crds_​value="vote"}
counterNumber of CRDS values pushed (Vote)
gossip_​push_​crds
{crds_​value="lowest_​slot"}
counterNumber of CRDS values pushed (Lowest Slot)
gossip_​push_​crds
{crds_​value="snapshot_​hashes"}
counterNumber of CRDS values pushed (Snapshot Hashes)
gossip_​push_​crds
{crds_​value="accounts_​hashes"}
counterNumber of CRDS values pushed (Accounts Hashes)
gossip_​push_​crds
{crds_​value="epoch_​slots"}
counterNumber of CRDS values pushed (Epoch Slots)
gossip_​push_​crds
{crds_​value="version_​v1"}
counterNumber of CRDS values pushed (Version V1)
gossip_​push_​crds
{crds_​value="version_​v2"}
counterNumber of CRDS values pushed (Version V2)
gossip_​push_​crds
{crds_​value="node_​instance"}
counterNumber of CRDS values pushed (Node Instance)
gossip_​push_​crds
{crds_​value="duplicate_​shred"}
counterNumber of CRDS values pushed (Duplicate Shred)
gossip_​push_​crds
{crds_​value="incremental_​snapshot_​hashes"}
counterNumber of CRDS values pushed (Incremental Snapshot Hashes)
gossip_​push_​crds
{crds_​value="contact_​info_​v2"}
counterNumber of CRDS values pushed (Contact Info V2)
gossip_​push_​crds
{crds_​value="restart_​last_​voted_​fork_​slots"}
counterNumber of CRDS values pushed (Restart Last Voted Fork Slots)
gossip_​push_​crds
{crds_​value="restart_​heaviest_​fork"}
counterNumber of CRDS values pushed (Restart Heaviest Fork)
gossip_​push_​crds_​duplicate_​message
{crds_​value="contact_​info_​v1"}
counterNumber of duplicate CRDS values inserted (internally) (Contact Info V1)
gossip_​push_​crds_​duplicate_​message
{crds_​value="vote"}
counterNumber of duplicate CRDS values inserted (internally) (Vote)
gossip_​push_​crds_​duplicate_​message
{crds_​value="lowest_​slot"}
counterNumber of duplicate CRDS values inserted (internally) (Lowest Slot)
gossip_​push_​crds_​duplicate_​message
{crds_​value="snapshot_​hashes"}
counterNumber of duplicate CRDS values inserted (internally) (Snapshot Hashes)
gossip_​push_​crds_​duplicate_​message
{crds_​value="accounts_​hashes"}
counterNumber of duplicate CRDS values inserted (internally) (Accounts Hashes)
gossip_​push_​crds_​duplicate_​message
{crds_​value="epoch_​slots"}
counterNumber of duplicate CRDS values inserted (internally) (Epoch Slots)
gossip_​push_​crds_​duplicate_​message
{crds_​value="version_​v1"}
counterNumber of duplicate CRDS values inserted (internally) (Version V1)
gossip_​push_​crds_​duplicate_​message
{crds_​value="version_​v2"}
counterNumber of duplicate CRDS values inserted (internally) (Version V2)
gossip_​push_​crds_​duplicate_​message
{crds_​value="node_​instance"}
counterNumber of duplicate CRDS values inserted (internally) (Node Instance)
gossip_​push_​crds_​duplicate_​message
{crds_​value="duplicate_​shred"}
counterNumber of duplicate CRDS values inserted (internally) (Duplicate Shred)
gossip_​push_​crds_​duplicate_​message
{crds_​value="incremental_​snapshot_​hashes"}
counterNumber of duplicate CRDS values inserted (internally) (Incremental Snapshot Hashes)
gossip_​push_​crds_​duplicate_​message
{crds_​value="contact_​info_​v2"}
counterNumber of duplicate CRDS values inserted (internally) (Contact Info V2)
gossip_​push_​crds_​duplicate_​message
{crds_​value="restart_​last_​voted_​fork_​slots"}
counterNumber of duplicate CRDS values inserted (internally) (Restart Last Voted Fork Slots)
gossip_​push_​crds_​duplicate_​message
{crds_​value="restart_​heaviest_​fork"}
counterNumber of duplicate CRDS values inserted (internally) (Restart Heaviest Fork)
gossip_​push_​crds_​drop
{crds_​drop_​reason="success"}
counterNumber of CRDS values dropped on push (Successfully processed CRDS (not dropped))
gossip_​push_​crds_​drop
{crds_​drop_​reason="duplicate"}
counterNumber of CRDS values dropped on push (Duplicate CRDS value)
gossip_​push_​crds_​drop
{crds_​drop_​reason="unknown_​discriminant"}
counterNumber of CRDS values dropped on push (Unknown discriminant)
gossip_​push_​crds_​drop
{crds_​drop_​reason="own_​message"}
counterNumber of CRDS values dropped on push (Own message)
gossip_​push_​crds_​drop
{crds_​drop_​reason="invalid_​signature"}
counterNumber of CRDS values dropped on push (Invalid signature)
gossip_​push_​crds_​drop
{crds_​drop_​reason="table_​full"}
counterNumber of CRDS values dropped on push (Table full)
gossip_​push_​crds_​drop
{crds_​drop_​reason="push_​queue_​full"}
counterNumber of CRDS values dropped on push (Push queue full)
gossip_​push_​crds_​drop
{crds_​drop_​reason="invalid_​gossip_​port"}
counterNumber of CRDS values dropped on push (Invalid gossip port)
gossip_​push_​crds_​drop
{crds_​drop_​reason="peer_​table_​full"}
counterNumber of CRDS values dropped on push (Peer table full)
gossip_​push_​crds_​drop
{crds_​drop_​reason="inactives_​queue_​full"}
counterNumber of CRDS values dropped on push (Inactives queue full)
gossip_​push_​crds_​drop
{crds_​drop_​reason="discarded_​peer"}
counterNumber of CRDS values dropped on push (Discarded peer)
gossip_​push_​crds_​drop
{crds_​drop_​reason="encoding_​failed"}
counterNumber of CRDS values dropped on push (Encoding failed)
gossip_​push_​crds_​queue_​countgaugeNumber of CRDS values in the queue to be pushed
gossip_​active_​push_​destinationsgaugeNumber of active Push destinations
gossip_​refresh_​push_​states_​fail_​countcounterNumber of failures whilst refreshing push states
gossip_​pull_​req_​fail
{pull_​req_​fail_​reason="peer_​not_​in_​actives"}
counterNumber of PullReq messages that failed (Number of PullReq messages from peers that are not in the active set)
gossip_​pull_​req_​fail
{pull_​req_​fail_​reason="unresponsive_​peer"}
counterNumber of PullReq messages that failed (Number of PullReq messages from a peer that hasn't responded to our ping message yet)
gossip_​pull_​req_​fail
{pull_​req_​fail_​reason="pending_​pool_​full"}
counterNumber of PullReq messages that failed (Number of PullReq messages skipped due to the pending pool being full)
gossip_​pull_​req_​fail
{pull_​req_​fail_​reason="encoding_​failed"}
counterNumber of PullReq messages that failed (Number of PullReq messages skipped due to message encoding failed)
gossip_​pull_​req_​bloom_​filter
{pull_​req_​bloom_​filter_​result="hit"}
counterResult of the bloom filter check for a PullReq (Number of PullReq messages that hit the bloom filter)
gossip_​pull_​req_​bloom_​filter
{pull_​req_​bloom_​filter_​result="miss"}
counterResult of the bloom filter check for a PullReq (Number of PullReq messages that missed the bloom filter)
gossip_​pull_​req_​resp_​packetsgaugeNumber of packets used to respond to a PullReq
gossip_​prune_​fail_​count
{prune_​failure_​reason="not_​for_​me"}
counterNumber of Prune messages that failed (Prune message not for me)
gossip_​prune_​fail_​count
{prune_​failure_​reason="sign_​encoding_​failed"}
counterNumber of Prune messages that failed (Prune message sign encoding failed)
gossip_​prune_​fail_​count
{prune_​failure_​reason="invalid_​signature"}
counterNumber of Prune messages that failed (Prune message invalid signature)
gossip_​make_​prune_​stale_​entrycounterNumber of stale entries removed from the stats table while making prune messages
gossip_​make_​prune_​high_​duplicatescounterNumber of origins with high duplicate counts found while making prune messages
gossip_​make_​prune_​requested_​originsgaugeNumber of requested origins in the last prune message we made
gossip_​make_​prune_​sign_​data_​encode_​failedcounterNumber of times we failed to encode the sign data
gossip_​sent_​gossip_​messages
{gossip_​message="pull_​request"}
counterNumber of gossip messages sent (Pull Request)
gossip_​sent_​gossip_​messages
{gossip_​message="pull_​response"}
counterNumber of gossip messages sent (Pull Response)
gossip_​sent_​gossip_​messages
{gossip_​message="push"}
counterNumber of gossip messages sent (Push)
gossip_​sent_​gossip_​messages
{gossip_​message="prune"}
counterNumber of gossip messages sent (Prune)
gossip_​sent_​gossip_​messages
{gossip_​message="ping"}
counterNumber of gossip messages sent (Ping)
gossip_​sent_​gossip_​messages
{gossip_​message="pong"}
counterNumber of gossip messages sent (Pong)
gossip_​sent_​packetscounterNumber of Packets sent
gossip_​send_​ping_​event
{send_​ping_​event="actives_​table_​full"}
counterNumber of Ping messages sent with non-standard outcomes (Number of Ping messages we failed to send due to the Active Peers table being full)
gossip_​send_​ping_​event
{send_​ping_​event="actives_​table_​insert"}
counterNumber of Ping messages sent with non-standard outcomes (Number of Ping messages that cause an insert into the Active Peers table)
gossip_​send_​ping_​event
{send_​ping_​event="max_​ping_​count_​exceeded"}
counterNumber of Ping messages sent with non-standard outcomes (Number of times we removed a peer from the Actives table, because it repeatedly failed to respond to a ping)
gossip_​recv_​ping_​invalid_​signaturecounterNumber of times we received a Ping message with an invalid signature
gossip_​recv_​pong_​event
{recv_​pong_​event="new_​peer"}
counterNumber of Pong messages processed with non-standard outcomes (Pong peer is not in table)
gossip_​recv_​pong_​event
{recv_​pong_​event="wrong_​token"}
counterNumber of Pong messages processed with non-standard outcomes (Pong peer token mismatch)
gossip_​recv_​pong_​event
{recv_​pong_​event="invalid_​signature"}
counterNumber of Pong messages processed with non-standard outcomes (Pong peer invalid signature)
gossip_​recv_​pong_​event
{recv_​pong_​event="expired"}
counterNumber of Pong messages processed with non-standard outcomes (Pong peer expired)
gossip_​recv_​pong_​event
{recv_​pong_​event="table_​full"}
counterNumber of Pong messages processed with non-standard outcomes (Unable to insert peer due to table full)
gossip_​gossip_​peer_​counts
{gossip_​peer_​state="total"}
gaugeNumber of gossip peers tracked (Total Peers Detected)
gossip_​gossip_​peer_​counts
{gossip_​peer_​state="active"}
gaugeNumber of gossip peers tracked (Active)
gossip_​gossip_​peer_​counts
{gossip_​peer_​state="inactive"}
gaugeNumber of gossip peers tracked (Inactive)

Netlnk Tile

MetricTypeDescription
netlnk_​drop_​eventscounterNumber of netlink drop events caught
netlnk_​link_​full_​syncscounterNumber of full link table syncs done
netlnk_​route_​full_​syncscounterNumber of full route table syncs done
netlnk_​updates
{netlink_​msg="link"}
counterNumber of netlink live updates processed (Link)
netlnk_​updates
{netlink_​msg="neigh"}
counterNumber of netlink live updates processed (Neighbor Table Entry)
netlnk_​updates
{netlink_​msg="ipv4_​route"}
counterNumber of netlink live updates processed (IPv4 Route Table Entry)
netlnk_​interface_​countgaugeNumber of network interfaces
netlnk_​route_​count
{route_​table="local"}
gaugeNumber of IPv4 routes (Local)
netlnk_​route_​count
{route_​table="main"}
gaugeNumber of IPv4 routes (Main)
netlnk_​neigh_​probe_​sentcounterNumber of neighbor solicit requests sent to kernel
netlnk_​neigh_​probe_​failscounterNumber of neighbor solicit requests that failed to send (kernel too slow)
netlnk_​neigh_​probe_​rate_​limit_​hostcounterNumber of neighbor solicit that exceeded the per-host rate limit
netlnk_​neigh_​probe_​rate_​limit_​globalcounterNumber of neighbor solicit that exceeded the global rate limit

Sock Tile

MetricTypeDescription
sock_​syscalls_​sendmmsg
{sock_​err="no_​error"}
counterNumber of sendmmsg syscalls dispatched (No error)
sock_​syscalls_​sendmmsg
{sock_​err="slow"}
counterNumber of sendmmsg syscalls dispatched (ENOBUFS, EAGAIN error)
sock_​syscalls_​sendmmsg
{sock_​err="perm"}
counterNumber of sendmmsg syscalls dispatched (EPERM error (blocked by netfilter))
sock_​syscalls_​sendmmsg
{sock_​err="unreach"}
counterNumber of sendmmsg syscalls dispatched (ENETUNREACH, EHOSTUNREACH error)
sock_​syscalls_​sendmmsg
{sock_​err="down"}
counterNumber of sendmmsg syscalls dispatched (ENONET, ENETDOWN, EHOSTDOWN error)
sock_​syscalls_​sendmmsg
{sock_​err="other"}
counterNumber of sendmmsg syscalls dispatched (Unrecognized error code)
sock_​syscalls_​recvmmsgcounterNumber of recvmsg syscalls dispatched
sock_​rx_​pkt_​cntcounterNumber of packets received
sock_​tx_​pkt_​cntcounterNumber of packets sent
sock_​tx_​drop_​cntcounterNumber of packets failed to send
sock_​tx_​bytes_​totalcounterTotal number of bytes transmitted (including Ethernet header).
sock_​rx_​bytes_​totalcounterTotal number of bytes received (including Ethernet header).

Repair Tile

MetricTypeDescription
repair_​recv_​clnt_​pktcounterNow many client packets have we received
repair_​recv_​serv_​pktcounterHow many server packets have we received
repair_​recv_​serv_​corrupt_​pktcounterHow many corrupt server packets have we received
repair_​recv_​serv_​invalid_​signaturecounterHow many invalid signatures have we received
repair_​recv_​serv_​full_​ping_​tablecounterIs our ping table full and causing packet drops
repair_​recv_​serv_​pkt_​types
{repair_​serv_​pkt_​types="pong"}
counterServer messages received (Pong)
repair_​recv_​serv_​pkt_​types
{repair_​serv_​pkt_​types="window"}
counterServer messages received (Window)
repair_​recv_​serv_​pkt_​types
{repair_​serv_​pkt_​types="highest_​window"}
counterServer messages received (Highest Window)
repair_​recv_​serv_​pkt_​types
{repair_​serv_​pkt_​types="orphan"}
counterServer messages received (Orphan)
repair_​recv_​serv_​pkt_​types
{repair_​serv_​pkt_​types="unknown"}
counterServer messages received (Unknown)
repair_​recv_​pkt_​corrupted_​msgcounterHow many corrupt messages have we received
repair_​send_​pkt_​cntcounterHow many packets have sent
repair_​sent_​pkt_​types
{repair_​sent_​request_​types="needed_​window"}
counterWhat types of client messages are we sending (Need Window)
repair_​sent_​pkt_​types
{repair_​sent_​request_​types="needed_​highest_​window"}
counterWhat types of client messages are we sending (Need Highest Window)
repair_​sent_​pkt_​types
{repair_​sent_​request_​types="needed_​orphan"}
counterWhat types of client messages are we sending (Need Orphans)

Sender Tile

MetricTypeDescription
sender_​txns_​sent_​to_​leadercounterTotal count of transactions sent to leader
sender_​leader_​sched_​not_​foundcounterTotal count of times leader schedule not found
sender_​leader_​not_​foundcounterTotal count of times leader not found for given slot
sender_​leader_​contact_​not_​foundcounterTotal count of times leader contact info not found
sender_​leader_​contact_​nonroutablecounterTotal count of times leader contact is nonroutable