diff --git a/src/raftstore/store/local_metrics.rs b/src/raftstore/store/local_metrics.rs index 7b1825bc92d..79b7280ecbe 100644 --- a/src/raftstore/store/local_metrics.rs +++ b/src/raftstore/store/local_metrics.rs @@ -23,6 +23,8 @@ pub struct RaftReadyMetrics { pub commit: u64, pub append: u64, pub snapshot: u64, + pub pending_region: u64, + pub has_ready_region: u64, } impl RaftReadyMetrics { @@ -53,6 +55,18 @@ impl RaftReadyMetrics { .unwrap(); self.snapshot = 0; } + if self.pending_region > 0 { + STORE_RAFT_READY_COUNTER_VEC.with_label_values(&["pending_region"]) + .inc_by(self.pending_region as f64) + .unwrap(); + self.pending_region = 0; + } + if self.has_ready_region > 0 { + STORE_RAFT_READY_COUNTER_VEC.with_label_values(&["has_ready_region"]) + .inc_by(self.has_ready_region as f64) + .unwrap(); + self.has_ready_region = 0; + } } } diff --git a/src/raftstore/store/store.rs b/src/raftstore/store/store.rs index 4e273e788b9..5eff2686119 100644 --- a/src/raftstore/store/store.rs +++ b/src/raftstore/store/store.rs @@ -883,6 +883,8 @@ impl Store { let previous_ready_metrics = self.raft_metrics.ready.clone(); let previous_sent_snapshot_count = self.raft_metrics.message.snapshot; + self.raft_metrics.ready.pending_region += pending_count as u64; + let (wb, append_res) = { let mut ctx = ReadyContext::new(&mut self.raft_metrics, &self.trans, pending_count); for region_id in self.pending_raft_groups.drain() { @@ -893,6 +895,8 @@ impl Store { (ctx.wb, ctx.ready_res) }; + self.raft_metrics.ready.has_ready_region += append_res.len() as u64; + if !wb.is_empty() { self.engine.write(wb).unwrap_or_else(|e| { panic!("{} failed to save append result: {:?}", self.tag, e);