Skip to content

Commit

Permalink
add sensor for metadata cache
Browse files Browse the repository at this point in the history
  • Loading branch information
vporyadke committed Jan 17, 2024
1 parent 427adf7 commit 4ec357b
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 5 deletions.
2 changes: 1 addition & 1 deletion ydb/core/driver_lib/run/kikimr_services_initializers.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
16 changes: 12 additions & 4 deletions ydb/core/grpc_services/db_metadata_cache.h
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down Expand Up @@ -44,6 +45,9 @@ class TDatabaseMetadataCache : public TActorBootstrapped<TDatabaseMetadataCache>
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) {
Expand All @@ -54,12 +58,14 @@ class TDatabaseMetadataCache : public TActorBootstrapped<TDatabaseMetadataCache>
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() {
Expand Down Expand Up @@ -136,9 +142,11 @@ class TDatabaseMetadataCache : public TActorBootstrapped<TDatabaseMetadataCache>
}

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) {
Expand Down Expand Up @@ -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) {
Expand Down

0 comments on commit 4ec357b

Please sign in to comment.