diff options
author | vporyadke <[email protected]> | 2024-01-19 17:40:25 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2024-01-19 17:40:25 +0100 |
commit | 7eb49cbff13f980e7ef44c06bb0dff2c2c9aeb40 (patch) | |
tree | 041aad470d72215e90cbf7c46916d2d1b3476534 | |
parent | 3c087a300d538f6485832bae240ba0b74629156d (diff) |
add sensors for metadata cache KIKIMR-20775 (#1104)
-rw-r--r-- | ydb/core/driver_lib/run/kikimr_services_initializers.cpp | 2 | ||||
-rw-r--r-- | ydb/core/grpc_services/db_metadata_cache.h | 16 | ||||
-rw-r--r-- | ydb/core/testlib/test_client.cpp | 2 |
3 files changed, 14 insertions, 6 deletions
diff --git a/ydb/core/driver_lib/run/kikimr_services_initializers.cpp b/ydb/core/driver_lib/run/kikimr_services_initializers.cpp index 0e2c3133200..f327d04ad7c 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 fad53bf04b5..f28f3bfe654 100644 --- a/ydb/core/grpc_services/db_metadata_cache.h +++ b/ydb/core/grpc_services/db_metadata_cache.h @@ -4,6 +4,7 @@ #include <ydb/library/actors/core/actor_bootstrapped.h> #include <ydb/library/actors/core/hfunc.h> #include <ydb/core/base/appdata.h> +#include <ydb/core/base/counters.h> #include <ydb/core/base/feature_flags.h> #include <ydb/core/base/domain.h> #include <ydb/core/base/statestorage.h> @@ -44,6 +45,9 @@ private: 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 @@ private: 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<NHealthCheck::TEvSelfCheckResultProto>(); response->Record = *Result; Send(client, response.release()); + Counters->GetCounter(HEALTHCHECK_REQUESTS_ANSWERED_COUNTER, true)->Inc(); } void RefreshCache() { @@ -136,9 +142,11 @@ private: } 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<IActor> CreateDatabaseMetadataCache(const TString& path) { - return std::unique_ptr<IActor>(new TDatabaseMetadataCache(path)); +inline std::unique_ptr<IActor> CreateDatabaseMetadataCache(const TString& path, const ::NMonitoring::TDynamicCounterPtr& counters) { + return std::unique_ptr<IActor>(new TDatabaseMetadataCache(path, counters)); } inline std::optional<TActorId> ResolveActiveDatabaseMetadataCache(const TMap<TActorId, TEvStateStorage::TBoardInfoEntry>& infoEntries) { diff --git a/ydb/core/testlib/test_client.cpp b/ydb/core/testlib/test_client.cpp index 609cedf3184..6ef5ad171ce 100644 --- a/ydb/core/testlib/test_client.cpp +++ b/ydb/core/testlib/test_client.cpp @@ -819,7 +819,7 @@ namespace Tests { } { const auto& appData = Runtime->GetAppData(nodeIdx); - IActor* metadataCache = CreateDatabaseMetadataCache(appData.TenantName).release(); + IActor* metadataCache = CreateDatabaseMetadataCache(appData.TenantName, appData.Counters).release(); TActorId metadataCacheId = Runtime->Register(metadataCache, nodeIdx); Runtime->RegisterService(MakeDatabaseMetadataCacheId(Runtime->GetNodeId(nodeIdx)), metadataCacheId, nodeIdx); } |