From e05416d28ea80c305abf7d3d0747fc59ec7b3068 Mon Sep 17 00:00:00 2001 From: Ravi Nagarjun Akella Date: Wed, 24 Jul 2024 14:23:57 -0700 Subject: [PATCH] correct metrics name --- conanfile.py | 4 ++-- src/lib/service.hpp | 7 ++++--- src/proto/proto_service.cpp | 17 ++++++++++------- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/conanfile.py b/conanfile.py index 38b318b..faca43c 100644 --- a/conanfile.py +++ b/conanfile.py @@ -10,7 +10,7 @@ class NuRaftMesgConan(ConanFile): name = "nuraft_mesg" - version = "3.5.4" + version = "3.5.5" homepage = "https://github.com/eBay/nuraft_mesg" description = "A gRPC service for NuRAFT" @@ -127,4 +127,4 @@ def package_info(self): self.cpp_info.set_property("cmake_file_name", "NuraftMesg") self.cpp_info.set_property("cmake_target_name", "NuraftMesg::NuraftMesg") self.cpp_info.names["cmake_find_package"] = "NuraftMesg" - self.cpp_info.names["cmake_find_package_multi"] = "NuraftMesg" \ No newline at end of file + self.cpp_info.names["cmake_find_package_multi"] = "NuraftMesg" diff --git a/src/lib/service.hpp b/src/lib/service.hpp index 75eb7b0..ec45bd9 100644 --- a/src/lib/service.hpp +++ b/src/lib/service.hpp @@ -28,9 +28,10 @@ class group_metrics : public sisl::MetricsGroupWrapper { public: explicit group_metrics(group_id_t const& group_id) : sisl::MetricsGroupWrapper("RAFTGroup", to_string(group_id).c_str()) { - REGISTER_COUNTER(group_steps, "Total group messages received", "raft_group", {"op", "step"}); - REGISTER_COUNTER(group_sends, "Total group messages sent", "raft_group", {"op", "send"}); - REGISTER_HISTOGRAM(group_step_latency, "Latency for processing raft step", "raft_group", {"op", "step"}); + REGISTER_COUNTER(group_steps, "Total group messages received", "raft_group_cnt", {"op", "step_count"}); + REGISTER_COUNTER(group_sends, "Total group messages sent", "raft_group_cnt", {"op", "send_count"}); + REGISTER_HISTOGRAM(append_entries_latency_us, "Latency for processing raft step", "raft_group_latency", + {"op", "append_latency"}); register_me_to_farm(); } diff --git a/src/proto/proto_service.cpp b/src/proto/proto_service.cpp index 3fc6c9c..493c11e 100644 --- a/src/proto/proto_service.cpp +++ b/src/proto/proto_service.cpp @@ -45,7 +45,8 @@ static RCResponse* fromRCResponse(nuraft::resp_msg& rcmsg) { } class proto_service : public msg_service { - ::grpc::Status step(nuraft::raft_server& server, const RaftMessage& request, RaftMessage& reply); + ::grpc::Status step(nuraft::raft_server& server, const RaftMessage& request, RaftMessage& reply, + std::shared_ptr< group_metrics > metrics); public: template < typename... Args > @@ -81,12 +82,17 @@ void proto_service::bind(::sisl::GrpcServer* server) { } } -::grpc::Status proto_service::step(nuraft::raft_server& server, const RaftMessage& request, RaftMessage& reply) { +::grpc::Status proto_service::step(nuraft::raft_server& server, const RaftMessage& request, RaftMessage& reply, + std::shared_ptr< group_metrics > metrics) { LOGT("Stepping [{}] from: [{}] to: [{}]", nuraft::msg_type_to_string(nuraft::msg_type(request.base().type())), request.base().src(), request.base().dest()); auto rcreq = toRequest(request); + auto const time_start = std::chrono::steady_clock::now(); auto resp = nuraft::raft_server_handler::process_req(&server, *rcreq); if (!resp) { return ::grpc::Status(::grpc::StatusCode::CANCELLED, "Server rejected request"); } + if (metrics && rcreq->get_type() == nuraft::msg_type::append_entries_request) { + HISTOGRAM_OBSERVE(*metrics, append_entries_latency_us, get_elapsed_time_us(time_start)); + } assert(resp); reply.set_allocated_base(fromBaseRequest(*resp)); reply.set_allocated_rc_response(fromRCResponse(*resp)); @@ -145,11 +151,8 @@ bool proto_service::raftStep(const sisl::AsyncRpcDataPtr< Messaging, RaftGroupMs if (auto it = _raft_servers.find(gid); _raft_servers.end() != it) { if (it->second.m_metrics) COUNTER_INCREMENT(*it->second.m_metrics, group_steps, 1); try { - auto const time_start = std::chrono::steady_clock::now(); - rpc_data->set_status( - step(*it->second.m_server->raft_server(), request.msg(), *response.mutable_msg())); - if (it->second.m_metrics) - HISTOGRAM_OBSERVE(*it->second.m_metrics, group_step_latency, get_elapsed_time_ms(time_start)); + rpc_data->set_status(step(*it->second.m_server->raft_server(), request.msg(), + *response.mutable_msg(), it->second.m_metrics)); } catch (std::runtime_error& rte) { LOGE("Caught exception during step(): {}", rte.what()); rpc_data->set_status(