Skip to content

Commit 13ea225

Browse files
committed
metrics: add indexer_tip metrics
Signed-off-by: Eval EXEC <[email protected]>
1 parent 274c460 commit 13ea225

File tree

4 files changed

+25
-0
lines changed

4 files changed

+25
-0
lines changed

Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

util/indexer/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ ckb-notify.workspace = true
1818
ckb-async-runtime.workspace = true
1919
ckb-indexer-sync.workspace = true
2020
rocksdb = { workspace = true, features = ["snappy"], default-features = false }
21+
ckb-metrics.workspace = true
2122
memchr.workspace = true
2223

2324
[dev-dependencies]

util/indexer/src/indexer.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -517,6 +517,12 @@ where
517517
if block_number % self.prune_interval == 0 {
518518
self.prune()?;
519519
}
520+
521+
// Update indexer tip metric
522+
if let Some(metrics) = ckb_metrics::handle() {
523+
metrics.ckb_indexer_tip.set(block_number as i64);
524+
}
525+
520526
Ok(())
521527
}
522528

@@ -672,6 +678,16 @@ where
672678
batch.delete(Key::Header(block_number, &block_hash, filtered).into_vec())?;
673679

674680
batch.commit()?;
681+
682+
// Update indexer tip metric after rollback
683+
if let Some(metrics) = ckb_metrics::handle() {
684+
// After rollback, the new tip is block_number - 1
685+
if block_number > 0 {
686+
metrics.ckb_indexer_tip.set((block_number - 1) as i64);
687+
} else {
688+
metrics.ckb_indexer_tip.set(0);
689+
}
690+
}
675691
}
676692
Ok(())
677693
}

util/metrics/src/lib.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,8 @@ pub struct Metrics {
130130
pub ckb_hole_punching_active_success_count: IntCounter,
131131
pub ckb_hole_punching_passive_count: IntCounter,
132132
pub ckb_hole_punching_passive_success_count: IntCounter,
133+
/// Gauge metric for CKB indexer tip block number
134+
pub ckb_indexer_tip: IntGauge,
133135
}
134136

135137
static METRICS: std::sync::LazyLock<Metrics> = std::sync::LazyLock::new(|| {
@@ -336,6 +338,11 @@ static METRICS: std::sync::LazyLock<Metrics> = std::sync::LazyLock::new(|| {
336338
"The CKB hole punching passive success count"
337339
)
338340
.unwrap(),
341+
ckb_indexer_tip: register_int_gauge!(
342+
"ckb_indexer_tip",
343+
"The CKB indexer tip block number"
344+
)
345+
.unwrap(),
339346
}
340347
});
341348

0 commit comments

Comments
 (0)