Add basic metrics to the syncer.
This commit is contained in:
parent
c2c2a28e8b
commit
4a98b8fa0d
|
@ -2592,6 +2592,7 @@ dependencies = [
|
|||
"color-eyre",
|
||||
"futures",
|
||||
"futures-util",
|
||||
"metrics",
|
||||
"rand 0.7.3",
|
||||
"redjubjub",
|
||||
"spandoc",
|
||||
|
|
|
@ -15,6 +15,7 @@ tokio = { version = "0.2.22", features = ["time", "sync", "stream", "tracing"] }
|
|||
tower = "0.3"
|
||||
tracing = "0.1.16"
|
||||
tracing-futures = "0.2.4"
|
||||
metrics = "0.12"
|
||||
|
||||
tower-batch = { path = "../tower-batch/" }
|
||||
zebra-chain = { path = "../zebra-chain" }
|
||||
|
|
|
@ -651,6 +651,8 @@ impl Service<Arc<Block>> for CheckpointVerifier {
|
|||
// TODO(teor): retry on failure (low priority, failures should be rare)
|
||||
self.process_checkpoint_range();
|
||||
|
||||
metrics::gauge!("checkpoint.queued_slots", self.queued.len() as i64);
|
||||
|
||||
async move {
|
||||
// Remove the Result<..., RecvError> wrapper from the channel future
|
||||
rx.await
|
||||
|
|
|
@ -67,13 +67,25 @@ where
|
|||
pub async fn sync(&mut self) -> Result<(), Report> {
|
||||
loop {
|
||||
self.obtain_tips().await?;
|
||||
metrics::gauge!(
|
||||
"sync.prospective_tips.len",
|
||||
self.prospective_tips.len() as i64
|
||||
);
|
||||
metrics::gauge!("sync.pending_blocks.len", self.pending_blocks.len() as i64);
|
||||
|
||||
// ObtainTips Step 6
|
||||
//
|
||||
// If there are any prospective tips, call ExtendTips. Continue this step until there are no more prospective tips.
|
||||
while !self.prospective_tips.is_empty() {
|
||||
tracing::debug!("extending prospective tips");
|
||||
|
||||
self.extend_tips().await?;
|
||||
|
||||
metrics::gauge!(
|
||||
"sync.prospective_tips.len",
|
||||
self.prospective_tips.len() as i64
|
||||
);
|
||||
metrics::gauge!("sync.pending_blocks.len", self.pending_blocks.len() as i64);
|
||||
tracing::debug!(
|
||||
pending.len = self.pending_blocks.len(),
|
||||
limit = LOOKAHEAD_LIMIT
|
||||
|
@ -359,6 +371,7 @@ where
|
|||
Ok(_) => unreachable!("wrong response to block request"),
|
||||
Err(e) => return Err(e),
|
||||
};
|
||||
metrics::counter!("sync.downloaded_blocks", 1);
|
||||
|
||||
verifier.ready_and().await?.call(block).await
|
||||
})
|
||||
|
|
Loading…
Reference in New Issue