summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvporyadke <[email protected]>2024-01-19 17:40:25 +0100
committerGitHub <[email protected]>2024-01-19 17:40:25 +0100
commit7eb49cbff13f980e7ef44c06bb0dff2c2c9aeb40 (patch)
tree041aad470d72215e90cbf7c46916d2d1b3476534
parent3c087a300d538f6485832bae240ba0b74629156d (diff)
add sensors for metadata cache KIKIMR-20775 (#1104)
-rw-r--r--ydb/core/driver_lib/run/kikimr_services_initializers.cpp2
-rw-r--r--ydb/core/grpc_services/db_metadata_cache.h16
-rw-r--r--ydb/core/testlib/test_client.cpp2
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);
}