mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-02 16:21:42 +00:00
Split the VC into crates making it more modular (#6453)
* Starting to modularize the VC * Revert changes to eth2 * More progress * More progress * Compiles * Merge latest unstable and make it compile * Fix some lints * Tests compile * Merge latest unstable * Remove unnecessary deps * Merge latest unstable * Correct release tests * Merge latest unstable * Merge remote-tracking branch 'origin/unstable' into modularize-vc * Merge branch 'unstable' into modularize-vc * Revert unnecessary cargo lock changes * Update validator_client/beacon_node_fallback/Cargo.toml * Update validator_client/http_metrics/Cargo.toml * Update validator_client/http_metrics/src/lib.rs * Update validator_client/initialized_validators/Cargo.toml * Update validator_client/signing_method/Cargo.toml * Update validator_client/validator_metrics/Cargo.toml * Update validator_client/validator_services/Cargo.toml * Update validator_client/validator_store/Cargo.toml * Update validator_client/validator_store/src/lib.rs * Merge remote-tracking branch 'origin/unstable' into modularize-vc * Fix format string * Rename doppelganger trait * Don't drop the tempdir * Cargo fmt
This commit is contained in:
12
validator_client/validator_metrics/Cargo.toml
Normal file
12
validator_client/validator_metrics/Cargo.toml
Normal file
@@ -0,0 +1,12 @@
|
||||
[package]
|
||||
name = "validator_metrics"
|
||||
version = "0.1.0"
|
||||
edition = { workspace = true }
|
||||
authors = ["Sigma Prime <contact@sigmaprime.io>"]
|
||||
|
||||
[lib]
|
||||
name = "validator_metrics"
|
||||
path = "src/lib.rs"
|
||||
|
||||
[dependencies]
|
||||
metrics = { workspace = true }
|
||||
264
validator_client/validator_metrics/src/lib.rs
Normal file
264
validator_client/validator_metrics/src/lib.rs
Normal file
@@ -0,0 +1,264 @@
|
||||
use std::sync::LazyLock;
|
||||
|
||||
pub const SUCCESS: &str = "success";
|
||||
pub const SLASHABLE: &str = "slashable";
|
||||
pub const SAME_DATA: &str = "same_data";
|
||||
pub const UNREGISTERED: &str = "unregistered";
|
||||
pub const FULL_UPDATE: &str = "full_update";
|
||||
pub const BEACON_BLOCK: &str = "beacon_block";
|
||||
pub const BEACON_BLOCK_HTTP_GET: &str = "beacon_block_http_get";
|
||||
pub const BEACON_BLOCK_HTTP_POST: &str = "beacon_block_http_post";
|
||||
pub const BLINDED_BEACON_BLOCK_HTTP_POST: &str = "blinded_beacon_block_http_post";
|
||||
pub const ATTESTATIONS: &str = "attestations";
|
||||
pub const ATTESTATIONS_HTTP_GET: &str = "attestations_http_get";
|
||||
pub const ATTESTATIONS_HTTP_POST: &str = "attestations_http_post";
|
||||
pub const AGGREGATES: &str = "aggregates";
|
||||
pub const AGGREGATES_HTTP_GET: &str = "aggregates_http_get";
|
||||
pub const AGGREGATES_HTTP_POST: &str = "aggregates_http_post";
|
||||
pub const CURRENT_EPOCH: &str = "current_epoch";
|
||||
pub const NEXT_EPOCH: &str = "next_epoch";
|
||||
pub const UPDATE_INDICES: &str = "update_indices";
|
||||
pub const UPDATE_ATTESTERS_CURRENT_EPOCH: &str = "update_attesters_current_epoch";
|
||||
pub const UPDATE_ATTESTERS_NEXT_EPOCH: &str = "update_attesters_next_epoch";
|
||||
pub const UPDATE_ATTESTERS_FETCH: &str = "update_attesters_fetch";
|
||||
pub const UPDATE_ATTESTERS_STORE: &str = "update_attesters_store";
|
||||
pub const ATTESTER_DUTIES_HTTP_POST: &str = "attester_duties_http_post";
|
||||
pub const PROPOSER_DUTIES_HTTP_GET: &str = "proposer_duties_http_get";
|
||||
pub const VALIDATOR_DUTIES_SYNC_HTTP_POST: &str = "validator_duties_sync_http_post";
|
||||
pub const VALIDATOR_ID_HTTP_GET: &str = "validator_id_http_get";
|
||||
pub const SUBSCRIPTIONS_HTTP_POST: &str = "subscriptions_http_post";
|
||||
pub const UPDATE_PROPOSERS: &str = "update_proposers";
|
||||
pub const ATTESTATION_SELECTION_PROOFS: &str = "attestation_selection_proofs";
|
||||
pub const SUBSCRIPTIONS: &str = "subscriptions";
|
||||
pub const LOCAL_KEYSTORE: &str = "local_keystore";
|
||||
pub const WEB3SIGNER: &str = "web3signer";
|
||||
|
||||
pub use metrics::*;
|
||||
|
||||
pub static GENESIS_DISTANCE: LazyLock<Result<IntGauge>> = LazyLock::new(|| {
|
||||
try_create_int_gauge(
|
||||
"vc_genesis_distance_seconds",
|
||||
"Distance between now and genesis time",
|
||||
)
|
||||
});
|
||||
pub static ENABLED_VALIDATORS_COUNT: LazyLock<Result<IntGauge>> = LazyLock::new(|| {
|
||||
try_create_int_gauge(
|
||||
"vc_validators_enabled_count",
|
||||
"Number of enabled validators",
|
||||
)
|
||||
});
|
||||
pub static TOTAL_VALIDATORS_COUNT: LazyLock<Result<IntGauge>> = LazyLock::new(|| {
|
||||
try_create_int_gauge(
|
||||
"vc_validators_total_count",
|
||||
"Number of total validators (enabled and disabled)",
|
||||
)
|
||||
});
|
||||
|
||||
pub static SIGNED_BLOCKS_TOTAL: LazyLock<Result<IntCounterVec>> = LazyLock::new(|| {
|
||||
try_create_int_counter_vec(
|
||||
"vc_signed_beacon_blocks_total",
|
||||
"Total count of attempted block signings",
|
||||
&["status"],
|
||||
)
|
||||
});
|
||||
pub static SIGNED_ATTESTATIONS_TOTAL: LazyLock<Result<IntCounterVec>> = LazyLock::new(|| {
|
||||
try_create_int_counter_vec(
|
||||
"vc_signed_attestations_total",
|
||||
"Total count of attempted Attestation signings",
|
||||
&["status"],
|
||||
)
|
||||
});
|
||||
pub static SIGNED_AGGREGATES_TOTAL: LazyLock<Result<IntCounterVec>> = LazyLock::new(|| {
|
||||
try_create_int_counter_vec(
|
||||
"vc_signed_aggregates_total",
|
||||
"Total count of attempted SignedAggregateAndProof signings",
|
||||
&["status"],
|
||||
)
|
||||
});
|
||||
pub static SIGNED_SELECTION_PROOFS_TOTAL: LazyLock<Result<IntCounterVec>> = LazyLock::new(|| {
|
||||
try_create_int_counter_vec(
|
||||
"vc_signed_selection_proofs_total",
|
||||
"Total count of attempted SelectionProof signings",
|
||||
&["status"],
|
||||
)
|
||||
});
|
||||
pub static SIGNED_SYNC_COMMITTEE_MESSAGES_TOTAL: LazyLock<Result<IntCounterVec>> =
|
||||
LazyLock::new(|| {
|
||||
try_create_int_counter_vec(
|
||||
"vc_signed_sync_committee_messages_total",
|
||||
"Total count of attempted SyncCommitteeMessage signings",
|
||||
&["status"],
|
||||
)
|
||||
});
|
||||
pub static SIGNED_SYNC_COMMITTEE_CONTRIBUTIONS_TOTAL: LazyLock<Result<IntCounterVec>> =
|
||||
LazyLock::new(|| {
|
||||
try_create_int_counter_vec(
|
||||
"vc_signed_sync_committee_contributions_total",
|
||||
"Total count of attempted ContributionAndProof signings",
|
||||
&["status"],
|
||||
)
|
||||
});
|
||||
pub static SIGNED_SYNC_SELECTION_PROOFS_TOTAL: LazyLock<Result<IntCounterVec>> =
|
||||
LazyLock::new(|| {
|
||||
try_create_int_counter_vec(
|
||||
"vc_signed_sync_selection_proofs_total",
|
||||
"Total count of attempted SyncSelectionProof signings",
|
||||
&["status"],
|
||||
)
|
||||
});
|
||||
pub static SIGNED_VOLUNTARY_EXITS_TOTAL: LazyLock<Result<IntCounterVec>> = LazyLock::new(|| {
|
||||
try_create_int_counter_vec(
|
||||
"vc_signed_voluntary_exits_total",
|
||||
"Total count of VoluntaryExit signings",
|
||||
&["status"],
|
||||
)
|
||||
});
|
||||
pub static SIGNED_VALIDATOR_REGISTRATIONS_TOTAL: LazyLock<Result<IntCounterVec>> =
|
||||
LazyLock::new(|| {
|
||||
try_create_int_counter_vec(
|
||||
"builder_validator_registrations_total",
|
||||
"Total count of ValidatorRegistrationData signings",
|
||||
&["status"],
|
||||
)
|
||||
});
|
||||
pub static DUTIES_SERVICE_TIMES: LazyLock<Result<HistogramVec>> = LazyLock::new(|| {
|
||||
try_create_histogram_vec(
|
||||
"vc_duties_service_task_times_seconds",
|
||||
"Duration to perform duties service tasks",
|
||||
&["task"],
|
||||
)
|
||||
});
|
||||
pub static ATTESTATION_SERVICE_TIMES: LazyLock<Result<HistogramVec>> = LazyLock::new(|| {
|
||||
try_create_histogram_vec(
|
||||
"vc_attestation_service_task_times_seconds",
|
||||
"Duration to perform attestation service tasks",
|
||||
&["task"],
|
||||
)
|
||||
});
|
||||
pub static SLASHING_PROTECTION_PRUNE_TIMES: LazyLock<Result<Histogram>> = LazyLock::new(|| {
|
||||
try_create_histogram(
|
||||
"vc_slashing_protection_prune_times_seconds",
|
||||
"Time required to prune the slashing protection DB",
|
||||
)
|
||||
});
|
||||
pub static BLOCK_SERVICE_TIMES: LazyLock<Result<HistogramVec>> = LazyLock::new(|| {
|
||||
try_create_histogram_vec(
|
||||
"vc_beacon_block_service_task_times_seconds",
|
||||
"Duration to perform beacon block service tasks",
|
||||
&["task"],
|
||||
)
|
||||
});
|
||||
pub static PROPOSER_COUNT: LazyLock<Result<IntGaugeVec>> = LazyLock::new(|| {
|
||||
try_create_int_gauge_vec(
|
||||
"vc_beacon_block_proposer_count",
|
||||
"Number of beacon block proposers on this host",
|
||||
&["task"],
|
||||
)
|
||||
});
|
||||
pub static ATTESTER_COUNT: LazyLock<Result<IntGaugeVec>> = LazyLock::new(|| {
|
||||
try_create_int_gauge_vec(
|
||||
"vc_beacon_attester_count",
|
||||
"Number of attesters on this host",
|
||||
&["task"],
|
||||
)
|
||||
});
|
||||
pub static PROPOSAL_CHANGED: LazyLock<Result<IntCounter>> = LazyLock::new(|| {
|
||||
try_create_int_counter(
|
||||
"vc_beacon_block_proposal_changed",
|
||||
"A duties update discovered a new block proposer for the current slot",
|
||||
)
|
||||
});
|
||||
/*
|
||||
* Endpoint metrics
|
||||
*/
|
||||
pub static ENDPOINT_ERRORS: LazyLock<Result<IntCounterVec>> = LazyLock::new(|| {
|
||||
try_create_int_counter_vec(
|
||||
"bn_endpoint_errors",
|
||||
"The number of beacon node request errors for each endpoint",
|
||||
&["endpoint"],
|
||||
)
|
||||
});
|
||||
pub static ENDPOINT_REQUESTS: LazyLock<Result<IntCounterVec>> = LazyLock::new(|| {
|
||||
try_create_int_counter_vec(
|
||||
"bn_endpoint_requests",
|
||||
"The number of beacon node requests for each endpoint",
|
||||
&["endpoint"],
|
||||
)
|
||||
});
|
||||
|
||||
/*
|
||||
* Beacon node availability metrics
|
||||
*/
|
||||
pub static AVAILABLE_BEACON_NODES_COUNT: LazyLock<Result<IntGauge>> = LazyLock::new(|| {
|
||||
try_create_int_gauge(
|
||||
"vc_beacon_nodes_available_count",
|
||||
"Number of available beacon nodes",
|
||||
)
|
||||
});
|
||||
pub static SYNCED_BEACON_NODES_COUNT: LazyLock<Result<IntGauge>> = LazyLock::new(|| {
|
||||
try_create_int_gauge(
|
||||
"vc_beacon_nodes_synced_count",
|
||||
"Number of synced beacon nodes",
|
||||
)
|
||||
});
|
||||
pub static TOTAL_BEACON_NODES_COUNT: LazyLock<Result<IntGauge>> = LazyLock::new(|| {
|
||||
try_create_int_gauge(
|
||||
"vc_beacon_nodes_total_count",
|
||||
"Total number of beacon nodes",
|
||||
)
|
||||
});
|
||||
|
||||
pub static ETH2_FALLBACK_CONFIGURED: LazyLock<Result<IntGauge>> = LazyLock::new(|| {
|
||||
try_create_int_gauge(
|
||||
"sync_eth2_fallback_configured",
|
||||
"The number of configured eth2 fallbacks",
|
||||
)
|
||||
});
|
||||
|
||||
pub static ETH2_FALLBACK_CONNECTED: LazyLock<Result<IntGauge>> = LazyLock::new(|| {
|
||||
try_create_int_gauge(
|
||||
"sync_eth2_fallback_connected",
|
||||
"Set to 1 if connected to atleast one synced eth2 fallback node, otherwise set to 0",
|
||||
)
|
||||
});
|
||||
/*
|
||||
* Signing Metrics
|
||||
*/
|
||||
pub static SIGNING_TIMES: LazyLock<Result<HistogramVec>> = LazyLock::new(|| {
|
||||
try_create_histogram_vec(
|
||||
"vc_signing_times_seconds",
|
||||
"Duration to obtain a signature",
|
||||
&["type"],
|
||||
)
|
||||
});
|
||||
pub static BLOCK_SIGNING_TIMES: LazyLock<Result<Histogram>> = LazyLock::new(|| {
|
||||
try_create_histogram(
|
||||
"vc_block_signing_times_seconds",
|
||||
"Duration to obtain a signature for a block",
|
||||
)
|
||||
});
|
||||
|
||||
pub static ATTESTATION_DUTY: LazyLock<Result<IntGaugeVec>> = LazyLock::new(|| {
|
||||
try_create_int_gauge_vec(
|
||||
"vc_attestation_duty_slot",
|
||||
"Attestation duty slot for all managed validators",
|
||||
&["validator"],
|
||||
)
|
||||
});
|
||||
/*
|
||||
* BN latency
|
||||
*/
|
||||
pub static VC_BEACON_NODE_LATENCY: LazyLock<Result<HistogramVec>> = LazyLock::new(|| {
|
||||
try_create_histogram_vec(
|
||||
"vc_beacon_node_latency",
|
||||
"Round-trip latency for a simple API endpoint on each BN",
|
||||
&["endpoint"],
|
||||
)
|
||||
});
|
||||
pub static VC_BEACON_NODE_LATENCY_PRIMARY_ENDPOINT: LazyLock<Result<Histogram>> =
|
||||
LazyLock::new(|| {
|
||||
try_create_histogram(
|
||||
"vc_beacon_node_latency_primary_endpoint",
|
||||
"Round-trip latency for the primary BN endpoint",
|
||||
)
|
||||
});
|
||||
Reference in New Issue
Block a user