aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksandr Dmitriev <alexd.65536@gmail.com>2022-06-06 19:30:19 +0300
committerAleksandr Dmitriev <alexd.65536@gmail.com>2022-06-06 19:30:19 +0300
commit869e2fbf7ceaebab1b13300f83b51b967bc8a377 (patch)
tree15241de1376b8d6d0bd9bb21cc0fa22a0640f2df
parent12e3b3256a2ea239afa6c3efc9a6302ab9929e89 (diff)
downloadydb-869e2fbf7ceaebab1b13300f83b51b967bc8a377.tar.gz
split serverless sensors into different services KIKIMR-14999
ref:4d1803b2b747b75699697bdf25df3d33c654fc43
-rw-r--r--ydb/core/grpc_services/counters/counters.cpp2
-rw-r--r--ydb/core/grpc_services/counters/proxy_counters.cpp2
-rw-r--r--ydb/core/kqp/counters/kqp_counters.cpp2
-rw-r--r--ydb/core/sys_view/processor/db_counters.cpp39
-rw-r--r--ydb/core/sys_view/processor/processor_impl.cpp7
-rw-r--r--ydb/core/sys_view/processor/processor_impl.h2
-rw-r--r--ydb/core/sys_view/ut_counters.cpp4
-rw-r--r--ydb/core/tablet/tablet_counters_aggregator.cpp2
8 files changed, 39 insertions, 21 deletions
diff --git a/ydb/core/grpc_services/counters/counters.cpp b/ydb/core/grpc_services/counters/counters.cpp
index 8fc8ede9174..b47428c3199 100644
--- a/ydb/core/grpc_services/counters/counters.cpp
+++ b/ydb/core/grpc_services/counters/counters.cpp
@@ -230,7 +230,7 @@ TYdbCounterBlock::TYdbCounterBlock(const NMonitoring::TDynamicCounterPtr& counte
// group for all counters
NMonitoring::TDynamicCounterPtr group;
if (forDatabase) {
- group = internalGroup->GetSubgroup("group", "grpc");
+ group = internalGroup;
} else {
group = GetServiceCounters(counters, "grpc")->GetSubgroup("subsystem", "serverStats");
}
diff --git a/ydb/core/grpc_services/counters/proxy_counters.cpp b/ydb/core/grpc_services/counters/proxy_counters.cpp
index dc5b3e345d5..618d2bcd8ba 100644
--- a/ydb/core/grpc_services/counters/proxy_counters.cpp
+++ b/ydb/core/grpc_services/counters/proxy_counters.cpp
@@ -25,7 +25,7 @@ public:
TGRpcProxyCounters(NMonitoring::TDynamicCounterPtr counters, bool forDatabase) {
NMonitoring::TDynamicCounterPtr group;
if (forDatabase) {
- group = counters->GetSubgroup("group", "grpc");
+ group = counters;
} else {
group = GetServiceCounters(counters, "grpc");
}
diff --git a/ydb/core/kqp/counters/kqp_counters.cpp b/ydb/core/kqp/counters/kqp_counters.cpp
index a752c543882..291450f6f67 100644
--- a/ydb/core/kqp/counters/kqp_counters.cpp
+++ b/ydb/core/kqp/counters/kqp_counters.cpp
@@ -586,7 +586,7 @@ TKqpDbCounters::TKqpDbCounters(const NMonitoring::TDynamicCounterPtr& externalGr
const NMonitoring::TDynamicCounterPtr& internalGroup)
{
Counters = internalGroup;
- KqpGroup = Counters->GetSubgroup("group", "kqp");
+ KqpGroup = Counters;
YdbGroup = externalGroup;
QueryReplayGroup = KqpGroup->GetSubgroup("subsystem", "unified_agent_query_replay");
diff --git a/ydb/core/sys_view/processor/db_counters.cpp b/ydb/core/sys_view/processor/db_counters.cpp
index 62fce6030d1..e2f359e4d61 100644
--- a/ydb/core/sys_view/processor/db_counters.cpp
+++ b/ydb/core/sys_view/processor/db_counters.cpp
@@ -236,20 +236,31 @@ TIntrusivePtr<IDbCounters> TSysViewProcessor::CreateCountersForService(
{
TIntrusivePtr<IDbCounters> result;
switch (service) {
- case NKikimrSysView::KQP:
- result = MakeIntrusive<NKqp::TKqpDbCounters>(ExternalGroup, InternalGroup);
+ case NKikimrSysView::KQP: {
+ auto group = InternalGroups["kqp_serverless"];
+ Y_VERIFY(group);
+ result = MakeIntrusive<NKqp::TKqpDbCounters>(ExternalGroup, group);
break;
+ }
case NKikimrSysView::TABLETS: {
+ auto group = InternalGroups["tablets_serverless"];
+ Y_VERIFY(group);
THolder<TTabletCountersBase> executorCounters(new NTabletFlatExecutor::TExecutorCounters);
- result = CreateTabletDbCounters(ExternalGroup, InternalGroup, std::move(executorCounters));
+ result = CreateTabletDbCounters(ExternalGroup, group, std::move(executorCounters));
break;
}
- case NKikimrSysView::GRPC:
- result = NGRpcService::CreateGRpcDbCounters(ExternalGroup, InternalGroup);
+ case NKikimrSysView::GRPC: {
+ auto group = InternalGroups["grpc_serverless"];
+ Y_VERIFY(group);
+ result = NGRpcService::CreateGRpcDbCounters(ExternalGroup, group);
break;
- case NKikimrSysView::GRPC_PROXY:
- result = NGRpcService::CreateGRpcProxyDbCounters(ExternalGroup, InternalGroup);
+ }
+ case NKikimrSysView::GRPC_PROXY: {
+ auto group = InternalGroups["grpc_serverless"];
+ Y_VERIFY(group);
+ result = NGRpcService::CreateGRpcProxyDbCounters(ExternalGroup, group);
break;
+ }
default:
break;
}
@@ -278,9 +289,11 @@ void TSysViewProcessor::AttachInternalCounters() {
return;
}
- GetServiceCounters(AppData()->Counters, "db", false)
- ->GetSubgroup("database", Database)
- ->RegisterSubgroup("host", "", InternalGroup);
+ for (const auto& [name, group] : InternalGroups) {
+ GetServiceCounters(AppData()->Counters, name, false)
+ ->GetSubgroup("database", Database)
+ ->RegisterSubgroup("host", "", group);
+ }
}
void TSysViewProcessor::DetachExternalCounters() {
@@ -297,8 +310,10 @@ void TSysViewProcessor::DetachInternalCounters() {
return;
}
- GetServiceCounters(AppData()->Counters, "db", false)
- ->RemoveSubgroup("database", Database);
+ for (const auto& [name, group] : InternalGroups) {
+ GetServiceCounters(AppData()->Counters, name, false)
+ ->RemoveSubgroup("database", Database);
+ }
}
void TSysViewProcessor::Handle(TEvSysView::TEvSendDbCountersRequest::TPtr& ev) {
diff --git a/ydb/core/sys_view/processor/processor_impl.cpp b/ydb/core/sys_view/processor/processor_impl.cpp
index 86ddbfd4238..1bdb84ffb0f 100644
--- a/ydb/core/sys_view/processor/processor_impl.cpp
+++ b/ydb/core/sys_view/processor/processor_impl.cpp
@@ -14,8 +14,11 @@ TSysViewProcessor::TSysViewProcessor(const TActorId& tablet, TTabletStorageInfo*
, TotalInterval(TDuration::Seconds(processorMode == EProcessorMode::FAST ? 6 : 60))
, CollectInterval(TDuration::Seconds(processorMode == EProcessorMode::FAST ? 3 : 30))
, ExternalGroup(new NMonitoring::TDynamicCounters)
- , InternalGroup(new NMonitoring::TDynamicCounters)
-{}
+{
+ InternalGroups["kqp_serverless"] = new NMonitoring::TDynamicCounters;
+ InternalGroups["tablets_serverless"] = new NMonitoring::TDynamicCounters;
+ InternalGroups["grpc_serverless"] = new NMonitoring::TDynamicCounters;
+}
void TSysViewProcessor::OnDetach(const TActorContext& ctx) {
DetachExternalCounters();
diff --git a/ydb/core/sys_view/processor/processor_impl.h b/ydb/core/sys_view/processor/processor_impl.h
index 4b49ecbb93c..6db54e815cd 100644
--- a/ydb/core/sys_view/processor/processor_impl.h
+++ b/ydb/core/sys_view/processor/processor_impl.h
@@ -318,7 +318,7 @@ private:
TString DatabaseId;
NMonitoring::TDynamicCounterPtr ExternalGroup;
- NMonitoring::TDynamicCounterPtr InternalGroup;
+ std::unordered_map<TString, NMonitoring::TDynamicCounterPtr> InternalGroups;
using TDbCountersServiceMap = std::unordered_map<NKikimrSysView::EDbCountersService,
NKikimr::NSysView::TDbServiceCounters>;
diff --git a/ydb/core/sys_view/ut_counters.cpp b/ydb/core/sys_view/ut_counters.cpp
index 234f52478f0..7be8de4eed3 100644
--- a/ydb/core/sys_view/ut_counters.cpp
+++ b/ydb/core/sys_view/ut_counters.cpp
@@ -94,7 +94,7 @@ Y_UNIT_TEST_SUITE(DbCounters) {
bool isGood = true;
- auto tabletGroup = databaseGroup->GetSubgroup("host", "")->GetSubgroup("group", "tablets");
+ auto tabletGroup = databaseGroup->GetSubgroup("host", "");
auto datashardGroup = tabletGroup->GetSubgroup("type", "DataShard");
{
auto executorGroup = datashardGroup->GetSubgroup("category", "executor");
@@ -154,7 +154,7 @@ Y_UNIT_TEST_SUITE(DbCounters) {
for (ui32 nodeId = 0; nodeId < env.GetServer().GetRuntime()->GetNodeCount(); ++nodeId) {
auto counters = env.GetServer().GetRuntime()->GetAppData(nodeId).Counters;
- auto dbGroup = GetServiceCounters(counters, "db", false);
+ auto dbGroup = GetServiceCounters(counters, "tablets_serverless", false);
auto databaseGroup1 = dbGroup->FindSubgroup("database", "/Root/Database1");
if (databaseGroup1) {
diff --git a/ydb/core/tablet/tablet_counters_aggregator.cpp b/ydb/core/tablet/tablet_counters_aggregator.cpp
index 1ba4f327989..5456ab37f12 100644
--- a/ydb/core/tablet/tablet_counters_aggregator.cpp
+++ b/ydb/core/tablet/tablet_counters_aggregator.cpp
@@ -1558,7 +1558,7 @@ public:
TTabletCountersForDb(NMonitoring::TDynamicCounterPtr externalGroup,
NMonitoring::TDynamicCounterPtr internalGroup,
THolder<TTabletCountersBase> executorCounters)
- : SolomonCounters(internalGroup->GetSubgroup("group", "tablets"))
+ : SolomonCounters(internalGroup)
, ExecutorCounters(std::move(executorCounters))
, AllTypes(SolomonCounters.Get(), "type", "all")
{