Skip to content

Commit acce3e0

Browse files
pixccspuchin
authored andcommitted
24-3: Add sensors to Node Broker (ydb-platform#8091) (ydb-platform#8311)
1 parent 7104871 commit acce3e0

11 files changed

+111
-9
lines changed

ydb/core/mind/node_broker.cpp

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
#include <ydb/core/base/nameservice.h>
88
#include <ydb/core/base/path.h>
99
#include <ydb/core/cms/console/config_helpers.h>
10+
#include <ydb/core/protos/counters_node_broker.pb.h>
1011
#include <ydb/core/protos/node_broker.pb.h>
12+
#include <ydb/core/tablet/tablet_counters_protobuf.h>
1113
#include <ydb/core/tablet_flat/tablet_flat_executed.h>
1214
#include <ydb/core/tx/scheme_cache/scheme_cache.h>
1315

@@ -66,6 +68,7 @@ void TNodeBroker::OnActivateExecutor(const TActorContext &ctx)
6668

6769
EnableStableNodeNames = appData->FeatureFlags.GetEnableStableNodeNames();
6870

71+
Executor()->RegisterExternalTabletCounters(TabletCountersPtr);
6972
ClearState();
7073

7174
ProcessTx(CreateTxInitScheme(), ctx);
@@ -296,6 +299,7 @@ void TNodeBroker::ProcessListNodesRequest(TEvNodeBroker::TEvListNodes::TPtr &ev)
296299
if (version != Epoch.Version)
297300
resp->PreSerializedData = EpochCache;
298301

302+
TabletCounters->Percentile()[COUNTER_LIST_NODES_BYTES].IncrementFor(resp->GetCachedByteSize());
299303
LOG_TRACE_S(TActorContext::AsActorContext(), NKikimrServices::NODE_BROKER,
300304
"Send TEvNodesInfo for epoch " << Epoch.ToString());
301305

@@ -427,6 +431,7 @@ void TNodeBroker::PrepareEpochCache()
427431
FillNodeInfo(entry.second, *info.AddExpiredNodes());
428432

429433
Y_PROTOBUF_SUPPRESS_NODISCARD info.SerializeToString(&EpochCache);
434+
TabletCounters->Simple()[COUNTER_EPOCH_SIZE_BYTES].Set(EpochCache.Size());
430435
}
431436

432437
void TNodeBroker::AddNodeToEpochCache(const TNodeInfo &node)
@@ -441,6 +446,7 @@ void TNodeBroker::AddNodeToEpochCache(const TNodeInfo &node)
441446
Y_PROTOBUF_SUPPRESS_NODISCARD info.SerializeToString(&delta);
442447

443448
EpochCache += delta;
449+
TabletCounters->Simple()[COUNTER_EPOCH_SIZE_BYTES].Set(EpochCache.Size());
444450
}
445451

446452
void TNodeBroker::SubscribeForConfigUpdates(const TActorContext &ctx)
@@ -822,6 +828,7 @@ void TNodeBroker::Handle(TEvConsole::TEvReplaceConfigSubscriptionsResponse::TPtr
822828
void TNodeBroker::Handle(TEvNodeBroker::TEvListNodes::TPtr &ev,
823829
const TActorContext &)
824830
{
831+
TabletCounters->Cumulative()[COUNTER_LIST_NODES_REQUESTS].Increment(1);
825832
auto &rec = ev->Get()->Record;
826833

827834
ui64 epoch = rec.GetMinEpoch();
@@ -836,6 +843,7 @@ void TNodeBroker::Handle(TEvNodeBroker::TEvListNodes::TPtr &ev,
836843
void TNodeBroker::Handle(TEvNodeBroker::TEvResolveNode::TPtr &ev,
837844
const TActorContext &ctx)
838845
{
846+
TabletCounters->Cumulative()[COUNTER_RESOLVE_NODE_REQUESTS].Increment(1);
839847
ui32 nodeId = ev->Get()->Record.GetNodeId();
840848
TAutoPtr<TEvNodeBroker::TEvResolvedNode> resp = new TEvNodeBroker::TEvResolvedNode;
841849

@@ -859,6 +867,7 @@ void TNodeBroker::Handle(TEvNodeBroker::TEvRegistrationRequest::TPtr &ev,
859867
{
860868
LOG_TRACE_S(ctx, NKikimrServices::NODE_BROKER, "Handle TEvNodeBroker::TEvRegistrationRequest"
861869
<< ": request# " << ev->Get()->Record.ShortDebugString());
870+
TabletCounters->Cumulative()[COUNTER_REGISTRATION_REQUESTS].Increment(1);
862871

863872
class TResolveTenantActor : public TActorBootstrapped<TResolveTenantActor> {
864873
TEvNodeBroker::TEvRegistrationRequest::TPtr Ev;
@@ -945,6 +954,7 @@ void TNodeBroker::Handle(TEvNodeBroker::TEvRegistrationRequest::TPtr &ev,
945954
void TNodeBroker::Handle(TEvNodeBroker::TEvExtendLeaseRequest::TPtr &ev,
946955
const TActorContext &ctx)
947956
{
957+
TabletCounters->Cumulative()[COUNTER_EXTEND_LEASE_REQUESTS].Increment(1);
948958
ui32 nodeId = ev->Get()->Record.GetNodeId();
949959
ProcessTx(nodeId, CreateTxExtendLease(ev), ctx);
950960
}
@@ -995,6 +1005,23 @@ void TNodeBroker::Handle(TEvPrivate::TEvResolvedRegistrationRequest::TPtr &ev,
9951005
ProcessTx(CreateTxRegisterNode(ev), ctx);
9961006
}
9971007

1008+
TNodeBroker::TNodeBroker(const TActorId &tablet, TTabletStorageInfo *info)
1009+
: TActor(&TThis::StateInit)
1010+
, TTabletExecutedFlat(info, tablet, new NMiniKQL::TMiniKQLFactory)
1011+
, EpochDuration(TDuration::Hours(1))
1012+
, ConfigSubscriptionId(0)
1013+
, StableNodeNamePrefix("slot-")
1014+
, TxProcessor(new TTxProcessor(*this, "root", NKikimrServices::NODE_BROKER))
1015+
{
1016+
TabletCountersPtr.Reset(new TProtobufTabletCounters<
1017+
ESimpleCounters_descriptor,
1018+
ECumulativeCounters_descriptor,
1019+
EPercentileCounters_descriptor,
1020+
ETxTypes_descriptor
1021+
>());
1022+
TabletCounters = TabletCountersPtr.Get();
1023+
}
1024+
9981025
IActor *CreateNodeBroker(const TActorId &tablet,
9991026
TTabletStorageInfo *info)
10001027
{

ydb/core/mind/node_broker__extend_lease.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#include "node_broker__scheme.h"
33

44
#include <ydb/core/base/appdata.h>
5+
#include <ydb/core/protos/counters_node_broker.pb.h>
56

67
namespace NKikimr {
78
namespace NNodeBroker {
@@ -17,6 +18,8 @@ class TNodeBroker::TTxExtendLease : public TTransactionBase<TNodeBroker> {
1718
{
1819
}
1920

21+
TTxType GetTxType() const override { return TXTYPE_EXTEND_LEASE; }
22+
2023
bool Error(TStatus::ECode code,
2124
const TString &reason,
2225
const TActorContext &ctx)

ydb/core/mind/node_broker__init_scheme.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
#include "node_broker_impl.h"
22
#include "node_broker__scheme.h"
33

4+
#include <ydb/core/protos/counters_node_broker.pb.h>
5+
46
namespace NKikimr {
57
namespace NNodeBroker {
68

@@ -11,6 +13,8 @@ class TNodeBroker::TTxInitScheme : public TTransactionBase<TNodeBroker> {
1113
{
1214
}
1315

16+
TTxType GetTxType() const override { return TXTYPE_INIT_SCHEME; }
17+
1418
bool Execute(TTransactionContext &txc, const TActorContext &ctx) override
1519
{
1620
LOG_DEBUG(ctx, NKikimrServices::NODE_BROKER, "TTxInitScheme Execute");

ydb/core/mind/node_broker__load_state.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#include "node_broker__scheme.h"
33

44
#include <ydb/core/base/appdata.h>
5+
#include <ydb/core/protos/counters_node_broker.pb.h>
56

67
namespace NKikimr {
78
namespace NNodeBroker {
@@ -13,6 +14,8 @@ class TNodeBroker::TTxLoadState : public TTransactionBase<TNodeBroker> {
1314
{
1415
}
1516

17+
TTxType GetTxType() const override { return TXTYPE_LOAD_STATE; }
18+
1619
bool Execute(TTransactionContext &txc, const TActorContext &ctx) override
1720
{
1821
LOG_DEBUG(ctx, NKikimrServices::NODE_BROKER, "TTxLoadState Execute");

ydb/core/mind/node_broker__register_node.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#include "node_broker__scheme.h"
33

44
#include <ydb/core/base/appdata.h>
5+
#include <ydb/core/protos/counters_node_broker.pb.h>
56

67
namespace NKikimr {
78
namespace NNodeBroker {
@@ -21,6 +22,8 @@ class TNodeBroker::TTxRegisterNode : public TTransactionBase<TNodeBroker> {
2122
{
2223
}
2324

25+
TTxType GetTxType() const override { return TXTYPE_REGISTER_NODE; }
26+
2427
bool Error(TStatus::ECode code,
2528
const TString &reason,
2629
const TActorContext &ctx)

ydb/core/mind/node_broker__update_config.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
#include "node_broker_impl.h"
22
#include "node_broker__scheme.h"
33

4+
#include <ydb/core/protos/counters_node_broker.pb.h>
5+
46
namespace NKikimr {
57
namespace NNodeBroker {
68

@@ -24,6 +26,8 @@ class TNodeBroker::TTxUpdateConfig : public TTransactionBase<TNodeBroker> {
2426
{
2527
}
2628

29+
TTxType GetTxType() const override { return TXTYPE_UPDATE_CONFIG; }
30+
2731
bool ProcessNotification(const TActorContext &ctx)
2832
{
2933
auto &rec = Notification->Get()->Record;

ydb/core/mind/node_broker__update_config_subscription.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
#include "node_broker_impl.h"
22
#include "node_broker__scheme.h"
33

4+
#include <ydb/core/protos/counters_node_broker.pb.h>
5+
46
namespace NKikimr {
57
namespace NNodeBroker {
68

@@ -14,6 +16,8 @@ class TNodeBroker::TTxUpdateConfigSubscription : public TTransactionBase<TNodeBr
1416
{
1517
}
1618

19+
TTxType GetTxType() const override { return TXTYPE_UPDATE_CONFIG_SUBSCRIPTION; }
20+
1721
bool Execute(TTransactionContext &txc,
1822
const TActorContext &ctx) override
1923
{

ydb/core/mind/node_broker__update_epoch.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
#include "node_broker_impl.h"
22
#include "node_broker__scheme.h"
33

4+
#include <ydb/core/protos/counters_node_broker.pb.h>
5+
46
namespace NKikimr {
57
namespace NNodeBroker {
68

@@ -11,6 +13,8 @@ class TNodeBroker::TTxUpdateEpoch : public TTransactionBase<TNodeBroker> {
1113
{
1214
}
1315

16+
TTxType GetTxType() const override { return TXTYPE_UPDATE_EPOCH; }
17+
1418
bool Execute(TTransactionContext &txc, const TActorContext &ctx) override
1519
{
1620
LOG_DEBUG_S(ctx, NKikimrServices::NODE_BROKER, "TTxUpdateEpoch Execute");

ydb/core/mind/node_broker_impl.h

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -341,16 +341,11 @@ class TNodeBroker : public TActor<TNodeBroker>
341341
TSchedulerCookieHolder EpochTimerCookieHolder;
342342
TString EpochCache;
343343

344+
TTabletCountersBase* TabletCounters;
345+
TAutoPtr<TTabletCountersBase> TabletCountersPtr;
346+
344347
public:
345-
TNodeBroker(const TActorId &tablet, TTabletStorageInfo *info)
346-
: TActor(&TThis::StateInit)
347-
, TTabletExecutedFlat(info, tablet, new NMiniKQL::TMiniKQLFactory)
348-
, EpochDuration(TDuration::Hours(1))
349-
, ConfigSubscriptionId(0)
350-
, StableNodeNamePrefix("slot-")
351-
, TxProcessor(new TTxProcessor(*this, "root", NKikimrServices::NODE_BROKER))
352-
{
353-
}
348+
TNodeBroker(const TActorId &tablet, TTabletStorageInfo *info);
354349

355350
static constexpr NKikimrServices::TActivity::EType ActorActivityType()
356351
{
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import "ydb/core/protos/counters.proto";
2+
3+
package NKikimr.NNodeBroker;
4+
5+
option java_package = "ru.yandex.kikimr.proto";
6+
7+
option (NKikimr.TabletTypeName) = "NodeBroker"; // Used as prefix for all counters
8+
9+
enum ESimpleCounters {
10+
COUNTER_EPOCH_SIZE_BYTES = 0 [(CounterOpts) = {Name: "EpochSizeBytes"}];
11+
}
12+
13+
enum ECumulativeCounters {
14+
COUNTER_LIST_NODES_REQUESTS = 0 [(CounterOpts) = {Name: "ListNodesRequests"}];
15+
COUNTER_RESOLVE_NODE_REQUESTS = 1 [(CounterOpts) = {Name: "ResolveNodeRequests"}];
16+
COUNTER_REGISTRATION_REQUESTS = 2 [(CounterOpts) = {Name: "RegistrationRequests"}];
17+
COUNTER_EXTEND_LEASE_REQUESTS = 3 [(CounterOpts) = {Name: "ExtendLeaseRequests"}];
18+
}
19+
20+
enum EPercentileCounters {
21+
COUNTER_LIST_NODES_BYTES = 0 [(CounterOpts) = {
22+
Name: "ListNodesBytes",
23+
Ranges: { Value: 0 Name: "0" }
24+
Ranges: { Value: 128 Name: "128" }
25+
Ranges: { Value: 1024 Name: "1024" }
26+
Ranges: { Value: 2048 Name: "2048" }
27+
Ranges: { Value: 4096 Name: "4096" }
28+
Ranges: { Value: 8192 Name: "8192" }
29+
Ranges: { Value: 16384 Name: "16384" }
30+
Ranges: { Value: 32768 Name: "32768" }
31+
Ranges: { Value: 65536 Name: "65536" }
32+
Ranges: { Value: 131072 Name: "131072" }
33+
Ranges: { Value: 262144 Name: "262144" }
34+
Ranges: { Value: 524288 Name: "524288" }
35+
Ranges: { Value: 1048576 Name: "1048576" }
36+
Ranges: { Value: 2097152 Name: "2097152" }
37+
Ranges: { Value: 4194304 Name: "4194304" }
38+
Ranges: { Value: 8388608 Name: "8388608" }
39+
Ranges: { Value: 16777216 Name: "16777216" }
40+
Ranges: { Value: 33554432 Name: "33554432" }
41+
Ranges: { Value: 67108864 Name: "67108864" }
42+
Ranges: { Value: 134217728 Name: "134217728" }
43+
}];
44+
}
45+
46+
enum ETxTypes {
47+
TXTYPE_EXTEND_LEASE = 0 [(TxTypeOpts) = {Name: "TTxExtendLease"}];
48+
TXTYPE_INIT_SCHEME = 1 [(TxTypeOpts) = {Name: "TTxInitScheme"}];
49+
TXTYPE_LOAD_STATE = 2 [(TxTypeOpts) = {Name: "TTxLoadState"}];
50+
TXTYPE_REGISTER_NODE = 3 [(TxTypeOpts) = {Name: "TTxRegisterNode"}];
51+
TXTYPE_UPDATE_CONFIG = 4 [(TxTypeOpts) = {Name: "TTxUpdateConfig"}];
52+
TXTYPE_UPDATE_CONFIG_SUBSCRIPTION = 5 [(TxTypeOpts) = {Name: "TTxUpdateConfigSubscription"}];
53+
TXTYPE_UPDATE_EPOCH = 6 [(TxTypeOpts) = {Name: "TTxUpdateEpoch"}];
54+
}

ydb/core/protos/ya.make

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ SRCS(
5151
counters_kesus.proto
5252
counters_keyvalue.proto
5353
counters_mediator.proto
54+
counters_node_broker.proto
5455
counters_pq.proto
5556
counters_replication.proto
5657
counters_schemeshard.proto

0 commit comments

Comments
 (0)