diff options
author | hcpp <hcpp@yandex-team.ru> | 2022-03-11 15:24:32 +0300 |
---|---|---|
committer | hcpp <hcpp@yandex-team.ru> | 2022-03-11 15:24:32 +0300 |
commit | f34ac622118b3bdd578730e19d5f33c9740dff1f (patch) | |
tree | 2cd4ad1844cfe2ff9e9f95c722d4f89105ba866c | |
parent | f788a054cb1ff227c2958ac72f600a6617020dde (diff) | |
download | ydb-f34ac622118b3bdd578730e19d5f33c9740dff1f.tar.gz |
request/response bytes metrics has been added YQ-713
ref:3a370942f30fc6fc6e1e6b8fbb74b1e38a1b5ca5
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(); |