From 4ec357b419efe15d371d22fd9127bc2677519e7d Mon Sep 17 00:00:00 2001 From: Alexander Zalyalov Date: Tue, 16 Jan 2024 17:47:46 +0000 Subject: [PATCH] add sensor for metadata cache --- .../run/kikimr_services_initializers.cpp | 2 +- ydb/core/grpc_services/db_metadata_cache.h | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/ydb/core/driver_lib/run/kikimr_services_initializers.cpp b/ydb/core/driver_lib/run/kikimr_services_initializers.cpp index 0e2c31332004..f327d04ad7c5 100644 --- a/ydb/core/driver_lib/run/kikimr_services_initializers.cpp +++ b/ydb/core/driver_lib/run/kikimr_services_initializers.cpp @@ -2677,7 +2677,7 @@ TDatabaseMetadataCacheInitializer::TDatabaseMetadataCacheInitializer(const TKiki void TDatabaseMetadataCacheInitializer::InitializeServices(NActors::TActorSystemSetup* setup, const NKikimr::TAppData* appData) { setup->LocalServices.emplace_back( MakeDatabaseMetadataCacheId(NodeId), - TActorSetupCmd(CreateDatabaseMetadataCache(appData->TenantName), TMailboxType::HTSwap, appData->UserPoolId)); + TActorSetupCmd(CreateDatabaseMetadataCache(appData->TenantName, appData->Counters), TMailboxType::HTSwap, appData->UserPoolId)); } TGraphServiceInitializer::TGraphServiceInitializer(const TKikimrRunConfig& runConfig) diff --git a/ydb/core/grpc_services/db_metadata_cache.h b/ydb/core/grpc_services/db_metadata_cache.h index fad53bf04b5b..f28f3bfe6546 100644 --- a/ydb/core/grpc_services/db_metadata_cache.h +++ b/ydb/core/grpc_services/db_metadata_cache.h @@ -4,6 +4,7 @@ #include #include #include +#include #include #include #include @@ -44,6 +45,9 @@ class TDatabaseMetadataCache : public TActorBootstrapped TActorId PublishActor; TActorId SubscribeActor; bool RequestInProgress = false; + ::NMonitoring::TDynamicCounterPtr Counters; + static const inline TString HEALTHCHECK_REQUESTS_MADE_COUNTER = "DbMetadataCache/HealthCheckRequestsMade"; + static const inline TString HEALTHCHECK_REQUESTS_ANSWERED_COUNTER = "DbMetadataCache/HealthCheckRequestsAnswered"; void SendRequest() { if (RequestInProgress) { @@ -54,12 +58,14 @@ class TDatabaseMetadataCache : public TActorBootstrapped request->Database = Path; request->Request.set_return_verbose_status(true); Send(NHealthCheck::MakeHealthCheckID(), request.release()); + Counters->GetCounter(HEALTHCHECK_REQUESTS_MADE_COUNTER, true)->Inc(); } void Reply(TActorId client) { auto response = std::make_unique(); response->Record = *Result; Send(client, response.release()); + Counters->GetCounter(HEALTHCHECK_REQUESTS_ANSWERED_COUNTER, true)->Inc(); } void RefreshCache() { @@ -136,9 +142,11 @@ class TDatabaseMetadataCache : public TActorBootstrapped } public: - TDatabaseMetadataCache(const TString& path) : Path(path) - , BoardPath(MakeDatabaseMetadataCacheBoardPath(Path)) + TDatabaseMetadataCache(const TString& path, + const ::NMonitoring::TDynamicCounterPtr& counters) : Path(path) + , BoardPath(MakeDatabaseMetadataCacheBoardPath(Path)) { + Counters = GetServiceCounters(counters, "utils")->GetSubgroup("database", path); } static ui32 PickActiveNode(const TBoardInfoEntries& infoEntries) { @@ -223,8 +231,8 @@ inline TActorId MakeDatabaseMetadataCacheId(ui32 nodeId) { return TActorId(nodeId, "METACACHE"); } -inline std::unique_ptr CreateDatabaseMetadataCache(const TString& path) { - return std::unique_ptr(new TDatabaseMetadataCache(path)); +inline std::unique_ptr CreateDatabaseMetadataCache(const TString& path, const ::NMonitoring::TDynamicCounterPtr& counters) { + return std::unique_ptr(new TDatabaseMetadataCache(path, counters)); } inline std::optional ResolveActiveDatabaseMetadataCache(const TMap& infoEntries) {