feat: Add timers to more mito methods (#3659)

* feat: add timers for more mito methods

* refactor: combine methods to get type name
This commit is contained in:
Yingwen
2024-04-08 13:53:34 +08:00
committed by GitHub
parent aa0af6135d
commit 89db8c18c8
2 changed files with 13 additions and 23 deletions

View File

@@ -127,6 +127,10 @@ impl MitoEngine {
/// Other region editing intention will result in an "invalid request" error.
/// Also note that if a region is to be edited directly, we MUST not write data to it thereafter.
pub async fn edit_region(&self, region_id: RegionId, edit: RegionEdit) -> Result<()> {
let _timer = HANDLE_REQUEST_ELAPSED
.with_label_values(&["edit_region"])
.start_timer();
ensure!(
is_valid_region_edit(&edit),
InvalidRequestSnafu {
@@ -215,10 +219,6 @@ impl EngineInner {
region_id: RegionId,
request: RegionRequest,
) -> Result<AffectedRows> {
let _timer = HANDLE_REQUEST_ELAPSED
.with_label_values(&[request.type_name()])
.start_timer();
let (request, receiver) = WorkerRequest::try_from_region_request(region_id, request)?;
self.workers.submit_to_worker(region_id, request).await?;
@@ -298,6 +298,10 @@ impl RegionEngine for MitoEngine {
region_id: RegionId,
request: RegionRequest,
) -> Result<RegionHandleResult, BoxedError> {
let _timer = HANDLE_REQUEST_ELAPSED
.with_label_values(&[request.request_type()])
.start_timer();
self.inner
.handle_request(region_id, request)
.await
@@ -355,6 +359,10 @@ impl RegionEngine for MitoEngine {
&self,
region_id: RegionId,
) -> Result<SetReadonlyResponse, BoxedError> {
let _timer = HANDLE_REQUEST_ELAPSED
.with_label_values(&["set_readonly_gracefully"])
.start_timer();
self.inner
.set_readonly_gracefully(region_id)
.await

View File

@@ -50,24 +50,6 @@ pub enum RegionRequest {
}
impl RegionRequest {
/// Returns the type name of the [RegionRequest].
#[inline]
pub fn request_type(&self) -> &'static str {
match &self {
RegionRequest::Put(_) => "put",
RegionRequest::Delete(_) => "delete",
RegionRequest::Create(_) => "create",
RegionRequest::Drop(_) => "drop",
RegionRequest::Open(_) => "open",
RegionRequest::Close(_) => "close",
RegionRequest::Alter(_) => "alter",
RegionRequest::Flush(_) => "flush",
RegionRequest::Compact(_) => "compact",
RegionRequest::Truncate(_) => "truncate",
RegionRequest::Catchup(_) => "catchup",
}
}
/// Convert [Body](region_request::Body) to a group of [RegionRequest] with region id.
/// Inserts/Deletes request might become multiple requests. Others are one-to-one.
pub fn try_from_request_body(body: region_request::Body) -> Result<Vec<(RegionId, Self)>> {
@@ -89,7 +71,7 @@ impl RegionRequest {
}
/// Returns the type name of the request.
pub fn type_name(&self) -> &'static str {
pub fn request_type(&self) -> &'static str {
self.into()
}
}