aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhcpp <hcpp@yandex-team.ru>2022-03-11 15:24:32 +0300
committerhcpp <hcpp@yandex-team.ru>2022-03-11 15:24:32 +0300
commitf34ac622118b3bdd578730e19d5f33c9740dff1f (patch)
tree2cd4ad1844cfe2ff9e9f95c722d4f89105ba866c
parentf788a054cb1ff227c2958ac72f600a6617020dde (diff)
downloadydb-f34ac622118b3bdd578730e19d5f33c9740dff1f.tar.gz
request/response bytes metrics has been added YQ-713
ref:3a370942f30fc6fc6e1e6b8fbb74b1e38a1b5ca5
-rw-r--r--ydb/core/yq/libs/control_plane_storage/control_plane_storage_counters.cpp2
-rw-r--r--ydb/core/yq/libs/control_plane_storage/control_plane_storage_counters.h2
-rw-r--r--ydb/core/yq/libs/control_plane_storage/events/events.h487
-rw-r--r--ydb/core/yq/libs/control_plane_storage/internal/nodes_health_check.cpp4
-rw-r--r--ydb/core/yq/libs/control_plane_storage/internal/task_ping.cpp1
-rw-r--r--ydb/core/yq/libs/control_plane_storage/internal/task_result_write.cpp1
-rw-r--r--ydb/core/yq/libs/control_plane_storage/ydb_control_plane_storage_bindings.cpp66
-rw-r--r--ydb/core/yq/libs/control_plane_storage/ydb_control_plane_storage_connections.cpp66
-rw-r--r--ydb/core/yq/libs/control_plane_storage/ydb_control_plane_storage_impl.h20
-rw-r--r--ydb/core/yq/libs/control_plane_storage/ydb_control_plane_storage_queries.cpp117
10 files changed, 657 insertions, 109 deletions
diff --git a/ydb/core/yq/libs/control_plane_storage/control_plane_storage_counters.cpp b/ydb/core/yq/libs/control_plane_storage/control_plane_storage_counters.cpp
index 8274a885891..89e31f372e8 100644
--- a/ydb/core/yq/libs/control_plane_storage/control_plane_storage_counters.cpp
+++ b/ydb/core/yq/libs/control_plane_storage/control_plane_storage_counters.cpp
@@ -11,6 +11,8 @@ void TRequestCounters::Register(const NMonitoring::TDynamicCounterPtr& counters)
Ok = requestCounters->GetCounter("Ok", true);
Error = requestCounters->GetCounter("Error", true);
Retry = requestCounters->GetCounter("Retry", true);
+ RequestBytes = requestCounters->GetCounter("RequestBytes", true);
+ ResponseBytes = requestCounters->GetCounter("ResponseBytes", true);
LatencyMs = requestCounters->GetHistogram("LatencyMs", GetLatencyHistogramBuckets());
Issues = requestCounters->GetSubgroup("subcomponent", "Issues");
}
diff --git a/ydb/core/yq/libs/control_plane_storage/control_plane_storage_counters.h b/ydb/core/yq/libs/control_plane_storage/control_plane_storage_counters.h
index 58d3c56b271..f67d4b93f9f 100644
--- a/ydb/core/yq/libs/control_plane_storage/control_plane_storage_counters.h
+++ b/ydb/core/yq/libs/control_plane_storage/control_plane_storage_counters.h
@@ -13,6 +13,8 @@ public:
NMonitoring::TDynamicCounters::TCounterPtr Ok;
NMonitoring::TDynamicCounters::TCounterPtr Error;
NMonitoring::TDynamicCounters::TCounterPtr Retry;
+ NMonitoring::TDynamicCounters::TCounterPtr RequestBytes;
+ NMonitoring::TDynamicCounters::TCounterPtr ResponseBytes;
NMonitoring::THistogramPtr LatencyMs;
NMonitoring::TDynamicCounterPtr Issues;
diff --git a/ydb/core/yq/libs/control_plane_storage/events/events.h b/ydb/core/yq/libs/control_plane_storage/events/events.h
index 09a73b2bf17..33070d4a04f 100644
--- a/ydb/core/yq/libs/control_plane_storage/events/events.h
+++ b/ydb/core/yq/libs/control_plane_storage/events/events.h
@@ -16,6 +16,7 @@
#include <ydb/core/yq/libs/control_plane_storage/proto/yq_internal.pb.h>
#include <ydb/core/yq/libs/events/event_subspace.h>
+#include <ydb/public/sdk/cpp/client/ydb_proto/accessor.h>
namespace NYq {
@@ -25,6 +26,13 @@ struct TAuditDetails {
TMaybe<T> After;
bool IdempotencyResult = false;
TString CloudId;
+
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Before.Empty() ? 0 : Before->ByteSizeLong()
+ + After.Empty() ? 0 : After->ByteSizeLong()
+ + CloudId.Size();
+ }
};
struct TNodeInfo {
@@ -51,6 +59,19 @@ struct TDebugItem {
result += "Error: " + Error + "\n";
return result;
}
+
+ size_t GetByteSize() const {
+ size_t paramsSize = 0;
+ for (const auto& [key, value]: Params.GetValues()) {
+ paramsSize += key.Size() + NYdb::TProtoAccessor::GetProto(value).ByteSizeLong();
+ }
+ return sizeof(*this)
+ + Query.Size()
+ + paramsSize
+ + Plan.Size()
+ + Ast.Size()
+ + Error.Size();
+ }
};
using TDebugInfo = TVector<TDebugItem>;
@@ -92,6 +113,35 @@ public:
}
};
+namespace {
+ inline size_t GetIssuesByteSize(const NYql::TIssues& issues) {
+ size_t size = 0;
+ for (const auto& issue: issues) {
+ NYql::WalkThroughIssues(issue, false, [&size](const auto& issue, ui16) {
+ size += sizeof(issue);
+ size += issue.Message.size();
+ });
+ }
+ size += issues.Size() * sizeof(NYql::TIssue);
+ return size;
+ }
+
+ inline size_t GetIssuesByteSize(const TMaybe<NYql::TIssues>& issues) {
+ return issues.Empty() ? 0 : GetIssuesByteSize(*issues);
+ }
+
+ inline size_t GetDebugInfoByteSize(const TDebugInfoPtr& infos) {
+ if (!infos) {
+ return 0;
+ }
+ size_t size = 0;
+ for (const auto& info: *infos) {
+ size += info.GetByteSize();
+ }
+ return size;
+ }
+}
+
struct TEvControlPlaneStorage {
// Event ids.
enum EEv : ui32 {
@@ -166,6 +216,15 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Scope.Size()
+ + Request.ByteSizeLong()
+ + User.Size()
+ + Token.Size()
+ + CloudId.Size();
+ }
+
TString Scope;
YandexQuery::CreateQueryRequest Request;
TString User;
@@ -187,6 +246,14 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Result.ByteSizeLong()
+ + AuditDetails.GetByteSize()
+ + GetIssuesByteSize(Issues)
+ + GetDebugInfoByteSize(DebugInfo);
+ }
+
YandexQuery::CreateQueryResult Result;
TAuditDetails<YandexQuery::Query> AuditDetails;
NYql::TIssues Issues;
@@ -207,6 +274,14 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Scope.Size()
+ + Request.ByteSizeLong()
+ + User.Size()
+ + Token.Size();
+ }
+
TString Scope;
YandexQuery::ListQueriesRequest Request;
TString User;
@@ -225,6 +300,13 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Result.ByteSizeLong()
+ + GetIssuesByteSize(Issues)
+ + GetDebugInfoByteSize(DebugInfo);
+ }
+
YandexQuery::ListQueriesResult Result;
NYql::TIssues Issues;
TDebugInfoPtr DebugInfo;
@@ -244,6 +326,14 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Scope.Size()
+ + Request.ByteSizeLong()
+ + User.Size()
+ + Token.Size();
+ }
+
TString Scope;
YandexQuery::DescribeQueryRequest Request;
TString User;
@@ -262,6 +352,13 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Result.ByteSizeLong()
+ + GetIssuesByteSize(Issues)
+ + GetDebugInfoByteSize(DebugInfo);
+ }
+
YandexQuery::DescribeQueryResult Result;
NYql::TIssues Issues;
TDebugInfoPtr DebugInfo;
@@ -281,6 +378,14 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Scope.Size()
+ + Request.ByteSizeLong()
+ + User.Size()
+ + Token.Size();
+ }
+
TString Scope;
YandexQuery::GetQueryStatusRequest Request;
TString User;
@@ -299,6 +404,13 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Result.ByteSizeLong()
+ + GetIssuesByteSize(Issues)
+ + GetDebugInfoByteSize(DebugInfo);
+ }
+
YandexQuery::GetQueryStatusResult Result;
NYql::TIssues Issues;
TDebugInfoPtr DebugInfo;
@@ -318,6 +430,14 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Scope.Size()
+ + Request.ByteSizeLong()
+ + User.Size()
+ + Token.Size();
+ }
+
TString Scope;
YandexQuery::ModifyQueryRequest Request;
TString User;
@@ -338,6 +458,14 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Result.ByteSizeLong()
+ + AuditDetails.GetByteSize()
+ + GetIssuesByteSize(Issues)
+ + GetDebugInfoByteSize(DebugInfo);
+ }
+
YandexQuery::ModifyQueryResult Result;
TAuditDetails<YandexQuery::Query> AuditDetails;
NYql::TIssues Issues;
@@ -358,6 +486,14 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Scope.Size()
+ + Request.ByteSizeLong()
+ + User.Size()
+ + Token.Size();
+ }
+
TString Scope;
YandexQuery::DeleteQueryRequest Request;
TString User;
@@ -378,6 +514,14 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Result.ByteSizeLong()
+ + AuditDetails.GetByteSize()
+ + GetIssuesByteSize(Issues)
+ + GetDebugInfoByteSize(DebugInfo);
+ }
+
YandexQuery::DeleteQueryResult Result;
TAuditDetails<YandexQuery::Query> AuditDetails;
NYql::TIssues Issues;
@@ -398,6 +542,14 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Scope.Size()
+ + Request.ByteSizeLong()
+ + User.Size()
+ + Token.Size();
+ }
+
TString Scope;
YandexQuery::ControlQueryRequest Request;
TString User;
@@ -418,6 +570,14 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Result.ByteSizeLong()
+ + AuditDetails.GetByteSize()
+ + GetIssuesByteSize(Issues)
+ + GetDebugInfoByteSize(DebugInfo);
+ }
+
YandexQuery::ControlQueryResult Result;
TAuditDetails<YandexQuery::Query> AuditDetails;
NYql::TIssues Issues;
@@ -438,6 +598,14 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Scope.Size()
+ + Request.ByteSizeLong()
+ + User.Size()
+ + Token.Size();
+ }
+
TString Scope;
YandexQuery::GetResultDataRequest Request;
TString User;
@@ -456,6 +624,13 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Result.ByteSizeLong()
+ + GetIssuesByteSize(Issues)
+ + GetDebugInfoByteSize(DebugInfo);
+ }
+
YandexQuery::GetResultDataResult Result;
NYql::TIssues Issues;
TDebugInfoPtr DebugInfo;
@@ -475,6 +650,14 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Scope.Size()
+ + Request.ByteSizeLong()
+ + User.Size()
+ + Token.Size();
+ }
+
TString Scope;
YandexQuery::ListJobsRequest Request;
TString User;
@@ -493,6 +676,13 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Result.ByteSizeLong()
+ + GetIssuesByteSize(Issues)
+ + GetDebugInfoByteSize(DebugInfo);
+ }
+
YandexQuery::ListJobsResult Result;
NYql::TIssues Issues;
TDebugInfoPtr DebugInfo;
@@ -512,6 +702,14 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Scope.Size()
+ + Request.ByteSizeLong()
+ + User.Size()
+ + Token.Size();
+ }
+
TString Scope;
YandexQuery::DescribeJobRequest Request;
TString User;
@@ -530,6 +728,13 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Result.ByteSizeLong()
+ + GetIssuesByteSize(Issues)
+ + GetDebugInfoByteSize(DebugInfo);
+ }
+
YandexQuery::DescribeJobResult Result;
NYql::TIssues Issues;
TDebugInfoPtr DebugInfo;
@@ -551,6 +756,15 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Scope.Size()
+ + Request.ByteSizeLong()
+ + User.Size()
+ + Token.Size()
+ + CloudId.Size();
+ }
+
TString Scope;
YandexQuery::CreateConnectionRequest Request;
TString User;
@@ -572,6 +786,14 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Result.ByteSizeLong()
+ + AuditDetails.GetByteSize()
+ + GetIssuesByteSize(Issues)
+ + GetDebugInfoByteSize(DebugInfo);
+ }
+
YandexQuery::CreateConnectionResult Result;
TAuditDetails<YandexQuery::Connection> AuditDetails;
NYql::TIssues Issues;
@@ -592,6 +814,14 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Scope.Size()
+ + Request.ByteSizeLong()
+ + User.Size()
+ + Token.Size();
+ }
+
TString Scope;
YandexQuery::ListConnectionsRequest Request;
TString User;
@@ -610,6 +840,13 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Result.ByteSizeLong()
+ + GetIssuesByteSize(Issues)
+ + GetDebugInfoByteSize(DebugInfo);
+ }
+
YandexQuery::ListConnectionsResult Result;
NYql::TIssues Issues;
TDebugInfoPtr DebugInfo;
@@ -629,6 +866,14 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Scope.Size()
+ + Request.ByteSizeLong()
+ + User.Size()
+ + Token.Size();
+ }
+
TString Scope;
YandexQuery::DescribeConnectionRequest Request;
TString User;
@@ -647,6 +892,13 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Result.ByteSizeLong()
+ + GetIssuesByteSize(Issues)
+ + GetDebugInfoByteSize(DebugInfo);
+ }
+
YandexQuery::DescribeConnectionResult Result;
NYql::TIssues Issues;
TDebugInfoPtr DebugInfo;
@@ -666,6 +918,14 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Scope.Size()
+ + Request.ByteSizeLong()
+ + User.Size()
+ + Token.Size();
+ }
+
TString Scope;
YandexQuery::ModifyConnectionRequest Request;
TString User;
@@ -686,6 +946,14 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Result.ByteSizeLong()
+ + AuditDetails.GetByteSize()
+ + GetIssuesByteSize(Issues)
+ + GetDebugInfoByteSize(DebugInfo);
+ }
+
YandexQuery::ModifyConnectionResult Result;
TAuditDetails<YandexQuery::Connection> AuditDetails;
NYql::TIssues Issues;
@@ -706,6 +974,14 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Scope.Size()
+ + Request.ByteSizeLong()
+ + User.Size()
+ + Token.Size();
+ }
+
TString Scope;
YandexQuery::DeleteConnectionRequest Request;
TString User;
@@ -726,6 +1002,14 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Result.ByteSizeLong()
+ + AuditDetails.GetByteSize()
+ + GetIssuesByteSize(Issues)
+ + GetDebugInfoByteSize(DebugInfo);
+ }
+
YandexQuery::DeleteConnectionResult Result;
TAuditDetails<YandexQuery::Connection> AuditDetails;
NYql::TIssues Issues;
@@ -748,6 +1032,15 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Scope.Size()
+ + Request.ByteSizeLong()
+ + User.Size()
+ + Token.Size()
+ + CloudId.Size();
+ }
+
TString Scope;
YandexQuery::CreateBindingRequest Request;
TString User;
@@ -769,6 +1062,14 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Result.ByteSizeLong()
+ + AuditDetails.GetByteSize()
+ + GetIssuesByteSize(Issues)
+ + GetDebugInfoByteSize(DebugInfo);
+ }
+
YandexQuery::CreateBindingResult Result;
TAuditDetails<YandexQuery::Binding> AuditDetails;
NYql::TIssues Issues;
@@ -789,6 +1090,14 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Scope.Size()
+ + Request.ByteSizeLong()
+ + User.Size()
+ + Token.Size();
+ }
+
TString Scope;
YandexQuery::ListBindingsRequest Request;
TString User;
@@ -807,6 +1116,13 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Result.ByteSizeLong()
+ + GetIssuesByteSize(Issues)
+ + GetDebugInfoByteSize(DebugInfo);
+ }
+
YandexQuery::ListBindingsResult Result;
NYql::TIssues Issues;
TDebugInfoPtr DebugInfo;
@@ -826,6 +1142,14 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Scope.Size()
+ + Request.ByteSizeLong()
+ + User.Size()
+ + Token.Size();
+ }
+
TString Scope;
YandexQuery::DescribeBindingRequest Request;
TString User;
@@ -844,6 +1168,13 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Result.ByteSizeLong()
+ + GetIssuesByteSize(Issues)
+ + GetDebugInfoByteSize(DebugInfo);
+ }
+
YandexQuery::DescribeBindingResult Result;
NYql::TIssues Issues;
TDebugInfoPtr DebugInfo;
@@ -863,6 +1194,14 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Scope.Size()
+ + Request.ByteSizeLong()
+ + User.Size()
+ + Token.Size();
+ }
+
TString Scope;
YandexQuery::ModifyBindingRequest Request;
TString User;
@@ -883,6 +1222,14 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Result.ByteSizeLong()
+ + AuditDetails.GetByteSize()
+ + GetIssuesByteSize(Issues)
+ + GetDebugInfoByteSize(DebugInfo);
+ }
+
YandexQuery::ModifyBindingResult Result;
TAuditDetails<YandexQuery::Binding> AuditDetails;
NYql::TIssues Issues;
@@ -903,6 +1250,14 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Scope.Size()
+ + Request.ByteSizeLong()
+ + User.Size()
+ + Token.Size();
+ }
+
TString Scope;
YandexQuery::DeleteBindingRequest Request;
TString User;
@@ -923,6 +1278,14 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Result.ByteSizeLong()
+ + AuditDetails.GetByteSize()
+ + GetIssuesByteSize(Issues)
+ + GetDebugInfoByteSize(DebugInfo);
+ }
+
YandexQuery::DeleteBindingResult Result;
TAuditDetails<YandexQuery::Binding> AuditDetails;
NYql::TIssues Issues;
@@ -944,6 +1307,12 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + ResultId.Size()
+ + ResultSet.ByteSizeLong();
+ }
+
TString ResultId;
int32_t ResultSetId = 0;
int64_t StartRowId = 0;
@@ -965,6 +1334,12 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + GetIssuesByteSize(Issues)
+ + GetDebugInfoByteSize(DebugInfo);
+ }
+
NYql::TIssues Issues;
const ui64 RequestId = 0;
TDebugInfoPtr DebugInfo;
@@ -981,6 +1356,13 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Owner.Size()
+ + HostName.Size()
+ + TenantName.Size();
+ }
+
TString Owner;
TString HostName;
TString TenantName;
@@ -993,6 +1375,14 @@ struct TEvControlPlaneStorage {
YandexQuery::Internal::QueryInternal Internal;
ui64 Generation = 0;
TInstant Deadline;
+
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Scope.Size()
+ + QueryId.Size()
+ + Query.ByteSizeLong()
+ + Internal.ByteSizeLong();
+ }
};
struct TEvGetTaskResponse : NActors::TEventLocal<TEvGetTaskResponse, EvGetTaskResponse> {
@@ -1007,6 +1397,23 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + TasksByteSizeLong()
+ + GetIssuesByteSize(Issues)
+ + Owner.Size()
+ + GetDebugInfoByteSize(DebugInfo);
+ }
+
+ size_t TasksByteSizeLong() const {
+ size_t size = 0;
+ for (const auto& task: Tasks) {
+ size += task.GetByteSize();
+ }
+ size += Tasks.size() * sizeof(TTask);
+ return size;
+ }
+
NYql::TIssues Issues;
TVector<TTask> Tasks;
TString Owner;
@@ -1023,6 +1430,16 @@ struct TEvControlPlaneStorage {
bool UseSsl = false;
TString TokenName;
bool AddBearerToToken = false;
+
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + DatabaseId.Size()
+ + Database.Size()
+ + TopicPath.Size()
+ + ConsumerName.Size()
+ + ClusterEndpoint.Size()
+ + TokenName.Size();
+ }
};
struct TEvPingTaskRequest : NActors::TEventLocal<TEvPingTaskRequest, EvPingTaskRequest> {
@@ -1036,6 +1453,57 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + TenantName.Size()
+ + Scope.Size()
+ + QueryId.Size()
+ + Owner.Size()
+ + ResultId.Size()
+ + Status.Empty() ? 0 : sizeof(*Status)
+ + GetIssuesByteSize(Issues)
+ + GetIssuesByteSize(TransientIssues)
+ + Statistics.Empty() ? 0 : Statistics->Size()
+ + ResultSetMetasByteSizeLong()
+ + Ast.Empty() ? 0 : Ast->Size()
+ + Plan.Empty() ? 0 : Plan->Size()
+ + StartedAt.Empty() ? 0 : sizeof(*StartedAt)
+ + FinishedAt.Empty() ? 0 : sizeof(*FinishedAt)
+ + CreatedTopicConsumersByteSizeLong()
+ + DqGraphByteSizeLong()
+ + StreamingDisposition.Empty() ? 0 : StreamingDisposition->ByteSizeLong();
+ }
+
+ size_t ResultSetMetasByteSizeLong() const {
+ if (ResultSetMetas.Empty()) {
+ return 0;
+ }
+ size_t size = 0;
+ for (const auto& resultSet: *ResultSetMetas) {
+ size += resultSet.ByteSizeLong();
+ }
+ size += ResultSetMetas->size() * sizeof(YandexQuery::ResultSetMeta);
+ return size;
+ }
+
+ size_t CreatedTopicConsumersByteSizeLong() const {
+ size_t size = 0;
+ for (const auto& topic: CreatedTopicConsumers) {
+ size += topic.GetByteSize();
+ }
+ size += CreatedTopicConsumers.size() * sizeof(YandexQuery::ResultSetMeta);
+ return size;
+ }
+
+ size_t DqGraphByteSizeLong() const {
+ size_t size = 0;
+ for (const auto& graph: DqGraphs) {
+ size += graph.Size();
+ }
+ size += DqGraphs.size() * sizeof(TString);
+ return size;
+ }
+
const TString TenantName;
const TString Scope;
const TString QueryId;
@@ -1070,6 +1538,12 @@ struct TEvControlPlaneStorage {
{
}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + GetIssuesByteSize(Issues)
+ + GetDebugInfoByteSize(DebugInfo);
+ }
+
YandexQuery::QueryAction Action = YandexQuery::QUERY_ACTION_UNSPECIFIED;
NYql::TIssues Issues;
TDebugInfoPtr DebugInfo;
@@ -1080,6 +1554,12 @@ struct TEvControlPlaneStorage {
Yq::Private::NodesHealthCheckRequest&& request)
: Request(std::move(request))
{}
+
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Request.ByteSizeLong();
+ }
+
Yq::Private::NodesHealthCheckRequest Request;
};
@@ -1095,6 +1575,13 @@ struct TEvControlPlaneStorage {
: Issues(issues)
{}
+ size_t GetByteSize() const {
+ return sizeof(*this)
+ + Record.ByteSizeLong()
+ + GetIssuesByteSize(Issues)
+ + GetDebugInfoByteSize(DebugInfo);
+ }
+
Yq::Private::NodesHealthCheckResult Record;
NYql::TIssues Issues;
TDebugInfoPtr DebugInfo;
diff --git a/ydb/core/yq/libs/control_plane_storage/internal/nodes_health_check.cpp b/ydb/core/yq/libs/control_plane_storage/internal/nodes_health_check.cpp
index eb25dac4b15..c3db2a68219 100644
--- a/ydb/core/yq/libs/control_plane_storage/internal/nodes_health_check.cpp
+++ b/ydb/core/yq/libs/control_plane_storage/internal/nodes_health_check.cpp
@@ -10,7 +10,9 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvNodesHealth
TRequestCountersPtr requestCounters = Counters.Requests[RT_NODES_HEALTH_CHECK];
requestCounters->InFly->Inc();
- const auto& request = ev->Get()->Request;
+ const TEvControlPlaneStorage::TEvNodesHealthCheckRequest& event = *ev->Get();
+ requestCounters->RequestBytes->Add(event.GetByteSize());
+ const auto& request = event.Request;
const TString tenant = request.tenant();
const auto& node = request.node();
const ui32 nodeId = node.node_id();
diff --git a/ydb/core/yq/libs/control_plane_storage/internal/task_ping.cpp b/ydb/core/yq/libs/control_plane_storage/internal/task_ping.cpp
index 50ef9779627..e28afb951cb 100644
--- a/ydb/core/yq/libs/control_plane_storage/internal/task_ping.cpp
+++ b/ydb/core/yq/libs/control_plane_storage/internal/task_ping.cpp
@@ -345,6 +345,7 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvPingTaskReq
requestCounters->InFly->Inc();
TEvControlPlaneStorage::TEvPingTaskRequest* request = ev->Get();
+ requestCounters->RequestBytes->Add(request->GetByteSize());
const TString scope = request->Scope;
const TString queryId = request->QueryId;
const TString owner = request->Owner;
diff --git a/ydb/core/yq/libs/control_plane_storage/internal/task_result_write.cpp b/ydb/core/yq/libs/control_plane_storage/internal/task_result_write.cpp
index db945dcca92..f9c1eb9a847 100644
--- a/ydb/core/yq/libs/control_plane_storage/internal/task_result_write.cpp
+++ b/ydb/core/yq/libs/control_plane_storage/internal/task_result_write.cpp
@@ -9,6 +9,7 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvWriteResult
requestCounters->InFly->Inc();
TEvControlPlaneStorage::TEvWriteResultDataRequest& request = *ev->Get();
+ requestCounters->RequestBytes->Add(request.GetByteSize());
const TString resultId = request.ResultId;
const int32_t resultSetId = request.ResultSetId;
const int64_t startRowId = request.StartRowId;
diff --git a/ydb/core/yq/libs/control_plane_storage/ydb_control_plane_storage_bindings.cpp b/ydb/core/yq/libs/control_plane_storage/ydb_control_plane_storage_bindings.cpp
index fc617fe5f01..a8638c57d08 100644
--- a/ydb/core/yq/libs/control_plane_storage/ydb_control_plane_storage_bindings.cpp
+++ b/ydb/core/yq/libs/control_plane_storage/ydb_control_plane_storage_bindings.cpp
@@ -14,13 +14,15 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvCreateBindi
TRequestCountersPtr requestCounters = Counters.Requests[RT_CREATE_BINDING];
requestCounters->InFly->Inc();
- const YandexQuery::CreateBindingRequest& request = ev->Get()->Request;
- const TString scope = ev->Get()->Scope;
- const TString user = ev->Get()->User;
- const TString token = ev->Get()->Token;
- const TString cloudId = ev->Get()->CloudId;
+ const TEvControlPlaneStorage::TEvCreateBindingRequest& event = *ev->Get();
+ requestCounters->RequestBytes->Add(event.GetByteSize());
+ const YandexQuery::CreateBindingRequest& request = event.Request;
+ const TString scope = event.Scope;
+ const TString user = event.User;
+ const TString token = event.Token;
+ const TString cloudId = event.CloudId;
TPermissions permissions = Config.Proto.GetEnablePermissions()
- ? ev->Get()->Permissions
+ ? event.Permissions
: TPermissions{TPermissions::MANAGE_PUBLIC};
if (IsSuperUser(user)) {
permissions.SetAll();
@@ -141,15 +143,17 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvListBinding
TRequestCountersPtr requestCounters = Counters.Requests[RT_LIST_BINDINGS];
requestCounters->InFly->Inc();
- const YandexQuery::ListBindingsRequest& request = ev->Get()->Request;
- const TString scope = ev->Get()->Scope;
- const TString user = ev->Get()->User;
+ const TEvControlPlaneStorage::TEvListBindingsRequest& event = *ev->Get();
+ requestCounters->RequestBytes->Add(event.GetByteSize());
+ const YandexQuery::ListBindingsRequest& request = event.Request;
+ const TString scope = event.Scope;
+ const TString user = event.User;
const TString pageToken = request.page_token();
- const int byteSize = ev->Get()->Request.ByteSize();
+ const int byteSize = event.Request.ByteSize();
const int64_t limit = request.limit();
- const TString token = ev->Get()->Token;
+ const TString token = event.Token;
TPermissions permissions = Config.Proto.GetEnablePermissions()
- ? ev->Get()->Permissions
+ ? event.Permissions
: TPermissions{TPermissions::VIEW_PUBLIC};
if (IsSuperUser(user)) {
permissions.SetAll();
@@ -278,13 +282,15 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvDescribeBin
TRequestCountersPtr requestCounters = Counters.Requests[RT_DESCRIBE_BINDING];
requestCounters->InFly->Inc();
- const YandexQuery::DescribeBindingRequest& request = ev->Get()->Request;
- const TString scope = ev->Get()->Scope;
+ const TEvControlPlaneStorage::TEvDescribeBindingRequest& event = *ev->Get();
+ requestCounters->RequestBytes->Add(event.GetByteSize());
+ const YandexQuery::DescribeBindingRequest& request = event.Request;
+ const TString scope = event.Scope;
const TString bindingId = request.binding_id();
- const TString user = ev->Get()->User;
- const TString token = ev->Get()->Token;
+ const TString user = event.User;
+ const TString token = event.Token;
TPermissions permissions = Config.Proto.GetEnablePermissions()
- ? ev->Get()->Permissions
+ ? event.Permissions
: TPermissions{TPermissions::VIEW_PUBLIC};
if (IsSuperUser(user)) {
permissions.SetAll();
@@ -363,13 +369,15 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvModifyBindi
TRequestCountersPtr requestCounters = Counters.Requests[RT_MODIFY_BINDING];
requestCounters->InFly->Inc();
- const YandexQuery::ModifyBindingRequest& request = ev->Get()->Request;
- const TString scope = ev->Get()->Scope;
+ const TEvControlPlaneStorage::TEvModifyBindingRequest& event = *ev->Get();
+ requestCounters->RequestBytes->Add(event.GetByteSize());
+ const YandexQuery::ModifyBindingRequest& request = event.Request;
+ const TString scope = event.Scope;
const TString bindingId = request.binding_id();
- const TString user = ev->Get()->User;
- const TString token = ev->Get()->Token;
+ const TString user = event.User;
+ const TString token = event.Token;
TPermissions permissions = Config.Proto.GetEnablePermissions()
- ? ev->Get()->Permissions
+ ? event.Permissions
: TPermissions{TPermissions::MANAGE_PUBLIC};
if (IsSuperUser(user)) {
permissions.SetAll();
@@ -537,15 +545,17 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvDeleteBindi
TRequestCountersPtr requestCounters = Counters.Requests[RT_DELETE_BINDING];
requestCounters->InFly->Inc();
- const YandexQuery::DeleteBindingRequest& request = ev->Get()->Request;
- const TString scope = ev->Get()->Scope;
- const TString user = ev->Get()->User;
- const TString token = ev->Get()->Token;
+ const TEvControlPlaneStorage::TEvDeleteBindingRequest& event = *ev->Get();
+ requestCounters->RequestBytes->Add(event.GetByteSize());
+ const YandexQuery::DeleteBindingRequest& request = event.Request;
+ const TString scope = event.Scope;
+ const TString user = event.User;
+ const TString token = event.Token;
const TString bindingId = request.binding_id();
const TString idempotencyKey = request.idempotency_key();
- const int byteSize = ev->Get()->Request.ByteSize();
+ const int byteSize = event.Request.ByteSize();
TPermissions permissions = Config.Proto.GetEnablePermissions()
- ? ev->Get()->Permissions
+ ? event.Permissions
: TPermissions{TPermissions::MANAGE_PUBLIC};
if (IsSuperUser(user)) {
permissions.SetAll();
diff --git a/ydb/core/yq/libs/control_plane_storage/ydb_control_plane_storage_connections.cpp b/ydb/core/yq/libs/control_plane_storage/ydb_control_plane_storage_connections.cpp
index ddb15b16c4f..f088a1cd8be 100644
--- a/ydb/core/yq/libs/control_plane_storage/ydb_control_plane_storage_connections.cpp
+++ b/ydb/core/yq/libs/control_plane_storage/ydb_control_plane_storage_connections.cpp
@@ -16,14 +16,16 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvCreateConne
TRequestCountersPtr requestCounters = Counters.Requests[RT_CREATE_CONNECTION];
requestCounters->InFly->Inc();
- const YandexQuery::CreateConnectionRequest& request = ev->Get()->Request;
- const TString scope = ev->Get()->Scope;
- const TString user = ev->Get()->User;
- const TString token = ev->Get()->Token;
- const TString cloudId = ev->Get()->CloudId;
- const int byteSize = ev->Get()->Request.ByteSize();
+ const TEvControlPlaneStorage::TEvCreateConnectionRequest& event = *ev->Get();
+ requestCounters->RequestBytes->Add(event.GetByteSize());
+ const YandexQuery::CreateConnectionRequest& request = event.Request;
+ const TString scope = event.Scope;
+ const TString user = event.User;
+ const TString token = event.Token;
+ const TString cloudId = event.CloudId;
+ const int byteSize = request.ByteSize();
TPermissions permissions = Config.Proto.GetEnablePermissions()
- ? ev->Get()->Permissions
+ ? event.Permissions
: TPermissions{TPermissions::MANAGE_PUBLIC};
if (IsSuperUser(user)) {
permissions.SetAll();
@@ -133,14 +135,16 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvListConnect
TRequestCountersPtr requestCounters = Counters.Requests[RT_LIST_CONNECTIONS];
requestCounters->InFly->Inc();
- const YandexQuery::ListConnectionsRequest& request = ev->Get()->Request;
- const TString scope = ev->Get()->Scope;
- const TString user = ev->Get()->User;
+ const TEvControlPlaneStorage::TEvListConnectionsRequest& event = *ev->Get();
+ requestCounters->RequestBytes->Add(event.GetByteSize());
+ const YandexQuery::ListConnectionsRequest& request = event.Request;
+ const TString scope = event.Scope;
+ const TString user = event.User;
const TString pageToken = request.page_token();
- const int byteSize = ev->Get()->Request.ByteSize();
- const TString token = ev->Get()->Token;
+ const int byteSize = request.ByteSize();
+ const TString token = event.Token;
TPermissions permissions = Config.Proto.GetEnablePermissions()
- ? ev->Get()->Permissions
+ ? event.Permissions
: TPermissions{TPermissions::VIEW_PUBLIC};
if (IsSuperUser(user)) {
permissions.SetAll();
@@ -258,13 +262,15 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvDescribeCon
TRequestCountersPtr requestCounters = Counters.Requests[RT_DESCRIBE_CONNECTION];
requestCounters->InFly->Inc();
- const YandexQuery::DescribeConnectionRequest& request = ev->Get()->Request;
- const TString scope = ev->Get()->Scope;
- const TString user = ev->Get()->User;
+ const TEvControlPlaneStorage::TEvDescribeConnectionRequest& event = *ev->Get();
+ requestCounters->RequestBytes->Add(event.GetByteSize());
+ const YandexQuery::DescribeConnectionRequest& request = event.Request;
+ const TString scope = event.Scope;
+ const TString user = event.User;
const TString connectionId = request.connection_id();
- const TString token = ev->Get()->Token;
+ const TString token = event.Token;
TPermissions permissions = Config.Proto.GetEnablePermissions()
- ? ev->Get()->Permissions
+ ? event.Permissions
: TPermissions{TPermissions::VIEW_PUBLIC};
if (IsSuperUser(user)) {
permissions.SetAll();
@@ -352,12 +358,14 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvModifyConne
TRequestCountersPtr requestCounters = Counters.Requests[RT_MODIFY_CONNECTION];
requestCounters->InFly->Inc();
- const YandexQuery::ModifyConnectionRequest& request = ev->Get()->Request;
- const TString scope = ev->Get()->Scope;
- const TString user = ev->Get()->User;
- const TString token = ev->Get()->Token;
+ const TEvControlPlaneStorage::TEvModifyConnectionRequest& event = *ev->Get();
+ requestCounters->RequestBytes->Add(event.GetByteSize());
+ const YandexQuery::ModifyConnectionRequest& request = event.Request;
+ const TString scope = event.Scope;
+ const TString user = event.User;
+ const TString token = event.Token;
TPermissions permissions = Config.Proto.GetEnablePermissions()
- ? ev->Get()->Permissions
+ ? event.Permissions
: TPermissions{TPermissions::MANAGE_PUBLIC};
if (IsSuperUser(user)) {
permissions.SetAll();
@@ -527,12 +535,14 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvDeleteConne
TRequestCountersPtr requestCounters = Counters.Requests[RT_DELETE_CONNECTION];
requestCounters->InFly->Inc();
- const YandexQuery::DeleteConnectionRequest& request = ev->Get()->Request;
- const TString scope = ev->Get()->Scope;
- const TString user = ev->Get()->User;
- const TString token = ev->Get()->Token;
+ const TEvControlPlaneStorage::TEvDeleteConnectionRequest& event = *ev->Get();
+ requestCounters->RequestBytes->Add(event.GetByteSize());
+ const YandexQuery::DeleteConnectionRequest& request = event.Request;
+ const TString scope = event.Scope;
+ const TString user = event.User;
+ const TString token = event.Token;
TPermissions permissions = Config.Proto.GetEnablePermissions()
- ? ev->Get()->Permissions
+ ? event.Permissions
: TPermissions{TPermissions::MANAGE_PUBLIC};
if (IsSuperUser(user)) {
permissions.SetAll();
diff --git a/ydb/core/yq/libs/control_plane_storage/ydb_control_plane_storage_impl.h b/ydb/core/yq/libs/control_plane_storage/ydb_control_plane_storage_impl.h
index c7ecc7ed963..c5fa4d318b6 100644
--- a/ydb/core/yq/libs/control_plane_storage/ydb_control_plane_storage_impl.h
+++ b/ydb/core/yq/libs/control_plane_storage/ydb_control_plane_storage_impl.h
@@ -634,10 +634,12 @@ private:
}
const auto& request = ev->Get()->Request;
+ size_t responseByteSize = 0;
if (issues) {
CPS_LOG_AS_D(*actorSystem, name << ": " << request.DebugString() << " error: " << internalIssues.ToString());
auto event = std::make_unique<ResponseEvent>(issues);
event->DebugInfo = debugInfo;
+ responseByteSize = event->GetByteSize();
actorSystem->Send(new IEventHandle(ev->Sender, self, event.release(), 0, ev->Cookie));
requestCounters->Error->Inc();
for (const auto& issue : issues) {
@@ -650,10 +652,12 @@ private:
CPS_LOG_AS_T(*actorSystem, name << ": " << request.DebugString() << " success");
auto event = std::make_unique<ResponseEvent>(result);
event->DebugInfo = debugInfo;
+ responseByteSize = event->GetByteSize();
actorSystem->Send(new IEventHandle(ev->Sender, self, event.release(), 0, ev->Cookie));
requestCounters->Ok->Inc();
}
requestCounters->InFly->Dec();
+ requestCounters->ResponseBytes->Add(responseByteSize);
TDuration delta = TInstant::Now() - startTime;
requestCounters->LatencyMs->Collect(delta.MilliSeconds());
return MakeFuture(!issues);
@@ -705,10 +709,12 @@ private:
}
const auto& request = ev->Get()->Request;
+ size_t responseByteSize = 0;
if (issues) {
CPS_LOG_AS_D(*actorSystem, name << ": " << request.DebugString() << " error: " << internalIssues.ToString());
auto event = std::make_unique<ResponseEvent>(issues);
event->DebugInfo = debugInfo;
+ responseByteSize = event->GetByteSize();
actorSystem->Send(new IEventHandle(ev->Sender, self, event.release(), 0, ev->Cookie));
requestCounters->Error->Inc();
for (const auto& issue : issues) {
@@ -721,10 +727,12 @@ private:
CPS_LOG_AS_T(*actorSystem, name << ": " << request.DebugString() << " success");
auto event = std::make_unique<ResponseEvent>(result, auditDetails);
event->DebugInfo = debugInfo;
+ responseByteSize = event->GetByteSize();
actorSystem->Send(new IEventHandle(ev->Sender, self, event.release(), 0, ev->Cookie));
requestCounters->Ok->Inc();
}
requestCounters->InFly->Dec();
+ requestCounters->ResponseBytes->Add(responseByteSize);
TDuration delta = TInstant::Now() - startTime;
requestCounters->LatencyMs->Collect(delta.MilliSeconds());
return MakeFuture(!issues);
@@ -771,10 +779,12 @@ private:
internalIssues.AddIssue(internalIssue);
}
+ size_t responseByteSize = 0;
if (issues) {
CPS_LOG_AS_D(*actorSystem, name << ": error: " << internalIssues.ToString());
- auto event = std::unique_ptr<ResponseEvent>(new ResponseEvent(issues));
+ std::unique_ptr<ResponseEvent> event(new ResponseEvent(issues));
event->DebugInfo = debugInfo;
+ responseByteSize = event->GetByteSize();
actorSystem->Send(new IEventHandle(ev->Sender, self, event.release(), 0, ev->Cookie));
requestCounters->Error->Inc();
for (const auto& issue : issues) {
@@ -785,12 +795,14 @@ private:
}
} else {
CPS_LOG_AS_T(*actorSystem, name << ": success");
- auto event = std::unique_ptr<ResponseEvent>(new ResponseEvent(std::make_from_tuple<ResponseEvent>(result)));
+ std::unique_ptr<ResponseEvent> event(new ResponseEvent(std::make_from_tuple<ResponseEvent>(result)));
event->DebugInfo = debugInfo;
+ responseByteSize = event->GetByteSize();
actorSystem->Send(new IEventHandle(ev->Sender, self, event.release(), 0, ev->Cookie));
requestCounters->Ok->Inc();
}
requestCounters->InFly->Dec();
+ requestCounters->ResponseBytes->Add(responseByteSize);
TDuration delta = TInstant::Now() - startTime;
requestCounters->LatencyMs->Collect(delta.MilliSeconds());
return MakeFuture(!issues);
@@ -803,7 +815,9 @@ private:
ui64 cookie,
const TDuration& delta,
const TRequestCountersPtr& requestCounters) {
- Send(sender, new T(issues), 0, cookie);
+ std::unique_ptr<T> event(new T{issues});
+ requestCounters->ResponseBytes->Add(event->GetByteSize());
+ Send(sender, event.release(), 0, cookie);
requestCounters->InFly->Dec();
requestCounters->Error->Inc();
requestCounters->LatencyMs->Collect(delta.MilliSeconds());
diff --git a/ydb/core/yq/libs/control_plane_storage/ydb_control_plane_storage_queries.cpp b/ydb/core/yq/libs/control_plane_storage/ydb_control_plane_storage_queries.cpp
index 3d23f868768..1c6957443aa 100644
--- a/ydb/core/yq/libs/control_plane_storage/ydb_control_plane_storage_queries.cpp
+++ b/ydb/core/yq/libs/control_plane_storage/ydb_control_plane_storage_queries.cpp
@@ -74,6 +74,7 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvCreateQuery
requestCounters->InFly->Inc();
const TEvControlPlaneStorage::TEvCreateQueryRequest& event = *ev->Get();
+ requestCounters->RequestBytes->Add(event.GetByteSize());
const YandexQuery::CreateQueryRequest& request = event.Request;
const TString scope = event.Scope;
const TString user = event.User;
@@ -313,12 +314,14 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvListQueries
TRequestCountersPtr requestCounters = Counters.Requests[RT_LIST_QUERIES];
requestCounters->InFly->Inc();
- const YandexQuery::ListQueriesRequest& request = ev->Get()->Request;
- const TString scope = ev->Get()->Scope;
- const TString user = ev->Get()->User;
- const TString token = ev->Get()->Token;
+ const TEvControlPlaneStorage::TEvListQueriesRequest& event = *ev->Get();
+ requestCounters->RequestBytes->Add(event.GetByteSize());
+ const YandexQuery::ListQueriesRequest& request = event.Request;
+ const TString scope = event.Scope;
+ const TString user = event.User;
+ const TString token = event.Token;
TPermissions permissions = Config.Proto.GetEnablePermissions()
- ? ev->Get()->Permissions
+ ? event.Permissions
: TPermissions{TPermissions::VIEW_PUBLIC};
if (IsSuperUser(user)) {
permissions.SetAll();
@@ -483,12 +486,14 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvDescribeQue
TRequestCountersPtr requestCounters = Counters.Requests[RT_DESCRIBE_QUERY];
requestCounters->InFly->Inc();
- const YandexQuery::DescribeQueryRequest& request = ev->Get()->Request;
- const TString scope = ev->Get()->Scope;
- const TString user = ev->Get()->User;
- const TString token = ev->Get()->Token;
+ const TEvControlPlaneStorage::TEvDescribeQueryRequest& event = *ev->Get();
+ requestCounters->RequestBytes->Add(event.GetByteSize());
+ const YandexQuery::DescribeQueryRequest& request = event.Request;
+ const TString scope = event.Scope;
+ const TString user = event.User;
+ const TString token = event.Token;
TPermissions permissions = Config.Proto.GetEnablePermissions()
- ? ev->Get()->Permissions
+ ? event.Permissions
: TPermissions{TPermissions::VIEW_PUBLIC | TPermissions::VIEW_AST};
if (IsSuperUser(user)) {
permissions.SetAll();
@@ -578,12 +583,14 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvGetQuerySta
TRequestCountersPtr requestCounters = Counters.Requests[RT_GET_QUERY_STATUS];
requestCounters->InFly->Inc();
- const YandexQuery::GetQueryStatusRequest& request = ev->Get()->Request;
- const TString scope = ev->Get()->Scope;
- const TString user = ev->Get()->User;
- const TString token = ev->Get()->Token;
+ const TEvControlPlaneStorage::TEvGetQueryStatusRequest& event = *ev->Get();
+ requestCounters->RequestBytes->Add(event.GetByteSize());
+ const YandexQuery::GetQueryStatusRequest& request = event.Request;
+ const TString scope = event.Scope;
+ const TString user = event.User;
+ const TString token = event.Token;
TPermissions permissions = Config.Proto.GetEnablePermissions()
- ? ev->Get()->Permissions
+ ? event.Permissions
: TPermissions{TPermissions::VIEW_PUBLIC | TPermissions::VIEW_AST};
if (IsSuperUser(user)) {
permissions.SetAll();
@@ -667,18 +674,20 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvModifyQuery
TRequestCountersPtr requestCounters = Counters.Requests[RT_MODIFY_QUERY];
requestCounters->InFly->Inc();
- YandexQuery::ModifyQueryRequest& request = ev->Get()->Request;
- const TString scope = ev->Get()->Scope;
- const TString user = ev->Get()->User;
- const TString token = ev->Get()->Token;
+ TEvControlPlaneStorage::TEvModifyQueryRequest& event = *ev->Get();
+ requestCounters->RequestBytes->Add(event.GetByteSize());
+ YandexQuery::ModifyQueryRequest& request = event.Request;
+ const TString scope = event.Scope;
+ const TString user = event.User;
+ const TString token = event.Token;
TPermissions permissions = Config.Proto.GetEnablePermissions()
- ? ev->Get()->Permissions
+ ? event.Permissions
: TPermissions{TPermissions::QUERY_INVOKE | TPermissions::CONNECTIONS_USE | TPermissions::BINDINGS_USE | TPermissions::MANAGE_PUBLIC};
if (IsSuperUser(user)) {
permissions.SetAll();
}
const TString queryId = request.query_id();
- const int byteSize = ev->Get()->Request.ByteSize();
+ const int byteSize = request.ByteSize();
const int64_t previousRevision = request.previous_revision();
CPS_LOG_T(MakeLogPrefix(scope, user, queryId)
@@ -1037,12 +1046,14 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvDeleteQuery
TRequestCountersPtr requestCounters = Counters.Requests[RT_DELETE_QUERY];
requestCounters->InFly->Inc();
- const YandexQuery::DeleteQueryRequest& request = ev->Get()->Request;
- const TString scope = ev->Get()->Scope;
- const TString user = ev->Get()->User;
- const TString token = ev->Get()->Token;
+ const TEvControlPlaneStorage::TEvDeleteQueryRequest& event = *ev->Get();
+ requestCounters->RequestBytes->Add(event.GetByteSize());
+ const YandexQuery::DeleteQueryRequest& request = event.Request;
+ const TString scope = event.Scope;
+ const TString user = event.User;
+ const TString token = event.Token;
TPermissions permissions = Config.Proto.GetEnablePermissions()
- ? ev->Get()->Permissions
+ ? event.Permissions
: TPermissions{TPermissions::MANAGE_PUBLIC};
if (IsSuperUser(user)) {
permissions.SetAll();
@@ -1150,13 +1161,15 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvControlQuer
TRequestCountersPtr requestCounters = Counters.Requests[RT_CONTROL_QUERY];
requestCounters->InFly->Inc();
- const YandexQuery::ControlQueryRequest& request = ev->Get()->Request;
- const TString scope = ev->Get()->Scope;
- const TString user = ev->Get()->User;
+ const TEvControlPlaneStorage::TEvControlQueryRequest& event = *ev->Get();
+ requestCounters->RequestBytes->Add(event.GetByteSize());
+ const YandexQuery::ControlQueryRequest& request = event.Request;
+ const TString scope = event.Scope;
+ const TString user = event.User;
const TString queryId = request.query_id();
- const TString token = ev->Get()->Token;
+ const TString token = event.Token;
TPermissions permissions = Config.Proto.GetEnablePermissions()
- ? ev->Get()->Permissions
+ ? event.Permissions
: TPermissions{TPermissions::MANAGE_PUBLIC};
if (IsSuperUser(user)) {
permissions.SetAll();
@@ -1378,16 +1391,18 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvGetResultDa
TRequestCountersPtr requestCounters = Counters.Requests[RT_GET_RESULT_DATA];
requestCounters->InFly->Inc();
- const YandexQuery::GetResultDataRequest& request = ev->Get()->Request;
- const TString scope = ev->Get()->Scope;
- const TString user = ev->Get()->User;
+ const TEvControlPlaneStorage::TEvGetResultDataRequest& event = *ev->Get();
+ requestCounters->RequestBytes->Add(event.GetByteSize());
+ const YandexQuery::GetResultDataRequest& request = event.Request;
+ const TString scope = event.Scope;
+ const TString user = event.User;
const int32_t resultSetIndex = request.result_set_index();
const int64_t offset = request.offset();
const TString queryId = request.query_id();
- const int byteSize = ev->Get()->Request.ByteSize();
- const TString token = ev->Get()->Token;
+ const int byteSize = event.Request.ByteSize();
+ const TString token = event.Token;
TPermissions permissions = Config.Proto.GetEnablePermissions()
- ? ev->Get()->Permissions
+ ? event.Permissions
: TPermissions{TPermissions::VIEW_PUBLIC};
if (IsSuperUser(user)) {
permissions.SetAll();
@@ -1516,9 +1531,11 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvListJobsReq
TRequestCountersPtr requestCounters = Counters.Requests[RT_LIST_JOBS_DATA];
requestCounters->InFly->Inc();
- const YandexQuery::ListJobsRequest& request = ev->Get()->Request;
- const TString scope = ev->Get()->Scope;
- const TString user = ev->Get()->User;
+ const TEvControlPlaneStorage::TEvListJobsRequest& event = *ev->Get();
+ requestCounters->RequestBytes->Add(event.GetByteSize());
+ const YandexQuery::ListJobsRequest& request = event.Request;
+ const TString scope = event.Scope;
+ const TString user = event.User;
TString queryId = request.query_id(); // TODO: remove it
if (request.has_filter() && request.filter().query_id()) {
queryId = request.filter().query_id();
@@ -1528,10 +1545,10 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvListJobsReq
const auto jobIdToken = std::move(splittedPageToken.first);
const auto queryIdToken = std::move(splittedPageToken.second);
- const int byteSize = ev->Get()->Request.ByteSize();
- const TString token = ev->Get()->Token;
+ const int byteSize = request.ByteSize();
+ const TString token = event.Token;
TPermissions permissions = Config.Proto.GetEnablePermissions()
- ? ev->Get()->Permissions
+ ? event.Permissions
: TPermissions{TPermissions::VIEW_PUBLIC};
if (IsSuperUser(user)) {
permissions.SetAll();
@@ -1653,18 +1670,20 @@ void TYdbControlPlaneStorageActor::Handle(TEvControlPlaneStorage::TEvDescribeJob
TRequestCountersPtr requestCounters = Counters.Requests[RT_DESCRIBE_JOB];
requestCounters->InFly->Inc();
- const YandexQuery::DescribeJobRequest& request = ev->Get()->Request;
- const TString scope = ev->Get()->Scope;
- const TString user = ev->Get()->User;
+ const TEvControlPlaneStorage::TEvDescribeJobRequest& event = *ev->Get();
+ requestCounters->RequestBytes->Add(event.GetByteSize());
+ const YandexQuery::DescribeJobRequest& request = event.Request;
+ const TString scope = event.Scope;
+ const TString user = event.User;
auto splittedId = SplitId(request.job_id());
const auto jobId = std::move(splittedId.first);
const auto queryId = std::move(splittedId.second);
- const int byteSize = ev->Get()->Request.ByteSize();
- const TString token = ev->Get()->Token;
+ const int byteSize = request.ByteSize();
+ const TString token = event.Token;
TPermissions permissions = Config.Proto.GetEnablePermissions()
- ? ev->Get()->Permissions
+ ? event.Permissions
: TPermissions{TPermissions::VIEW_PUBLIC};
if (IsSuperUser(user)) {
permissions.SetAll();