From a0aa600480ca4f7bb4c5ea9433bb3019f176e516 Mon Sep 17 00:00:00 2001 From: Katya Ryazantseva Date: Sat, 14 Mar 2026 13:59:28 +0100 Subject: [PATCH 1/3] feat: clients devnet-3 updates --- metrics.md | 86 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 44 insertions(+), 42 deletions(-) diff --git a/metrics.md b/metrics.md index 297e4d2..e3b35ad 100644 --- a/metrics.md +++ b/metrics.md @@ -12,71 +12,73 @@ | Name | Type | Usage | Sample collection event | Labels | EthLambda | Grandine | Lantern | Lighthouse | Qlean | Ream | Zeam | |--------|-------|-------|-------------------------|--------|-----------|----------|----------|------------|----------|----------|----------| -| `lean_node_info` | Gauge | Node information (always 1) | On node start | name, version | □ | □ | □ | □ | □ | □ | □ | -| `lean_node_start_time_seconds` | Gauge | Start timestamp | On node start | | □ | □ | □ | □ | □ | □ | □ | +| `lean_node_info` | Gauge | Node information (always 1) | On node start | name, version | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | +| `lean_node_start_time_seconds` | Gauge | Start timestamp | On node start | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | ## PQ Signature Metrics | Name | Type | Usage | Sample collection event | Labels | Buckets | EthLambda | Grandine | Lantern | Lighthouse | Qlean | Ream | Zeam | |--------|-------|-------|-------------------------|--------|---------|-----------|----------|----------|------------|----------|----------|----------| -| `lean_pq_sig_attestation_signatures_total` | Counter | Total number of individual attestation signatures | On each attestation signing | | | □ | □ | □ | □ | □ | □ | □ | -| `lean_pq_sig_attestation_signatures_valid_total`| Counter | Total number of valid individual attestation signatures | On each attestation signature verification | | | □ | □ | □ | □ | □ | □ | □ | -| `lean_pq_sig_attestation_signatures_invalid_total`| Counter | Total number of invalid individual attestation signatures | On each attestation signature verification | | | □ | □ | □ | □ | □ | □ | □ | -| `lean_pq_sig_attestation_signing_time_seconds` | Histogram | Time taken to sign an attestation | On each attestation signing | | 0.005, 0.01, 0.025, 0.05, 0.1, 1 | □ | □ | □ | □ | □ | □ | □ | -| `lean_pq_sig_attestation_verification_time_seconds` | Histogram | Time taken to verify an attestation signature | On each attestation signature verification | | 0.005, 0.01, 0.025, 0.05, 0.1, 1 | □ | □ | □ | □ | □ | □ | □ | -| `lean_pq_sig_aggregated_signatures_total` | Counter | Total number of aggregated signatures | On aggregated signature production | | | □ | □ | □ | □ | □ | □ | □ | -| `lean_pq_sig_aggregated_signatures_valid_total`| Counter | Total number of valid aggregated signatures | On aggregated signature verification | | | □ | □ | □ | □ | □ | □ | □ | -| `lean_pq_sig_aggregated_signatures_invalid_total`| Counter | Total number of invalid aggregated signatures | On aggregated signature verification | | | □ | □ | □ | □ | □ | □ | □ | -| `lean_pq_sig_attestations_in_aggregated_signatures_total` | Counter | Total number of attestations included into aggregated signatures | On aggregated signature production | | | □ | □ | □ | □ | □ | □ | □ | -| `lean_pq_sig_aggregated_signatures_building_time_seconds` | Histogram | Time taken to build an aggregated attestation signature | On aggregated signature production | | 0.1, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 2, 4 | □ | □ | □ | □ | □ | □ | □ | -| `lean_pq_sig_aggregated_signatures_verification_time_seconds` | Histogram | Time taken to verify an aggregated attestation signature | On aggregated signature verification | | 0.1, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 2, 4 | □ | □ | □ | □ | □ | □ | □ | +| `lean_pq_sig_attestation_signatures_total` | Counter | Total number of individual attestation signatures | On each attestation signing | | | ✅ | □ | 📝 | □ | ✅ | □ | □ | +| `lean_pq_sig_attestation_signatures_valid_total`| Counter | Total number of valid individual attestation signatures | On each attestation signature verification | | | ✅ | □ | 📝 | □ | ✅ | ✅ | □ | +| `lean_pq_sig_attestation_signatures_invalid_total`| Counter | Total number of invalid individual attestation signatures | On each attestation signature verification | | | □ | □ | 📝 | □ | ✅ | □ | □ | +| `lean_pq_sig_attestation_signing_time_seconds` | Histogram | Time taken to sign an attestation | On each attestation signing | | 0.005, 0.01, 0.025, 0.05, 0.1, 1 | ✅ | □ | ✅ | □ | ✅ | □ | 📝 | +| `lean_pq_sig_attestation_verification_time_seconds` | Histogram | Time taken to verify an attestation signature | On each attestation signature verification | | 0.005, 0.01, 0.025, 0.05, 0.1, 1 | ✅ | □ | ✅ | □ | ✅ | □ | 📝 | +| `lean_pq_sig_aggregated_signatures_total` | Counter | Total number of aggregated signatures | On aggregated signature production | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | +| `lean_pq_sig_aggregated_signatures_valid_total`| Counter | Total number of valid aggregated signatures | On aggregated signature verification | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | +| `lean_pq_sig_aggregated_signatures_invalid_total`| Counter | Total number of invalid aggregated signatures | On aggregated signature verification | | | □ | □ | ✅ | □ | ✅ | □ | ✅ | +| `lean_pq_sig_attestations_in_aggregated_signatures_total` | Counter | Total number of attestations included into aggregated signatures | On aggregated signature production | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | +| `lean_pq_sig_aggregated_signatures_building_time_seconds` | Histogram | Time taken to build an aggregated attestation signature | On aggregated signature production | | 0.1, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 2, 4 | ✅ | □ | 📝 | □ | ✅ | ✅ | 📝 | +| `lean_pq_sig_aggregated_signatures_verification_time_seconds` | Histogram | Time taken to verify an aggregated attestation signature | On aggregated signature verification | | 0.1, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 2, 4 | ✅ | □ | 📝 | □ | ✅ | ✅ | 📝 | ## Fork-Choice Metrics | Name | Type | Usage | Sample collection event | Labels | Buckets | EthLambda | Grandine | Lantern | Lighthouse | Qlean | Ream | Zeam | |--------|-------|-------|-------------------------|--------|---------|-----------|----------|----------|------------|----------|----------|----------| -| `lean_head_slot` | Gauge | Latest slot of the lean chain | On get fork choice head | | | □ | □ | ✅ | □ | ✅ | ✅ | ✅ | -| `lean_current_slot` | Gauge | Current slot of the lean chain | On scrape | | | □ | □ | □ | □ | □ | □ | □ | -| `lean_safe_target_slot` | Gauge | Safe target slot | On safe target update | | | □ | □ | □ | □ | □ | □ | □ | -|`lean_fork_choice_block_processing_time_seconds`| Histogram | Time taken to process block | On fork choice process block | | 0.005, 0.01, 0.025, 0.05, 0.1, 1, 1.25, 1.5, 2, 4 | □ | □ | ✅ | □ | ✅ | ✅ | □ | -|`lean_attestations_valid_total`| Counter | Total number of valid attestations | On validate attestation | | | □ | □ | ✅ | □ | ✅ | ✅ | □ | -|`lean_attestations_invalid_total`| Counter | Total number of invalid attestations | On validate attestation | | | □ | □ | ✅ | □ | ✅ | ✅ | □ | -|`lean_attestation_validation_time_seconds`| Histogram | Time taken to validate attestation | On validate attestation | | 0.005, 0.01, 0.025, 0.05, 0.1, 1 | □ | □ | ✅ | □ | ✅ | ✅ | □ | -| `lean_fork_choice_reorgs_total` | Counter | Total number of fork choice reorgs | On fork choice reorg | | | □ | □ | □ | □ | □ | □ | □ | -| `lean_fork_choice_reorg_depth` | Histogram | Depth of fork choice reorgs (in blocks) | On fork choice reorg | | 1, 2, 3, 5, 7, 10, 20, 30, 50, 100 | □ | □ | □ | □ | □ | □ | □ | -| `lean_gossip_signatures` | Gauge | Number of gossip signatures in fork-choice store | On gossip signatures update | | | □ | □ | □ | □ | □ | □ | □ | -| `lean_latest_new_aggregated_payloads` | Gauge | Number of new aggregated payload items | On `latest_new_aggregated_payloads` update | | | □ | □ | □ | □ | □ | □ | □ | -| `lean_latest_known_aggregated_payloads` | Gauge | Number of known aggregated payload items | On `latest_known_aggregated_payloads` update | | | □ | □ | □ | □ | □ | □ | □ | -| `lean_committee_signatures_aggregation_time_seconds` | Histogram | Time taken to aggregate committee signatures | On committee signatures aggregation | | 0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 0.75, 1 | □ | □ | □ | □ | □ | □ | □ | +| `lean_head_slot` | Gauge | Latest slot of the lean chain | On get fork choice head | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | +| `lean_current_slot` | Gauge | Current slot of the lean chain | On scrape | | | ✅ | □ | ✅ | □ | ✅ | □ | ✅ | +| `lean_safe_target_slot` | Gauge | Safe target slot | On safe target update | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | +|`lean_fork_choice_block_processing_time_seconds`| Histogram | Time taken to process block | On fork choice process block | | 0.005, 0.01, 0.025, 0.05, 0.1, 1, 1.25, 1.5, 2, 4 | ✅ | □ | 📝 | □ | ✅ | 📝 | 📝 | +|`lean_attestations_valid_total`| Counter | Total number of valid attestations | On validate attestation | | | ✅ | □ | ✅ | □ | ✅ | □ | 📝 | +|`lean_attestations_invalid_total`| Counter | Total number of invalid attestations | On validate attestation | | | ✅ | □ | ✅ | □ | ✅ | □ | 📝 | +|`lean_attestation_validation_time_seconds`| Histogram | Time taken to validate attestation | On validate attestation | | 0.005, 0.01, 0.025, 0.05, 0.1, 1 | ✅ | □ | ✅ | □ | ✅ | □ | ✅ | +| `lean_fork_choice_reorgs_total` | Counter | Total number of fork choice reorgs | On fork choice reorg | | | ✅ | □ | ✅ | □ | ✅ | □ | ✅ | +| `lean_fork_choice_reorg_depth` | Histogram | Depth of fork choice reorgs (in blocks) | On fork choice reorg | | 1, 2, 3, 5, 7, 10, 20, 30, 50, 100 | ✅ | □ | ✅ | □ | ✅ | □ | ✅ | +| `lean_gossip_signatures` | Gauge | Number of gossip signatures in fork-choice store | On gossip signatures update | | | ✅ | □ | 📝 | □ | ✅ | ✅ | □ | +| `lean_latest_new_aggregated_payloads` | Gauge | Number of new aggregated payload items | On `latest_new_aggregated_payloads` update | | | ✅ | □ | 📝 | □ | □ | ✅ | □ | +| `lean_latest_known_aggregated_payloads` | Gauge | Number of known aggregated payload items | On `latest_known_aggregated_payloads` update | | | ✅ | □ | 📝 | □ | □ | ✅ | □ | +| `lean_committee_signatures_aggregation_time_seconds` | Histogram | Time taken to aggregate committee signatures | On committee signatures aggregation | | 0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 0.75, 1 | ✅ | □ | ✅ | □ | ✅ | ✅ | □ | ## State Transition Metrics | Name | Type | Usage | Sample collection event | Labels | Buckets | EthLambda | Grandine | Lantern | Lighthouse | Qlean | Ream | Zeam | |--------|-------|-------|-------------------------|--------|---------|-----------|----------|----------|------------|----------|----------|----------| -| `lean_latest_justified_slot` | Gauge | Latest justified slot | On state transition | | | □ | □ | ✅ | □ | ✅ | ✅ | ✅ | -| `lean_latest_finalized_slot` | Gauge | Latest finalized slot | On state transition | | | □ | □ | ✅ | □ | ✅ | ✅ | ✅ | -| `lean_finalizations_total` | Counter | Total number of finalization attempts | On finalization attempt | result=success,error | | □ | □ | □ | □ | □ | □ | □ | -|`lean_state_transition_time_seconds`| Histogram | Time to process state transition | On state transition | | 0.25, 0.5, 0.75, 1, 1.25, 1.5, 2, 2.5, 3, 4 | □ | □ | ✅ | □ | ✅ | ✅ | ✅ | -|`lean_state_transition_slots_processed_total`| Counter | Total number of processed slots | On state transition process slots | | | □ | □ | ✅ | □ | ✅ | ✅ | ✅ | -|`lean_state_transition_slots_processing_time_seconds`| Histogram | Time taken to process slots | On state transition process slots | | 0.005, 0.01, 0.025, 0.05, 0.1, 1 | □ | □ | ✅ | □ | ✅ | ✅ | ✅ | -|`lean_state_transition_block_processing_time_seconds`| Histogram | Time taken to process block | On state transition process block | | 0.005, 0.01, 0.025, 0.05, 0.1, 1 | □ | □ | ✅ | □ | ✅ | ✅ | ✅ | -|`lean_state_transition_attestations_processed_total`| Counter | Total number of processed attestations | On state transition process attestations | | | □ | □ | ✅ | □ | ✅ | ✅ | ✅ | -|`lean_state_transition_attestations_processing_time_seconds`| Histogram | Time taken to process attestations | On state transition process attestations | | 0.005, 0.01, 0.025, 0.05, 0.1, 1 | □ | □ | ✅ | □ | ✅ | ✅ | ✅ | +| `lean_latest_justified_slot` | Gauge | Latest justified slot | On state transition | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | +| `lean_latest_finalized_slot` | Gauge | Latest finalized slot | On state transition | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | +| `lean_justified_slot` | Gauge | Current justified slot | On state transition | | | □ | □ | □ | □ | □ | ✅ | □ | +| `lean_finalized_slot` | Gauge | Current finalized slot | On state transition | | | □ | □ | □ | □ | □ | ✅ | □ | +| `lean_finalizations_total` | Counter | Total number of finalization attempts | On finalization attempt | result=success,error | | ✅ | □ | ✅ | □ | □ | ✅ | 📝 | +|`lean_state_transition_time_seconds`| Histogram | Time to process state transition | On state transition | | 0.25, 0.5, 0.75, 1, 1.25, 1.5, 2, 2.5, 3, 4 | ✅ | □ | ✅ | □ | ✅ | 📝 | ✅ | +|`lean_state_transition_slots_processed_total`| Counter | Total number of processed slots | On state transition process slots | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | +|`lean_state_transition_slots_processing_time_seconds`| Histogram | Time taken to process slots | On state transition process slots | | 0.005, 0.01, 0.025, 0.05, 0.1, 1 | ✅ | □ | ✅ | □ | ✅ | 📝 | ✅ | +|`lean_state_transition_block_processing_time_seconds`| Histogram | Time taken to process block | On state transition process block | | 0.005, 0.01, 0.025, 0.05, 0.1, 1 | ✅ | □ | ✅ | □ | ✅ | 📝 | ✅ | +|`lean_state_transition_attestations_processed_total`| Counter | Total number of processed attestations | On state transition process attestations | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | +|`lean_state_transition_attestations_processing_time_seconds`| Histogram | Time taken to process attestations | On state transition process attestations | | 0.005, 0.01, 0.025, 0.05, 0.1, 1 | ✅ | □ | ✅ | □ | ✅ | 📝 | ✅ | ## Validator Metrics | Name | Type | Usage | Sample collection event | Labels | EthLambda | Grandine | Lantern | Lighthouse | Qlean | Ream | Zeam | |--------|-------|-------|-------------------------|--------|-----------|----------|----------|------------|----------|----------|----------| -|`lean_validators_count`| Gauge | Number of validators managed by a node | On scrape | | □ | □ | ✅ | □ | ✅ | ✅ | ✅ | -|`lean_is_aggregator`| Gauge | Validator's `is_aggregator` status. True=1, False=0 | On node start | | □ | □ | □ | □ | □ | □ | □ | +|`lean_validators_count`| Gauge | Number of validators managed by a node | On scrape | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | +|`lean_is_aggregator`| Gauge | Validator's `is_aggregator` status. True=1, False=0 | On node start | | ✅ | □ | ✅ | □ | ✅ | ✅ | □ | ## Network Metrics | Name | Type | Usage | Sample collection event | Labels | EthLambda | Grandine | Lantern | Lighthouse | Qlean | Ream | Zeam | |--------|-------|-------|-------------------------|--------|-----------|----------|----------|------------|----------|----------|----------| -|`lean_connected_peers`| Gauge | Number of connected peers | On scrape | client=ethlambda,grandine,lantern,lighthouse,qlean,ream,zeam | □ | □ | □ | □ | 📝 | ✅ | □ | -|`lean_peer_connection_events_total`| Counter | Total number of peer connection events | On peer connection | direction=inbound,outbound
result=success,timeout,error | □ | □ | □ | □ | □ | 📝 | □ | -|`lean_peer_disconnection_events_total`| Counter | Total number of peer disconnection events | On peer disconnection | direction=inbound,outbound
reason=timeout,remote_close,local_close,error | □ | □ | □ | □ | □ | 📝 | □ | -|`lean_attestation_committee_subnet`| Gauge | Node's attestation committee subnet | On node start | | □ | □ | □ | □ | □ | □ | □ | -|`lean_attestation_committee_count`| Gauge |Number of attestation committees (ATTESTATION_COMMITTEE_COUNT) | On node start | | □ | □ | □ | □ | □ | □ | □ | +|`lean_connected_peers`| Gauge | Number of connected peers | On scrape | client=ethlambda,grandine,lantern,lighthouse,qlean,ream,zeam | ✅ | □ | ✅ | □ | ✅ | ✅ | 📝 | +|`lean_peer_connection_events_total`| Counter | Total number of peer connection events | On peer connection | direction=inbound,outbound
result=success,timeout,error | ✅ | □ | ✅ | □ | ✅ | 📝 | 📝 | +|`lean_peer_disconnection_events_total`| Counter | Total number of peer disconnection events | On peer disconnection | direction=inbound,outbound
reason=timeout,remote_close,local_close,error | ✅ | □ | ✅ | □ | 📝 | 📝 | ✅ | +|`lean_attestation_committee_subnet`| Gauge | Node's attestation committee subnet | On node start | | □ | □ | 📝 | □ | ✅ | □ | □ | +|`lean_attestation_committee_count`| Gauge |Number of attestation committees (ATTESTATION_COMMITTEE_COUNT) | On node start | | ✅ | □ | 📝 | □ | ✅ | ✅ | □ | From afb10bdd477085abd7c8d9af78bcdceb76c4724f Mon Sep 17 00:00:00 2001 From: Katya Ryazantseva Date: Sat, 28 Mar 2026 23:15:54 +0100 Subject: [PATCH 2/3] feat: grandine node info metrics --- metrics.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/metrics.md b/metrics.md index e3b35ad..7487352 100644 --- a/metrics.md +++ b/metrics.md @@ -12,8 +12,8 @@ | Name | Type | Usage | Sample collection event | Labels | EthLambda | Grandine | Lantern | Lighthouse | Qlean | Ream | Zeam | |--------|-------|-------|-------------------------|--------|-----------|----------|----------|------------|----------|----------|----------| -| `lean_node_info` | Gauge | Node information (always 1) | On node start | name, version | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | -| `lean_node_start_time_seconds` | Gauge | Start timestamp | On node start | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | +| `lean_node_info` | Gauge | Node information (always 1) | On node start | name, version | ✅ | ✅ | ✅ | □ | ✅ | ✅ | ✅ | +| `lean_node_start_time_seconds` | Gauge | Start timestamp | On node start | | ✅ | ✅ | ✅ | □ | ✅ | ✅ | ✅ | ## PQ Signature Metrics From 46e278955c7073020e7df044b2284dd71ce38cb5 Mon Sep 17 00:00:00 2001 From: Katya Ryazantseva Date: Tue, 14 Apr 2026 18:02:16 +0200 Subject: [PATCH 3/3] feat: add Nlean and Peam --- metrics.md | 112 ++++++++++++++++++++++++++--------------------------- 1 file changed, 56 insertions(+), 56 deletions(-) diff --git a/metrics.md b/metrics.md index 7487352..725a1a2 100644 --- a/metrics.md +++ b/metrics.md @@ -10,75 +10,75 @@ ## Node Info Metrics -| Name | Type | Usage | Sample collection event | Labels | EthLambda | Grandine | Lantern | Lighthouse | Qlean | Ream | Zeam | -|--------|-------|-------|-------------------------|--------|-----------|----------|----------|------------|----------|----------|----------| -| `lean_node_info` | Gauge | Node information (always 1) | On node start | name, version | ✅ | ✅ | ✅ | □ | ✅ | ✅ | ✅ | -| `lean_node_start_time_seconds` | Gauge | Start timestamp | On node start | | ✅ | ✅ | ✅ | □ | ✅ | ✅ | ✅ | +| Name | Type | Usage | Sample collection event | Labels | EthLambda | Grandine | Lantern | Lighthouse | Nlean | Peam | Qlean | Ream | Zeam | +|--------|-------|-------|-------------------------|--------|-----------|----------|----------|------------|-------|------|----------|----------|----------| +| `lean_node_info` | Gauge | Node information (always 1) | On node start | name, version | ✅ | ✅ | ✅ | □ | ✅ | ✅ | ✅ | ✅ | ✅ | +| `lean_node_start_time_seconds` | Gauge | Start timestamp | On node start | | ✅ | ✅ | ✅ | □ | ✅ | ✅ | ✅ | ✅ | ✅ | ## PQ Signature Metrics -| Name | Type | Usage | Sample collection event | Labels | Buckets | EthLambda | Grandine | Lantern | Lighthouse | Qlean | Ream | Zeam | -|--------|-------|-------|-------------------------|--------|---------|-----------|----------|----------|------------|----------|----------|----------| -| `lean_pq_sig_attestation_signatures_total` | Counter | Total number of individual attestation signatures | On each attestation signing | | | ✅ | □ | 📝 | □ | ✅ | □ | □ | -| `lean_pq_sig_attestation_signatures_valid_total`| Counter | Total number of valid individual attestation signatures | On each attestation signature verification | | | ✅ | □ | 📝 | □ | ✅ | ✅ | □ | -| `lean_pq_sig_attestation_signatures_invalid_total`| Counter | Total number of invalid individual attestation signatures | On each attestation signature verification | | | □ | □ | 📝 | □ | ✅ | □ | □ | -| `lean_pq_sig_attestation_signing_time_seconds` | Histogram | Time taken to sign an attestation | On each attestation signing | | 0.005, 0.01, 0.025, 0.05, 0.1, 1 | ✅ | □ | ✅ | □ | ✅ | □ | 📝 | -| `lean_pq_sig_attestation_verification_time_seconds` | Histogram | Time taken to verify an attestation signature | On each attestation signature verification | | 0.005, 0.01, 0.025, 0.05, 0.1, 1 | ✅ | □ | ✅ | □ | ✅ | □ | 📝 | -| `lean_pq_sig_aggregated_signatures_total` | Counter | Total number of aggregated signatures | On aggregated signature production | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | -| `lean_pq_sig_aggregated_signatures_valid_total`| Counter | Total number of valid aggregated signatures | On aggregated signature verification | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | -| `lean_pq_sig_aggregated_signatures_invalid_total`| Counter | Total number of invalid aggregated signatures | On aggregated signature verification | | | □ | □ | ✅ | □ | ✅ | □ | ✅ | -| `lean_pq_sig_attestations_in_aggregated_signatures_total` | Counter | Total number of attestations included into aggregated signatures | On aggregated signature production | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | -| `lean_pq_sig_aggregated_signatures_building_time_seconds` | Histogram | Time taken to build an aggregated attestation signature | On aggregated signature production | | 0.1, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 2, 4 | ✅ | □ | 📝 | □ | ✅ | ✅ | 📝 | -| `lean_pq_sig_aggregated_signatures_verification_time_seconds` | Histogram | Time taken to verify an aggregated attestation signature | On aggregated signature verification | | 0.1, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 2, 4 | ✅ | □ | 📝 | □ | ✅ | ✅ | 📝 | +| Name | Type | Usage | Sample collection event | Labels | Buckets | EthLambda | Grandine | Lantern | Lighthouse | Nlean | Peam | Qlean | Ream | Zeam | +|--------|-------|-------|-------------------------|--------|---------|-----------|----------|----------|------------|-------|------|----------|----------|----------| +| `lean_pq_sig_attestation_signatures_total` | Counter | Total number of individual attestation signatures | On each attestation signing | | | ✅ | □ | 📝 | □ | ✅ | ✅ | ✅ | □ | □ | +| `lean_pq_sig_attestation_signatures_valid_total`| Counter | Total number of valid individual attestation signatures | On each attestation signature verification | | | ✅ | □ | 📝 | □ | ✅ | ✅ | ✅ | ✅ | □ | +| `lean_pq_sig_attestation_signatures_invalid_total`| Counter | Total number of invalid individual attestation signatures | On each attestation signature verification | | | □ | □ | 📝 | □ | ✅ | ✅ | ✅ | □ | □ | +| `lean_pq_sig_attestation_signing_time_seconds` | Histogram | Time taken to sign an attestation | On each attestation signing | | 0.005, 0.01, 0.025, 0.05, 0.1, 1 | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | □ | 📝 | +| `lean_pq_sig_attestation_verification_time_seconds` | Histogram | Time taken to verify an attestation signature | On each attestation signature verification | | 0.005, 0.01, 0.025, 0.05, 0.1, 1 | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | □ | 📝 | +| `lean_pq_sig_aggregated_signatures_total` | Counter | Total number of aggregated signatures | On aggregated signature production | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | ✅ | ✅ | +| `lean_pq_sig_aggregated_signatures_valid_total`| Counter | Total number of valid aggregated signatures | On aggregated signature verification | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | ✅ | ✅ | +| `lean_pq_sig_aggregated_signatures_invalid_total`| Counter | Total number of invalid aggregated signatures | On aggregated signature verification | | | □ | □ | ✅ | □ | ✅ | ✅ | ✅ | □ | ✅ | +| `lean_pq_sig_attestations_in_aggregated_signatures_total` | Counter | Total number of attestations included into aggregated signatures | On aggregated signature production | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | ✅ | ✅ | +| `lean_pq_sig_aggregated_signatures_building_time_seconds` | Histogram | Time taken to build an aggregated attestation signature | On aggregated signature production | | 0.1, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 2, 4 | ✅ | □ | 📝 | □ | ✅ | ✅ | ✅ | ✅ | 📝 | +| `lean_pq_sig_aggregated_signatures_verification_time_seconds` | Histogram | Time taken to verify an aggregated attestation signature | On aggregated signature verification | | 0.1, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 2, 4 | ✅ | □ | 📝 | □ | ✅ | ✅ | ✅ | ✅ | 📝 | ## Fork-Choice Metrics -| Name | Type | Usage | Sample collection event | Labels | Buckets | EthLambda | Grandine | Lantern | Lighthouse | Qlean | Ream | Zeam | -|--------|-------|-------|-------------------------|--------|---------|-----------|----------|----------|------------|----------|----------|----------| -| `lean_head_slot` | Gauge | Latest slot of the lean chain | On get fork choice head | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | -| `lean_current_slot` | Gauge | Current slot of the lean chain | On scrape | | | ✅ | □ | ✅ | □ | ✅ | □ | ✅ | -| `lean_safe_target_slot` | Gauge | Safe target slot | On safe target update | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | -|`lean_fork_choice_block_processing_time_seconds`| Histogram | Time taken to process block | On fork choice process block | | 0.005, 0.01, 0.025, 0.05, 0.1, 1, 1.25, 1.5, 2, 4 | ✅ | □ | 📝 | □ | ✅ | 📝 | 📝 | -|`lean_attestations_valid_total`| Counter | Total number of valid attestations | On validate attestation | | | ✅ | □ | ✅ | □ | ✅ | □ | 📝 | -|`lean_attestations_invalid_total`| Counter | Total number of invalid attestations | On validate attestation | | | ✅ | □ | ✅ | □ | ✅ | □ | 📝 | -|`lean_attestation_validation_time_seconds`| Histogram | Time taken to validate attestation | On validate attestation | | 0.005, 0.01, 0.025, 0.05, 0.1, 1 | ✅ | □ | ✅ | □ | ✅ | □ | ✅ | -| `lean_fork_choice_reorgs_total` | Counter | Total number of fork choice reorgs | On fork choice reorg | | | ✅ | □ | ✅ | □ | ✅ | □ | ✅ | -| `lean_fork_choice_reorg_depth` | Histogram | Depth of fork choice reorgs (in blocks) | On fork choice reorg | | 1, 2, 3, 5, 7, 10, 20, 30, 50, 100 | ✅ | □ | ✅ | □ | ✅ | □ | ✅ | -| `lean_gossip_signatures` | Gauge | Number of gossip signatures in fork-choice store | On gossip signatures update | | | ✅ | □ | 📝 | □ | ✅ | ✅ | □ | -| `lean_latest_new_aggregated_payloads` | Gauge | Number of new aggregated payload items | On `latest_new_aggregated_payloads` update | | | ✅ | □ | 📝 | □ | □ | ✅ | □ | -| `lean_latest_known_aggregated_payloads` | Gauge | Number of known aggregated payload items | On `latest_known_aggregated_payloads` update | | | ✅ | □ | 📝 | □ | □ | ✅ | □ | -| `lean_committee_signatures_aggregation_time_seconds` | Histogram | Time taken to aggregate committee signatures | On committee signatures aggregation | | 0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 0.75, 1 | ✅ | □ | ✅ | □ | ✅ | ✅ | □ | +| Name | Type | Usage | Sample collection event | Labels | Buckets | EthLambda | Grandine | Lantern | Lighthouse | Nlean | Peam | Qlean | Ream | Zeam | +|--------|-------|-------|-------------------------|--------|---------|-----------|----------|----------|------------|-------|------|----------|----------|----------| +| `lean_head_slot` | Gauge | Latest slot of the lean chain | On get fork choice head | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | ✅ | ✅ | +| `lean_current_slot` | Gauge | Current slot of the lean chain | On scrape | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | □ | ✅ | +| `lean_safe_target_slot` | Gauge | Safe target slot | On safe target update | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | ✅ | ✅ | +| `lean_fork_choice_block_processing_time_seconds` | Histogram | Time taken to process block | On fork choice process block | | 0.005, 0.01, 0.025, 0.05, 0.1, 1, 1.25, 1.5, 2, 4 | ✅ | □ | 📝 | □ | ✅ | ✅ | ✅ | 📝 | 📝 | +| `lean_attestations_valid_total` | Counter | Total number of valid attestations | On validate attestation | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | □ | 📝 | +| `lean_attestations_invalid_total` | Counter | Total number of invalid attestations | On validate attestation | | | ✅ | □ | ✅ | □ | □ | ✅ | ✅ | □ | 📝 | +| `lean_attestation_validation_time_seconds` | Histogram | Time taken to validate attestation | On validate attestation | | 0.005, 0.01, 0.025, 0.05, 0.1, 1 | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | □ | ✅ | +| `lean_fork_choice_reorgs_total` | Counter | Total number of fork choice reorgs | On fork choice reorg | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | □ | ✅ | +| `lean_fork_choice_reorg_depth` | Histogram | Depth of fork choice reorgs (in blocks) | On fork choice reorg | | 1, 2, 3, 5, 7, 10, 20, 30, 50, 100 | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | □ | ✅ | +| `lean_gossip_signatures` | Gauge | Number of gossip signatures in fork-choice store | On gossip signatures update | | | ✅ | □ | 📝 | □ | ✅ | ✅ | ✅ | ✅ | □ | +| `lean_latest_new_aggregated_payloads` | Gauge | Number of new aggregated payload items | On `latest_new_aggregated_payloads` update | | | ✅ | □ | 📝 | □ | ✅ | ✅ | □ | ✅ | □ | +| `lean_latest_known_aggregated_payloads` | Gauge | Number of known aggregated payload items | On `latest_known_aggregated_payloads` update | | | ✅ | □ | 📝 | □ | ✅ | ✅ | □ | ✅ | □ | +| `lean_committee_signatures_aggregation_time_seconds` | Histogram | Time taken to aggregate committee signatures | On committee signatures aggregation | | 0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 0.75, 1 | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | ✅ | □ | ## State Transition Metrics -| Name | Type | Usage | Sample collection event | Labels | Buckets | EthLambda | Grandine | Lantern | Lighthouse | Qlean | Ream | Zeam | -|--------|-------|-------|-------------------------|--------|---------|-----------|----------|----------|------------|----------|----------|----------| -| `lean_latest_justified_slot` | Gauge | Latest justified slot | On state transition | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | -| `lean_latest_finalized_slot` | Gauge | Latest finalized slot | On state transition | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | -| `lean_justified_slot` | Gauge | Current justified slot | On state transition | | | □ | □ | □ | □ | □ | ✅ | □ | -| `lean_finalized_slot` | Gauge | Current finalized slot | On state transition | | | □ | □ | □ | □ | □ | ✅ | □ | -| `lean_finalizations_total` | Counter | Total number of finalization attempts | On finalization attempt | result=success,error | | ✅ | □ | ✅ | □ | □ | ✅ | 📝 | -|`lean_state_transition_time_seconds`| Histogram | Time to process state transition | On state transition | | 0.25, 0.5, 0.75, 1, 1.25, 1.5, 2, 2.5, 3, 4 | ✅ | □ | ✅ | □ | ✅ | 📝 | ✅ | -|`lean_state_transition_slots_processed_total`| Counter | Total number of processed slots | On state transition process slots | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | -|`lean_state_transition_slots_processing_time_seconds`| Histogram | Time taken to process slots | On state transition process slots | | 0.005, 0.01, 0.025, 0.05, 0.1, 1 | ✅ | □ | ✅ | □ | ✅ | 📝 | ✅ | -|`lean_state_transition_block_processing_time_seconds`| Histogram | Time taken to process block | On state transition process block | | 0.005, 0.01, 0.025, 0.05, 0.1, 1 | ✅ | □ | ✅ | □ | ✅ | 📝 | ✅ | -|`lean_state_transition_attestations_processed_total`| Counter | Total number of processed attestations | On state transition process attestations | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | -|`lean_state_transition_attestations_processing_time_seconds`| Histogram | Time taken to process attestations | On state transition process attestations | | 0.005, 0.01, 0.025, 0.05, 0.1, 1 | ✅ | □ | ✅ | □ | ✅ | 📝 | ✅ | +| Name | Type | Usage | Sample collection event | Labels | Buckets | EthLambda | Grandine | Lantern | Lighthouse | Nlean | Peam | Qlean | Ream | Zeam | +|--------|-------|-------|-------------------------|--------|---------|-----------|----------|----------|------------|-------|------|----------|----------|----------| +| `lean_latest_justified_slot` | Gauge | Latest justified slot | On state transition | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | ✅ | ✅ | +| `lean_latest_finalized_slot` | Gauge | Latest finalized slot | On state transition | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | ✅ | ✅ | +| `lean_justified_slot` | Gauge | Current justified slot | On state transition | | | □ | □ | □ | □ | □ | ✅ | □ | ✅ | □ | +| `lean_finalized_slot` | Gauge | Current finalized slot | On state transition | | | □ | □ | □ | □ | □ | ✅ | □ | ✅ | □ | +| `lean_finalizations_total` | Counter | Total number of finalization attempts | On finalization attempt | result=success,error | | ✅ | □ | ✅ | □ | ✅ | ✅ | □ | ✅ | 📝 | +| `lean_state_transition_time_seconds` | Histogram | Time to process state transition | On state transition | | 0.25, 0.5, 0.75, 1, 1.25, 1.5, 2, 2.5, 3, 4 | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | 📝 | ✅ | +| `lean_state_transition_slots_processed_total` | Counter | Total number of processed slots | On state transition process slots | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | ✅ | ✅ | +| `lean_state_transition_slots_processing_time_seconds` | Histogram | Time taken to process slots | On state transition process slots | | 0.005, 0.01, 0.025, 0.05, 0.1, 1 | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | 📝 | ✅ | +| `lean_state_transition_block_processing_time_seconds` | Histogram | Time taken to process block | On state transition process block | | 0.005, 0.01, 0.025, 0.05, 0.1, 1 | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | 📝 | ✅ | +| `lean_state_transition_attestations_processed_total` | Counter | Total number of processed attestations | On state transition process attestations | | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | ✅ | ✅ | +| `lean_state_transition_attestations_processing_time_seconds` | Histogram | Time taken to process attestations | On state transition process attestations | | 0.005, 0.01, 0.025, 0.05, 0.1, 1 | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | 📝 | ✅ | ## Validator Metrics -| Name | Type | Usage | Sample collection event | Labels | EthLambda | Grandine | Lantern | Lighthouse | Qlean | Ream | Zeam | -|--------|-------|-------|-------------------------|--------|-----------|----------|----------|------------|----------|----------|----------| -|`lean_validators_count`| Gauge | Number of validators managed by a node | On scrape | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | -|`lean_is_aggregator`| Gauge | Validator's `is_aggregator` status. True=1, False=0 | On node start | | ✅ | □ | ✅ | □ | ✅ | ✅ | □ | +| Name | Type | Usage | Sample collection event | Labels | EthLambda | Grandine | Lantern | Lighthouse | Nlean | Peam | Qlean | Ream | Zeam | +|--------|-------|-------|-------------------------|--------|-----------|----------|----------|------------|-------|------|----------|----------|----------| +| `lean_validators_count` | Gauge | Number of validators managed by a node | On scrape | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | ✅ | ✅ | +| `lean_is_aggregator` | Gauge | Validator's `is_aggregator` status. True=1, False=0 | On node start | | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | ✅ | □ | ## Network Metrics -| Name | Type | Usage | Sample collection event | Labels | EthLambda | Grandine | Lantern | Lighthouse | Qlean | Ream | Zeam | -|--------|-------|-------|-------------------------|--------|-----------|----------|----------|------------|----------|----------|----------| -|`lean_connected_peers`| Gauge | Number of connected peers | On scrape | client=ethlambda,grandine,lantern,lighthouse,qlean,ream,zeam | ✅ | □ | ✅ | □ | ✅ | ✅ | 📝 | -|`lean_peer_connection_events_total`| Counter | Total number of peer connection events | On peer connection | direction=inbound,outbound
result=success,timeout,error | ✅ | □ | ✅ | □ | ✅ | 📝 | 📝 | -|`lean_peer_disconnection_events_total`| Counter | Total number of peer disconnection events | On peer disconnection | direction=inbound,outbound
reason=timeout,remote_close,local_close,error | ✅ | □ | ✅ | □ | 📝 | 📝 | ✅ | -|`lean_attestation_committee_subnet`| Gauge | Node's attestation committee subnet | On node start | | □ | □ | 📝 | □ | ✅ | □ | □ | -|`lean_attestation_committee_count`| Gauge |Number of attestation committees (ATTESTATION_COMMITTEE_COUNT) | On node start | | ✅ | □ | 📝 | □ | ✅ | ✅ | □ | +| Name | Type | Usage | Sample collection event | Labels | EthLambda | Grandine | Lantern | Lighthouse | Nlean | Peam | Qlean | Ream | Zeam | +|--------|-------|-------|-------------------------|--------|-----------|----------|----------|------------|-------|------|----------|----------|----------| +| `lean_connected_peers` | Gauge | Number of connected peers | On scrape | client=ethlambda,grandine,lantern,lighthouse,qlean,ream,zeam | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | ✅ | 📝 | +| `lean_peer_connection_events_total` | Counter | Total number of peer connection events | On peer connection | direction=inbound,outbound
result=success,timeout,error | ✅ | □ | ✅ | □ | ✅ | ✅ | ✅ | 📝 | 📝 | +| `lean_peer_disconnection_events_total` | Counter | Total number of peer disconnection events | On peer disconnection | direction=inbound,outbound
reason=timeout,remote_close,local_close,error | ✅ | □ | ✅ | □ | ✅ | ✅ | 📝 | 📝 | ✅ | +| `lean_attestation_committee_subnet` | Gauge | Node's attestation committee subnet | On node start | | □ | □ | 📝 | □ | ✅ | ✅ | ✅ | □ | □ | +| `lean_attestation_committee_count` | Gauge | Number of attestation committees (ATTESTATION_COMMITTEE_COUNT) | On node start | | ✅ | □ | 📝 | □ | ✅ | ✅ | ✅ | ✅ | □ |