diff options
author | hor911 <hor911@ydb.tech> | 2023-01-19 18:33:47 +0300 |
---|---|---|
committer | hor911 <hor911@ydb.tech> | 2023-01-19 18:33:47 +0300 |
commit | 1463a2c533b85d31bbb69305c40583498fd06f17 (patch) | |
tree | 3062b1ff2553a6aeabf3e9ba7032475153692c6e | |
parent | 2fab826280393dea3c88baec682fe9b8b7ba1a3a (diff) | |
download | ydb-1463a2c533b85d31bbb69305c40583498fd06f17.tar.gz |
Create per scope per request sensors on demand
-rw-r--r-- | ydb/core/yq/libs/control_plane_storage/control_plane_storage_counters.cpp | 2 | ||||
-rw-r--r-- | ydb/core/yq/libs/control_plane_storage/ydb_control_plane_storage_impl.h | 66 |
2 files changed, 35 insertions, 33 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 a5739313805..832dc006ba2 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 @@ -39,7 +39,7 @@ NMonitoring::IHistogramCollectorPtr TRequestCommonCounters::GetLatencyHistogramB } TRequestCommonCounters::~TRequestCommonCounters() { - Counters->RemoveSubgroup("request_scope", Name); + Counters->RemoveSubgroup("request_common", Name); } TFinalStatusCounters::TFinalStatusCounters(const ::NMonitoring::TDynamicCounterPtr& counters) 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 cbfea7b0534..82b9e31269c 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 @@ -383,6 +383,30 @@ class TYdbControlPlaneStorageActor : public NActors::TActorBootstrapped<TYdbCont RTS_MAX, }; + static constexpr std::string_view RequestTypeScopeNames[ERequestTypeScope::RTS_MAX] = { + "CreateQuery", + "ListQueries", + "DescribeQuery", + "GetQueryStatus", + "ModifyQuery", + "DeleteQuery", + "ControlQuery", + "GetResultData", + "ListJobs", + "DescribeJob", + "CreateConnection", + "ListConnections", + "DescribeConnection", + "ModifyConnection", + "DeleteConnection", + "CreateBinding", + "ListBindings", + "DescribeBinding", + "ModifyBinding", + "DeleteBinding", + "PingTask" + }; + enum ERequestTypeCommon { RTC_WRITE_RESULT_DATA, RTC_GET_TASK, @@ -509,43 +533,21 @@ class TYdbControlPlaneStorageActor : public NActors::TActorBootstrapped<TYdbCont TMetricsScope key{cloudId, scope}; TMaybe<TScopeCountersPtr> cacheVal; ScopeCounters.Get(key, &cacheVal); - if (cacheVal) { - return (**cacheVal)[type]; - } - auto scopeRequests = std::make_shared<TScopeCounters>(CreateArray<RTS_MAX, TRequestScopeCountersPtr>({ - { MakeIntrusive<TRequestScopeCounters>("CreateQuery") }, - { MakeIntrusive<TRequestScopeCounters>("ListQueries") }, - { MakeIntrusive<TRequestScopeCounters>("DescribeQuery") }, - { MakeIntrusive<TRequestScopeCounters>("GetQueryStatus") }, - { MakeIntrusive<TRequestScopeCounters>("ModifyQuery") }, - { MakeIntrusive<TRequestScopeCounters>("DeleteQuery") }, - { MakeIntrusive<TRequestScopeCounters>("ControlQuery") }, - { MakeIntrusive<TRequestScopeCounters>("GetResultData") }, - { MakeIntrusive<TRequestScopeCounters>("ListJobs") }, - { MakeIntrusive<TRequestScopeCounters>("DescribeJob") }, - { MakeIntrusive<TRequestScopeCounters>("CreateConnection") }, - { MakeIntrusive<TRequestScopeCounters>("ListConnections") }, - { MakeIntrusive<TRequestScopeCounters>("DescribeConnection") }, - { MakeIntrusive<TRequestScopeCounters>("ModifyConnection") }, - { MakeIntrusive<TRequestScopeCounters>("DeleteConnection") }, - { MakeIntrusive<TRequestScopeCounters>("CreateBinding") }, - { MakeIntrusive<TRequestScopeCounters>("ListBindings") }, - { MakeIntrusive<TRequestScopeCounters>("DescribeBinding") }, - { MakeIntrusive<TRequestScopeCounters>("ModifyBinding") }, - { MakeIntrusive<TRequestScopeCounters>("DeleteBinding") }, - { MakeIntrusive<TRequestScopeCounters>("PingTask") }, - })); + if (!cacheVal) { + cacheVal = std::make_shared<TScopeCounters>(); + ScopeCounters.Put(key, cacheVal); + } - auto scopeCounters = (cloudId ? Counters->GetSubgroup("cloud_id", cloudId) : Counters) - ->GetSubgroup("scope", scope); + auto scopeRequests = *cacheVal; - for (auto& request: *scopeRequests) { - request->Register(scopeCounters); + if (!(*scopeRequests)[type]) { + auto scopeCounters = (cloudId ? Counters->GetSubgroup("cloud_id", cloudId) : Counters)->GetSubgroup("scope", scope); + auto requestScoupeCounters = MakeIntrusive<TRequestScopeCounters>(std::string(RequestTypeScopeNames[type])); + requestScoupeCounters->Register(scopeCounters); + (*scopeRequests)[type] = requestScoupeCounters; } - cacheVal = scopeRequests; - ScopeCounters.Put(key, cacheVal); return (*scopeRequests)[type]; } }; |