From f52a13713e31a5afd0ed37930ec6a759d2d7de87 Mon Sep 17 00:00:00 2001 From: Xuanwo Date: Wed, 9 Mar 2022 17:45:40 +0800 Subject: [PATCH] services: Add basic metrics Signed-off-by: Xuanwo --- Cargo.toml | 1 + src/services/fs.rs | 11 +++++++++++ src/services/s3/backend.rs | 9 +++++++++ 3 files changed, 21 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index 9d5b67b41ecc..b88c4128d51c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,6 +43,7 @@ pin-project = "1" reqwest = "0.11" thiserror = "1" tower = "0.4" +metrics = "0.18" [dev-dependencies] anyhow = "1.0" diff --git a/src/services/fs.rs b/src/services/fs.rs index 511cd8997a74..eb11ee12c038 100644 --- a/src/services/fs.rs +++ b/src/services/fs.rs @@ -33,6 +33,7 @@ use futures::AsyncWriteExt; use log::debug; use log::error; use log::info; +use metrics::increment_counter; use crate::error::Error; use crate::error::Kind; @@ -132,6 +133,8 @@ impl Backend { #[async_trait] impl Accessor for Backend { async fn read(&self, args: &OpRead) -> Result { + increment_counter!("opendal_fs_read_requests"); + let path = self.get_abs_path(&args.path); info!( "object {} read start: offset {:?}, size {:?}", @@ -170,6 +173,8 @@ impl Accessor for Backend { } async fn write(&self, mut r: BoxedAsyncReader, args: &OpWrite) -> Result { + increment_counter!("opendal_fs_write_requests"); + let path = self.get_abs_path(&args.path); info!("object {} write start: size {}", &path, args.size); @@ -236,6 +241,8 @@ impl Accessor for Backend { } async fn stat(&self, args: &OpStat) -> Result { + increment_counter!("opendal_fs_stat_requests"); + let path = self.get_abs_path(&args.path); info!("object {} stat start", &path); @@ -262,6 +269,8 @@ impl Accessor for Backend { } async fn delete(&self, args: &OpDelete) -> Result<()> { + increment_counter!("opendal_fs_delete_requests"); + let path = self.get_abs_path(&args.path); info!("object {} delete start", &path); @@ -297,6 +306,8 @@ impl Accessor for Backend { } async fn list(&self, args: &OpList) -> Result { + increment_counter!("opendal_fs_list_requests"); + let path = self.get_abs_path(&args.path); info!("object {} list start", &path); diff --git a/src/services/s3/backend.rs b/src/services/s3/backend.rs index ec83c2f2e03f..77e28aabaa53 100644 --- a/src/services/s3/backend.rs +++ b/src/services/s3/backend.rs @@ -33,6 +33,7 @@ use log::debug; use log::error; use log::info; use log::warn; +use metrics::increment_counter; use once_cell::sync::Lazy; use super::error::parse_get_object_error; @@ -375,6 +376,8 @@ impl Backend { #[async_trait] impl Accessor for Backend { async fn read(&self, args: &OpRead) -> Result { + increment_counter!("opendal_s3_read_requests"); + let p = self.get_abs_path(&args.path); info!( "object {} read start: offset {:?}, size {:?}", @@ -430,6 +433,8 @@ impl Accessor for Backend { } async fn stat(&self, args: &OpStat) -> Result { + increment_counter!("opendal_s3_stat_requests"); + let p = self.get_abs_path(&args.path); info!("object {} stat start", &p); @@ -479,6 +484,8 @@ impl Accessor for Backend { } async fn delete(&self, args: &OpDelete) -> Result<()> { + increment_counter!("opendal_s3_delete_requests"); + let p = self.get_abs_path(&args.path); info!("object {} delete start", &p); @@ -496,6 +503,8 @@ impl Accessor for Backend { } async fn list(&self, args: &OpList) -> Result { + increment_counter!("opendal_s3_list_requests"); + let mut path = self.get_abs_path(&args.path); // Make sure list path is endswith '/' if !path.ends_with('/') && !path.is_empty() {