diff --git a/curvefs/src/client/kvclient/kvclient_manager.cpp b/curvefs/src/client/kvclient/kvclient_manager.cpp index c87630758b..2e8b4aff8f 100644 --- a/curvefs/src/client/kvclient/kvclient_manager.cpp +++ b/curvefs/src/client/kvclient/kvclient_manager.cpp @@ -53,6 +53,8 @@ bool KVClientManager::Init(const KVClientManagerOpt& config, const std::string& fsName) { client_ = kvclient; kvClientManagerMetric_ = absl::make_unique(fsName); + getQueueSize_.reset("get_queue_size"); //1 + setQueueSize_.reset("set_queue_size"); //1 return threadPool_.Start(config.setThreadPooln) == 0; } @@ -64,9 +66,11 @@ void KVClientManager::Uninit() { void KVClientManager::Set(std::shared_ptr task) { threadPool_.Enqueue([task, this]() { std::string error_log; + setQueueSize_ << 1 task->res = client_->Set(task->key, task->value, task->length, &error_log); if (task->res) { + setQueueSize_ << -1; kvClientManagerMetric_->count << 1; } OnReturn(&kvClientManagerMetric_->set, task); @@ -99,9 +103,13 @@ void KVClientManager::Get(std::shared_ptr task) { threadPool_.Enqueue([task, this]() { std::string error_log; memcached_return_t retCode; + getQueueSize_ << 1; task->res = client_->Get(task->key, task->value, task->offset, task->valueLength, &error_log, &task->length, &retCode); + if (task->res) { + getQueueSize_ << -1; + } UpdateHitMissMetric(retCode, kvClientManagerMetric_.get()); OnReturn(&kvClientManagerMetric_->get, task); }); diff --git a/curvefs/src/client/kvclient/kvclient_manager.h b/curvefs/src/client/kvclient/kvclient_manager.h index bad99193a8..b74c2872f8 100644 --- a/curvefs/src/client/kvclient/kvclient_manager.h +++ b/curvefs/src/client/kvclient/kvclient_manager.h @@ -37,6 +37,7 @@ #include "curvefs/src/client/metric/client_metric.h" #include "src/common/concurrent/task_thread_pool.h" #include "src/common/s3_adapter.h" +#include "bvar/bvar.h" using curvefs::client::metric::KVClientManagerMetric; @@ -160,6 +161,8 @@ class KVClientManager { TaskThreadPool threadPool_; std::shared_ptr client_; std::unique_ptr kvClientManagerMetric_; + bvar::Adder getQueueSize_; + bvar::Adder setQueueSize_; }; } // namespace client