diff options
author | ssmike <ssmike@ydb.tech> | 2023-08-01 22:42:43 +0300 |
---|---|---|
committer | ssmike <ssmike@ydb.tech> | 2023-08-01 22:42:43 +0300 |
commit | 0a57551e82ba1f0e1ab1c1d3ca19599be7ecaeac (patch) | |
tree | 27f8b384a878f1e0cbaadfee729ba356d7d193b7 | |
parent | 09314f260becbee2ec69323d37d55b53783fa855 (diff) | |
download | ydb-0a57551e82ba1f0e1ab1c1d3ca19599be7ecaeac.tar.gz |
Add node-service latency counters
-rw-r--r-- | ydb/core/kqp/counters/kqp_counters.cpp | 7 | ||||
-rw-r--r-- | ydb/core/kqp/counters/kqp_counters.h | 3 | ||||
-rw-r--r-- | ydb/core/kqp/node_service/kqp_node_service.cpp | 10 |
3 files changed, 20 insertions, 0 deletions
diff --git a/ydb/core/kqp/counters/kqp_counters.cpp b/ydb/core/kqp/counters/kqp_counters.cpp index da37347c84..3dd3544763 100644 --- a/ydb/core/kqp/counters/kqp_counters.cpp +++ b/ydb/core/kqp/counters/kqp_counters.cpp @@ -763,6 +763,13 @@ TKqpCounters::TKqpCounters(const ::NMonitoring::TDynamicCounterPtr& counters, co RmInternalError = KqpGroup->GetCounter("RM/InternalError", true); RmSnapshotLatency = KqpGroup->GetHistogram( "RM/SnapshotLatency", NMonitoring::ExponentialHistogram(20, 2, 1)); + + NodeServiceStartEventDelivery = KqpGroup->GetHistogram( + "NodeService/StartEventDeliveryUs", NMonitoring::ExponentialHistogram(20, 2, 1)); + NodeServiceProcessTime = KqpGroup->GetHistogram( + "jodeService/ProcessStartEventUs", NMonitoring::ExponentialHistogram(20, 2, 1)); + NodeServiceProcessCancelTime = KqpGroup->GetHistogram( + "NodeService/ProcessCancelEventUs", NMonitoring::ExponentialHistogram(20, 2, 1)); RmMaxSnapshotLatency = KqpGroup->GetCounter("RM/MaxSnapshotLatency", false); RmNodeNumberInSnapshot = KqpGroup->GetCounter("RM/NodeNumberInSnapshot", false); diff --git a/ydb/core/kqp/counters/kqp_counters.h b/ydb/core/kqp/counters/kqp_counters.h index ad885cac5f..4be02be974 100644 --- a/ydb/core/kqp/counters/kqp_counters.h +++ b/ydb/core/kqp/counters/kqp_counters.h @@ -361,6 +361,9 @@ public: ::NMonitoring::TDynamicCounters::TCounterPtr RmExtraMemAllocs; ::NMonitoring::TDynamicCounters::TCounterPtr RmInternalError; NMonitoring::THistogramPtr RmSnapshotLatency; + NMonitoring::THistogramPtr NodeServiceStartEventDelivery; + NMonitoring::THistogramPtr NodeServiceProcessTime; + NMonitoring::THistogramPtr NodeServiceProcessCancelTime; ::NMonitoring::TDynamicCounters::TCounterPtr RmMaxSnapshotLatency; ::NMonitoring::TDynamicCounters::TCounterPtr RmNodeNumberInSnapshot; diff --git a/ydb/core/kqp/node_service/kqp_node_service.cpp b/ydb/core/kqp/node_service/kqp_node_service.cpp index 2b2f290a96..0e295a835d 100644 --- a/ydb/core/kqp/node_service/kqp_node_service.cpp +++ b/ydb/core/kqp/node_service/kqp_node_service.cpp @@ -268,10 +268,15 @@ private: } }; + static constexpr double SecToUsec = 1e6; + void HandleWork(TEvKqpNode::TEvStartKqpTasksRequest::TPtr& ev) { NWilson::TSpan sendTasksSpan(TWilsonKqp::KqpNodeSendTasks, NWilson::TTraceId(ev->TraceId), "KqpNode.SendTasks", NWilson::EFlags::AUTO_END); + NHPTimer::STime workHandlerStart = ev->SendTime; auto& msg = ev->Get()->Record; + Counters->NodeServiceStartEventDelivery->Collect(NHPTimer::GetTimePassed(&workHandlerStart) * SecToUsec); + auto requester = ev->Sender; ui64 txId = msg.GetTxId(); @@ -510,6 +515,8 @@ private: Send(request.Executer, reply.Release(), IEventHandle::FlagTrackDelivery, txId); + Counters->NodeServiceProcessTime->Collect(NHPTimer::GetTimePassed(&workHandlerStart) * SecToUsec); + bucket.NewRequest(txId, requester, std::move(request), memoryPool); } @@ -520,11 +527,14 @@ private: } void HandleWork(TEvKqpNode::TEvCancelKqpTasksRequest::TPtr& ev) { + THPTimer timer; ui64 txId = ev->Get()->Record.GetTxId(); auto& reason = ev->Get()->Record.GetReason(); LOG_W("TxId: " << txId << ", terminate transaction, reason: " << reason); TerminateTx(txId, reason); + + Counters->NodeServiceProcessCancelTime->Collect(timer.Passed() * SecToUsec); } void TerminateTx(ui64 txId, const TString& reason) { |