Expose metrics of on-demand relay chain headers sync from with-parachain complex relays (#1737)

* expose metrics of on-demand relay chain headers sync from with-parachain complex relays

* spelling

* remove renundant arg
This commit is contained in:
Svyatoslav Nikolsky
2022-12-29 11:51:27 +03:00
committed by Bastian Köcher
parent 9495e1cfcb
commit 15e7d828ea
4 changed files with 13 additions and 1 deletions
@@ -245,6 +245,7 @@ where
self.common.right.client.clone(), self.common.right.client.clone(),
self.left_headers_to_right_transaction_params.clone(), self.left_headers_to_right_transaction_params.clone(),
self.common.shared.only_mandatory_headers, self.common.shared.only_mandatory_headers,
Some(self.common.metrics_params.clone()),
); );
let right_relay_to_left_on_demand_headers = let right_relay_to_left_on_demand_headers =
OnDemandHeadersRelay::<<R2L as ParachainToRelayHeadersCliBridge>::RelayFinality>::new( OnDemandHeadersRelay::<<R2L as ParachainToRelayHeadersCliBridge>::RelayFinality>::new(
@@ -252,6 +253,7 @@ where
self.common.left.client.clone(), self.common.left.client.clone(),
self.right_headers_to_left_transaction_params.clone(), self.right_headers_to_left_transaction_params.clone(),
self.common.shared.only_mandatory_headers, self.common.shared.only_mandatory_headers,
Some(self.common.metrics_params.clone()),
); );
let left_to_right_on_demand_parachains = OnDemandParachainsRelay::< let left_to_right_on_demand_parachains = OnDemandParachainsRelay::<
@@ -224,6 +224,7 @@ where
self.common.right.client.clone(), self.common.right.client.clone(),
self.left_headers_to_right_transaction_params.clone(), self.left_headers_to_right_transaction_params.clone(),
self.common.shared.only_mandatory_headers, self.common.shared.only_mandatory_headers,
None,
); );
let right_relay_to_left_on_demand_headers = let right_relay_to_left_on_demand_headers =
OnDemandHeadersRelay::<<R2L as ParachainToRelayHeadersCliBridge>::RelayFinality>::new( OnDemandHeadersRelay::<<R2L as ParachainToRelayHeadersCliBridge>::RelayFinality>::new(
@@ -231,6 +232,7 @@ where
self.common.left.client.clone(), self.common.left.client.clone(),
self.right_headers_to_left_transaction_params.clone(), self.right_headers_to_left_transaction_params.clone(),
self.common.shared.only_mandatory_headers, self.common.shared.only_mandatory_headers,
Some(self.common.metrics_params.clone()),
); );
let right_to_left_on_demand_parachains = OnDemandParachainsRelay::< let right_to_left_on_demand_parachains = OnDemandParachainsRelay::<
<R2L as ParachainToRelayHeadersCliBridge>::ParachainFinality, <R2L as ParachainToRelayHeadersCliBridge>::ParachainFinality,
@@ -173,6 +173,7 @@ where
self.common.right.client.clone(), self.common.right.client.clone(),
self.left_to_right_transaction_params.clone(), self.left_to_right_transaction_params.clone(),
self.common.shared.only_mandatory_headers, self.common.shared.only_mandatory_headers,
None,
); );
let right_to_left_on_demand_headers = let right_to_left_on_demand_headers =
OnDemandHeadersRelay::<<R2L as RelayToRelayHeadersCliBridge>::Finality>::new( OnDemandHeadersRelay::<<R2L as RelayToRelayHeadersCliBridge>::Finality>::new(
@@ -180,6 +181,7 @@ where
self.common.left.client.clone(), self.common.left.client.clone(),
self.right_to_left_transaction_params.clone(), self.right_to_left_transaction_params.clone(),
self.common.shared.only_mandatory_headers, self.common.shared.only_mandatory_headers,
None,
); );
Ok((Arc::new(left_to_right_on_demand_headers), Arc::new(right_to_left_on_demand_headers))) Ok((Arc::new(left_to_right_on_demand_headers), Arc::new(right_to_left_on_demand_headers)))
@@ -64,11 +64,15 @@ pub struct OnDemandHeadersRelay<P: SubstrateFinalitySyncPipeline> {
impl<P: SubstrateFinalitySyncPipeline> OnDemandHeadersRelay<P> { impl<P: SubstrateFinalitySyncPipeline> OnDemandHeadersRelay<P> {
/// Create new on-demand headers relay. /// Create new on-demand headers relay.
///
/// If `metrics_params` is `Some(_)`, the metrics of the finality relay are registered.
/// Otherwise, all required metrics must be exposed outside of this method.
pub fn new( pub fn new(
source_client: Client<P::SourceChain>, source_client: Client<P::SourceChain>,
target_client: Client<P::TargetChain>, target_client: Client<P::TargetChain>,
target_transaction_params: TransactionParams<AccountKeyPairOf<P::TargetChain>>, target_transaction_params: TransactionParams<AccountKeyPairOf<P::TargetChain>>,
only_mandatory_headers: bool, only_mandatory_headers: bool,
metrics_params: Option<MetricsParams>,
) -> Self ) -> Self
where where
AccountIdOf<P::TargetChain>: AccountIdOf<P::TargetChain>:
@@ -87,6 +91,7 @@ impl<P: SubstrateFinalitySyncPipeline> OnDemandHeadersRelay<P> {
target_transaction_params, target_transaction_params,
only_mandatory_headers, only_mandatory_headers,
required_header_number, required_header_number,
metrics_params,
) )
.await; .await;
}); });
@@ -148,6 +153,7 @@ async fn background_task<P: SubstrateFinalitySyncPipeline>(
target_transaction_params: TransactionParams<AccountKeyPairOf<P::TargetChain>>, target_transaction_params: TransactionParams<AccountKeyPairOf<P::TargetChain>>,
only_mandatory_headers: bool, only_mandatory_headers: bool,
required_header_number: RequiredHeaderNumberRef<P::SourceChain>, required_header_number: RequiredHeaderNumberRef<P::SourceChain>,
metrics_params: Option<MetricsParams>,
) where ) where
AccountIdOf<P::TargetChain>: From<<AccountKeyPairOf<P::TargetChain> as sp_core::Pair>::Public>, AccountIdOf<P::TargetChain>: From<<AccountKeyPairOf<P::TargetChain> as sp_core::Pair>::Public>,
{ {
@@ -310,7 +316,7 @@ async fn background_task<P: SubstrateFinalitySyncPipeline>(
stall_timeout, stall_timeout,
only_mandatory_headers, only_mandatory_headers,
}, },
MetricsParams::disabled(), metrics_params.clone().unwrap_or_else(|| MetricsParams::disabled()),
futures::future::pending(), futures::future::pending(),
) )
.fuse(), .fuse(),