Skip to content

Commit 1506a92

Browse files
authored
Merge 7d022bd into 697d264
2 parents 697d264 + 7d022bd commit 1506a92

File tree

5 files changed

+45
-11
lines changed

5 files changed

+45
-11
lines changed

ydb/core/protos/node_whiteboard.proto

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@ message TNodeStateInfo {
9797
optional uint64 ChangeTime = 4;
9898
optional uint32 OutputQueueSize = 5 [(InsignificantChangeAmount) = 1048576]; // 1Mb
9999
optional EFlag ConnectStatus = 6;
100+
optional uint32 PeerNodeId = 7;
101+
optional int64 ClockSkewUs = 8;
100102
optional uint32 Count = 13; // filled during group count
101103
}
102104

ydb/core/viewer/json_handlers_viewer.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ void InitViewerStorageUsageJsonHandler(TJsonHandlers &handlers) {
204204
}
205205

206206
void InitViewerClusterJsonHandler(TJsonHandlers& handlers) {
207-
handlers.AddHandler("/viewer/cluster", new TJsonHandler<TJsonCluster>(TJsonCluster::GetSwagger()), 4);
207+
handlers.AddHandler("/viewer/cluster", new TJsonHandler<TJsonCluster>(TJsonCluster::GetSwagger()), 5);
208208
}
209209

210210
void InitViewerLabeledCountersJsonHandler(TJsonHandlers &handlers) {
@@ -220,7 +220,7 @@ void InitViewerHiveStatsJsonHandler(TJsonHandlers& handlers) {
220220
}
221221

222222
void InitViewerTenantInfoJsonHandler(TJsonHandlers &handlers) {
223-
handlers.AddHandler("/viewer/tenantinfo", new TJsonHandler<TJsonTenantInfo>(TJsonTenantInfo::GetSwagger()), 2);
223+
handlers.AddHandler("/viewer/tenantinfo", new TJsonHandler<TJsonTenantInfo>(TJsonTenantInfo::GetSwagger()), 3);
224224
}
225225

226226
void InitViewerWhoAmIJsonHandler(TJsonHandlers& handlers) {

ydb/core/viewer/protos/viewer.proto

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,7 @@ message TClusterInfo {
322322
uint32 NodesTotal = 10;
323323
uint32 NodesAlive = 11;
324324
uint32 NumberOfCpus = 20;
325+
uint32 CoresTotal = 24;
325326
double CoresUsed = 21;
326327
double LoadAverage = 22;
327328
repeated NKikimrWhiteboard.TSystemStateInfo.TPoolStats PoolStats = 23;
@@ -358,7 +359,7 @@ message TStorageUsage {
358359
SSD = 2;
359360
}
360361
EType Type = 1;
361-
uint64 Size = 2;
362+
optional uint64 Size = 2;
362363
uint64 Limit = 3;
363364
uint64 SoftQuota = 4;
364365
uint64 HardQuota = 5;
@@ -394,6 +395,7 @@ message TTenant {
394395
Ydb.Cms.DatabaseQuotas DatabaseQuotas = 42;
395396
repeated TStorageUsage TablesStorage = 44;
396397
repeated TStorageUsage DatabaseStorage = 45;
398+
uint32 CoresTotal = 50;
397399
}
398400

399401
message TTenants {

ydb/core/viewer/viewer_cluster.h

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -342,8 +342,10 @@ class TJsonCluster : public TViewerPipeClient {
342342
}
343343

344344
void InitSystemWhiteboardRequest(NKikimrWhiteboard::TEvSystemStateRequest* request) {
345-
//request->AddFieldsRequired(-1);
346-
Y_UNUSED(request);
345+
for (auto field : {1, 2, 4, 5, 6, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 36, 37}) { // node_whiteboard.proto default fields
346+
request->AddFieldsRequired(field);
347+
}
348+
request->AddFieldsRequired(38); // memory stats
347349
}
348350

349351
void InitTabletWhiteboardRequest(NKikimrWhiteboard::TEvTabletStateRequest* request) {
@@ -462,23 +464,40 @@ class TJsonCluster : public TViewerPipeClient {
462464
}
463465
}
464466

467+
struct TMemoryStats {
468+
ui64 Total = 0;
469+
ui64 Limit = 0;
470+
};
471+
472+
std::unordered_set<TString> hostPassed;
473+
std::unordered_map<TString, TMemoryStats> memoryStats;
474+
465475
for (TNode& node : NodeData) {
466476
const NKikimrWhiteboard::TSystemStateInfo& systemState = node.SystemState;
467477
(*ClusterInfo.MutableMapDataCenters())[node.DataCenter]++;
468-
if (systemState.HasNumberOfCpus()) {
478+
if (hostPassed.insert(systemState.GetHost()).second) {
469479
ClusterInfo.SetNumberOfCpus(ClusterInfo.GetNumberOfCpus() + systemState.GetNumberOfCpus());
470-
}
471-
if (systemState.LoadAverageSize() > 0) {
472-
ClusterInfo.SetLoadAverage(ClusterInfo.GetLoadAverage() + systemState.GetLoadAverage(0));
480+
if (systemState.LoadAverageSize() > 0) {
481+
ClusterInfo.SetLoadAverage(ClusterInfo.GetLoadAverage() + systemState.GetLoadAverage(0));
482+
}
473483
}
474484
if (systemState.HasVersion()) {
475485
(*ClusterInfo.MutableMapVersions())[systemState.GetVersion()]++;
476486
}
477487
if (systemState.HasClusterName() && !ClusterInfo.GetName()) {
478488
ClusterInfo.SetName(systemState.GetClusterName());
479489
}
480-
ClusterInfo.SetMemoryTotal(ClusterInfo.GetMemoryTotal() + systemState.GetMemoryLimit());
481490
ClusterInfo.SetMemoryUsed(ClusterInfo.GetMemoryUsed() + systemState.GetMemoryUsed());
491+
if (systemState.HasMemoryStats()) {
492+
TMemoryStats& stats = memoryStats[systemState.GetHost()];
493+
if (systemState.GetMemoryLimit() > 0) {
494+
stats.Limit += systemState.GetMemoryLimit();
495+
} else {
496+
stats.Total = systemState.GetMemoryStats().GetMemTotal();
497+
}
498+
} else {
499+
ClusterInfo.SetMemoryTotal(ClusterInfo.GetMemoryTotal() + systemState.GetMemoryLimit());
500+
}
482501
if (!node.Disconnected && node.SystemState.HasSystemState()) {
483502
ClusterInfo.SetNodesAlive(ClusterInfo.GetNodesAlive() + 1);
484503
}
@@ -508,6 +527,15 @@ class TJsonCluster : public TViewerPipeClient {
508527
targetPoolStat->SetThreads(poolThreads);
509528
}
510529
ClusterInfo.SetCoresUsed(ClusterInfo.GetCoresUsed() + poolStat.GetUsage() * poolStat.GetThreads());
530+
ClusterInfo.SetCoresTotal(ClusterInfo.GetCoresTotal() + poolStat.GetThreads());
531+
}
532+
}
533+
534+
for (const auto& memStats : memoryStats) {
535+
if (memStats.second.Total > 0) {
536+
ClusterInfo.SetMemoryTotal(ClusterInfo.GetMemoryTotal() + memStats.second.Total);
537+
} else {
538+
ClusterInfo.SetMemoryTotal(ClusterInfo.GetMemoryTotal() + memStats.second.Limit);
511539
}
512540
}
513541

ydb/core/viewer/viewer_tenantinfo.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -731,7 +731,8 @@ class TJsonTenantInfo : public TViewerPipeClient {
731731

732732
if (tablesStorageByType.empty() && entry.DomainDescription->Description.HasDiskSpaceUsage()) {
733733
tablesStorageByType[GuessStorageType(entry.DomainDescription->Description)] =
734-
entry.DomainDescription->Description.GetDiskSpaceUsage().GetTables().GetTotalSize();
734+
entry.DomainDescription->Description.GetDiskSpaceUsage().GetTables().GetTotalSize()
735+
+ entry.DomainDescription->Description.GetDiskSpaceUsage().GetTopics().GetDataSize();
735736
}
736737

737738
if (storageQuotasByType.empty()) {
@@ -792,6 +793,7 @@ class TJsonTenantInfo : public TViewerPipeClient {
792793
targetPoolStat->SetThreads(poolThreads);
793794
}
794795
tenant.SetCoresUsed(tenant.GetCoresUsed() + poolStat.GetUsage() * poolStat.GetThreads());
796+
tenant.SetCoresTotal(tenant.GetCoresTotal() + poolStat.GetThreads());
795797
}
796798
if (nodeInfo.HasMemoryUsed()) {
797799
tenant.SetMemoryUsed(tenant.GetMemoryUsed() + nodeInfo.GetMemoryUsed());

0 commit comments

Comments
 (0)