Skip to content

Commit 0ce709a

Browse files
Merge 1ef8733 into a0de26d
2 parents a0de26d + 1ef8733 commit 0ce709a

File tree

5 files changed

+73
-1
lines changed

5 files changed

+73
-1
lines changed

ydb/core/tx/columnshard/columnshard.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,13 @@ void TColumnShard::SwitchToWork(const TActorContext& ctx) {
6161
BackgroundSessionsManager->Start();
6262
ctx.Send(SelfId(), new TEvPrivate::TEvPeriodicWakeup());
6363
NYDBTest::TControllers::GetColumnShardController()->OnSwitchToWork(TabletID());
64+
AFL_VERIFY(!!StartInstant);
65+
CSCounters.Initialization.OnSwitchToWork(TMonotonic::Now() - *StartInstant, TMonotonic::Now() - CreateInstant);
6466
}
6567

6668
void TColumnShard::OnActivateExecutor(const TActorContext& ctx) {
69+
StartInstant = TMonotonic::Now();
70+
CSCounters.Initialization.OnActivateExecutor(TMonotonic::Now() - CreateInstant);
6771
const TLogContextGuard gLogging = NActors::TLogContextBuilder::Build(NKikimrServices::TX_COLUMNSHARD)("tablet_id", TabletID())("self_id", SelfId());
6872
AFL_INFO(NKikimrServices::TX_COLUMNSHARD)("event", "initialize_shard")("step", "OnActivateExecutor");
6973
Executor()->RegisterExternalTabletCounters(TabletCountersPtr.release());

ydb/core/tx/columnshard/columnshard__init.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ namespace NKikimr::NColumnShard {
1919
using namespace NTabletFlatExecutor;
2020

2121
class TTxInit : public TTransactionBase<TColumnShard> {
22+
private:
23+
const TMonotonic Start = TMonotonic::Now();
24+
2225
public:
2326
TTxInit(TColumnShard* self)
2427
: TBase(self)
@@ -250,13 +253,16 @@ bool TTxInit::Execute(TTransactionContext& txc, const TActorContext& ctx) {
250253
}
251254

252255
void TTxInit::Complete(const TActorContext& ctx) {
256+
Self->CSCounters.Initialization.OnTxInitFinished(TMonotonic::Now() - StartInstant);
253257
Self->ProgressTxController->OnTabletInit();
254258
Self->SwitchToWork(ctx);
255259
NYDBTest::TControllers::GetColumnShardController()->OnTabletInitCompleted(*Self);
256260
}
257261

258262
class TTxUpdateSchema : public TTransactionBase<TColumnShard> {
259263
std::vector<NOlap::INormalizerTask::TPtr> NormalizerTasks;
264+
const TMonotonic Start = TMonotonic::Now();
265+
260266
public:
261267
TTxUpdateSchema(TColumnShard* self)
262268
: TBase(self)
@@ -295,6 +301,7 @@ bool TTxUpdateSchema::Execute(TTransactionContext& txc, const TActorContext&) {
295301

296302
void TTxUpdateSchema::Complete(const TActorContext& ctx) {
297303
AFL_INFO(NKikimrServices::TX_COLUMNSHARD)("step", "TTxUpdateSchema.Complete");
304+
Self->CSCounters.Initializer.OnTxUpdateSchemaFinished(TMonotonic::Now() - StartInstant);
298305
if (NormalizerTasks.empty()) {
299306
AFL_VERIFY(Self->NormalizerController.IsNormalizationFinished())("details", Self->NormalizerController.DebugString());
300307
Self->Execute(new TTxInit(Self), ctx);
@@ -360,6 +367,9 @@ void TTxApplyNormalizer::Complete(const TActorContext& ctx) {
360367

361368
/// Create local database on tablet start if none
362369
class TTxInitSchema : public TTransactionBase<TColumnShard> {
370+
private:
371+
const TMonotonic StartInstant = TMonotonic::Now();
372+
363373
public:
364374
TTxInitSchema(TColumnShard* self)
365375
: TBase(self)
@@ -422,6 +432,7 @@ bool TTxInitSchema::Execute(TTransactionContext& txc, const TActorContext&) {
422432
}
423433

424434
void TTxInitSchema::Complete(const TActorContext& ctx) {
435+
Self->CSCounters.Initialization.OnTxInitSchemaFinished(TMonotonic::Now() - StartInstant);
425436
LOG_S_DEBUG("TxInitSchema.Complete at tablet " << Self->TabletID(););
426437
Self->Execute(new TTxUpdateSchema(Self), ctx);
427438
}

ydb/core/tx/columnshard/columnshard_impl.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,8 @@ class TColumnShard
329329
}
330330

331331
private:
332+
const TMonotonic CreateInstant = TMonotonic::Now();
333+
std::optional<TMonotonic> StartInstant;
332334
void OverloadWriteFail(const EOverloadStatus overloadReason, const NEvWrite::TWriteData& writeData, const ui64 cookie, std::unique_ptr<NActors::IEventBase>&& event, const TActorContext& ctx);
333335
EOverloadStatus CheckOverloaded(const ui64 tableId) const;
334336

@@ -420,6 +422,8 @@ class TColumnShard
420422
using TSchemaPreset = TSchemaPreset;
421423
using TTableInfo = TTableInfo;
422424

425+
const TInstant CreateInstant = TMonotonic::Now();
426+
423427
struct TLongTxWriteInfo {
424428
ui64 WriteId;
425429
ui32 WritePartId;

ydb/core/tx/columnshard/counters/columnshard.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ namespace NKikimr::NColumnShard {
88

99
TCSCounters::TCSCounters()
1010
: TBase("CS")
11-
{
11+
, Initialization(*this) {
1212
StartBackgroundCount = TBase::GetDeriviative("StartBackground/Count");
1313
TooEarlyBackgroundCount = TBase::GetDeriviative("TooEarlyBackground/Count");
1414
SetupCompactionCount = TBase::GetDeriviative("SetupCompaction/Count");

ydb/core/tx/columnshard/counters/columnshard.h

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,55 @@ enum class EWriteFailReason {
1616
Overload /* "overload" */
1717
};
1818

19+
class TCSInitialization: public TCommonCountersOwner {
20+
private:
21+
using TBase = TCommonCountersOwner;
22+
23+
const NMonitoring::THistogramPtr HistogramTabletInitializationMs;
24+
const NMonitoring::THistogramPtr HistogramTxInitDurationMs;
25+
const NMonitoring::THistogramPtr HistogramTxUpdateSchemaDurationMs;
26+
const NMonitoring::THistogramPtr HistogramTxInitSchemaDurationMs;
27+
const NMonitoring::THistogramPtr HistogramActivateExecutorFromActivationDurationMs;
28+
const NMonitoring::THistogramPtr HistogramSwitchToWorkFromActivationDurationMs;
29+
const NMonitoring::THistogramPtr HistogramSwitchToWorkFromCreateDurationMs;
30+
31+
public:
32+
33+
void OnTxInitFinished(const TDuration d) const {
34+
HistogramTxInitDurationMs->Collect(d.MilliSeconds());
35+
}
36+
37+
void OnTxUpdateSchemaFinished(const TDuration d) {
38+
HistogramTxUpdateSchemaDurationMs->Collect(d.MilliSeconds());
39+
}
40+
41+
void OnTxInitSchemaFinished(const TDuration d) {
42+
HistogramTxInitSchemaDurationMs->Collect(d.MilliSeconds());
43+
}
44+
45+
void OnActivateExecutor(const TDuration fromCreate) {
46+
HistogramActivateExecutorFromActivationDurationMs->Collect(fromCreate.MilliSeconds());
47+
}
48+
void OnSwitchToWork(const TDuration fromStart, const TDuration fromCreate) {
49+
HistogramSwitchToWorkFromActivationDurationMs->Collect(fromStart.MilliSeconds());
50+
HistogramSwitchToWorkFromCreateDurationMs->Collect(fromCreate.MilliSeconds());
51+
}
52+
53+
TCSInitialization(TCommonCountersOwner& owner)
54+
: TBase(owner, "stage", "initialization")
55+
, HistogramTabletInitializationMs(TBase::GetHistogram("TabletInitializationMs", NMonitoring::ExponentialHistogram(15, 2, 32)))
56+
, HistogramTxInitDurationMs(TBase::GetHistogram("TxInitDurationMs", NMonitoring::ExponentialHistogram(15, 2, 32)))
57+
, HistogramTxUpdateSchemaDurationMs(TBase::GetHistogram("TxInitDurationMs", NMonitoring::ExponentialHistogram(15, 2, 32)))
58+
, HistogramTxInitSchemaDurationMs(TBase::GetHistogram("TxInitSchemaDurationMs", NMonitoring::ExponentialHistogram(15, 2, 32)))
59+
, HistogramActivateExecutorFromActivationDurationMs(
60+
TBase::GetHistogram("ActivateExecutorFromActivationDurationMs", NMonitoring::ExponentialHistogram(15, 2, 32)))
61+
, HistogramSwitchToWorkFromActivationDurationMs(
62+
TBase::GetHistogram("SwitchToWorkFromActivationDurationMs", NMonitoring::ExponentialHistogram(15, 2, 32)))
63+
, HistogramSwitchToWorkFromCreateDurationMs(
64+
TBase::GetHistogram("SwitchToWorkFromCreateDurationMs", NMonitoring::ExponentialHistogram(15, 2, 32))) {
65+
}
66+
};
67+
1968
class TCSCounters: public TCommonCountersOwner {
2069
private:
2170
using TBase = TCommonCountersOwner;
@@ -62,11 +111,15 @@ class TCSCounters: public TCommonCountersOwner {
62111
NMonitoring::THistogramPtr HistogramSuccessWriteMiddle6PutBlobsDurationMs;
63112
NMonitoring::THistogramPtr HistogramFailedWritePutBlobsDurationMs;
64113
NMonitoring::THistogramPtr HistogramWriteTxCompleteDurationMs;
114+
65115
NMonitoring::TDynamicCounters::TCounterPtr WritePutBlobsCount;
66116
NMonitoring::TDynamicCounters::TCounterPtr WriteRequests;
67117
THashMap<EWriteFailReason, NMonitoring::TDynamicCounters::TCounterPtr> FailedWriteRequests;
68118
NMonitoring::TDynamicCounters::TCounterPtr SuccessWriteRequests;
119+
69120
public:
121+
const TCSInitialization Initialization;
122+
70123
void OnStartWriteRequest() const {
71124
WriteRequests->Add(1);
72125
}

0 commit comments

Comments
 (0)