aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorssmike <ssmike@ydb.tech>2023-08-01 22:42:43 +0300
committerssmike <ssmike@ydb.tech>2023-08-01 22:42:43 +0300
commit0a57551e82ba1f0e1ab1c1d3ca19599be7ecaeac (patch)
tree27f8b384a878f1e0cbaadfee729ba356d7d193b7
parent09314f260becbee2ec69323d37d55b53783fa855 (diff)
downloadydb-0a57551e82ba1f0e1ab1c1d3ca19599be7ecaeac.tar.gz
Add node-service latency counters
-rw-r--r--ydb/core/kqp/counters/kqp_counters.cpp7
-rw-r--r--ydb/core/kqp/counters/kqp_counters.h3
-rw-r--r--ydb/core/kqp/node_service/kqp_node_service.cpp10
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) {