aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhor911 <hor911@ydb.tech>2023-01-19 18:33:47 +0300
committerhor911 <hor911@ydb.tech>2023-01-19 18:33:47 +0300
commit1463a2c533b85d31bbb69305c40583498fd06f17 (patch)
tree3062b1ff2553a6aeabf3e9ba7032475153692c6e
parent2fab826280393dea3c88baec682fe9b8b7ba1a3a (diff)
downloadydb-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.cpp2
-rw-r--r--ydb/core/yq/libs/control_plane_storage/ydb_control_plane_storage_impl.h66
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];
}
};