mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-05-27 02:10:38 +00:00
fix: handle stall metrics
This commit is contained in:
@@ -795,12 +795,10 @@ impl<S: LogStore> RegionWorkerLoop<S> {
|
||||
let handle_start = Instant::now();
|
||||
|
||||
if self.flush_receiver.has_changed().unwrap_or(false) {
|
||||
let start = Instant::now();
|
||||
// Always checks whether we could process stalled requests to avoid a request
|
||||
// hangs too long.
|
||||
// If the channel is closed, do nothing.
|
||||
self.handle_stalled_requests().await;
|
||||
self.metrics.handle_stall_cost = start.elapsed();
|
||||
}
|
||||
|
||||
// Try to recv more requests from the channel.
|
||||
|
||||
@@ -131,6 +131,7 @@ impl<S: LogStore> RegionWorkerLoop<S> {
|
||||
|
||||
/// Handles all stalled write requests.
|
||||
pub(crate) async fn handle_stalled_requests(&mut self) {
|
||||
let handle_stall_start = Instant::now();
|
||||
if let Some(start) = self.stall_start.take() {
|
||||
self.metrics.stall_cost += start.elapsed();
|
||||
}
|
||||
@@ -142,6 +143,7 @@ impl<S: LogStore> RegionWorkerLoop<S> {
|
||||
self.metrics.num_stalled_request_processed += requests.len();
|
||||
self.handle_write_requests(requests, false).await;
|
||||
}
|
||||
self.metrics.handle_stall_cost += handle_stall_start.elapsed();
|
||||
}
|
||||
|
||||
/// Rejects all stalled requests.
|
||||
|
||||
Reference in New Issue
Block a user