diff options
author | ilnaz <ilnaz@ydb.tech> | 2023-08-28 13:11:01 +0300 |
---|---|---|
committer | ilnaz <ilnaz@ydb.tech> | 2023-08-28 13:38:54 +0300 |
commit | d687e61cce5bbc4cd2c85eb88940f1fc93ee70e8 (patch) | |
tree | 9e594d5eb22f1b44d1d180c1ec83b4b4ccff2c7d | |
parent | 868488ffcc2889488f3af89f740e8abded1b8748 (diff) | |
download | ydb-d687e61cce5bbc4cd2c85eb88940f1fc93ee70e8.tar.gz |
Additional metrics KIKIMR-18893
-rw-r--r-- | ydb/core/protos/counters_datashard.proto | 7 | ||||
-rw-r--r-- | ydb/core/tx/datashard/datashard_change_receiving.cpp | 13 | ||||
-rw-r--r-- | ydb/core/tx/datashard/datashard_change_sending.cpp | 21 |
3 files changed, 33 insertions, 8 deletions
diff --git a/ydb/core/protos/counters_datashard.proto b/ydb/core/protos/counters_datashard.proto index b975270d5c..ea662bf424 100644 --- a/ydb/core/protos/counters_datashard.proto +++ b/ydb/core/protos/counters_datashard.proto @@ -24,6 +24,7 @@ enum ESimpleCounters { COUNTER_READ_ITERATORS_WAITING = 14 [(CounterOpts) = {Name: "ReadIteratorsWaiting"}]; COUNTER_READ_ITERATORS_COUNT = 15 [(CounterOpts) = {Name: "ReadIteratorsCount"}]; COUNTER_READ_ITERATORS_EXHAUSTED_COUNT = 16 [(CounterOpts) = {Name: "ReadIteratorsExhaustedCount"}]; + COUNTER_CHANGE_RECORDS_REQUESTED = 17 [(CounterOpts) = {Name: "ChangeRecordsRequested"}]; } enum ECumulativeCounters { @@ -123,6 +124,12 @@ enum ECumulativeCounters { COUNTER_READ_ITERATOR_ROWS_READ = 93 [(CounterOpts) = {Name: "ReadIteratorRowsRead"}]; COUNTER_READ_ITERATOR_BYTES_READ = 94 [(CounterOpts) = {Name: "ReadIteratorBytesRead"}]; COUNTER_READ_ITERATOR_CANCEL = 95 [(CounterOpts) = {Name: "ReadIteratorCancel"}]; + COUNTER_CHANGE_EXCHANGE_SUCCESSFUL_HANDSHAKES = 96 [(CounterOpts) = {Name: "ChangeExchangeSuccessfulHandshakes"}]; + COUNTER_CHANGE_EXCHANGE_REJECTED_HANDSHAKES = 97 [(CounterOpts) = {Name: "ChangeExchangeRejectedHandshakes"}]; + COUNTER_CHANGE_EXCHANGE_SUCCESSFUL_APPLY = 98 [(CounterOpts) = {Name: "ChangeExchangeSuccessfulApply"}]; + COUNTER_CHANGE_EXCHANGE_REJECTED_APPLY = 99 [(CounterOpts) = {Name: "ChangeExchangeRejectedApply"}]; + COUNTER_CHANGE_RECORDS_SENT = 100 [(CounterOpts) = {Name: "ChangeRecordsSent"}]; + COUNTER_CHANGE_RECORDS_FORGOTTEN = 101 [(CounterOpts) = {Name: "ChangeRecordsForgotten"}]; } enum EPercentileCounters { diff --git a/ydb/core/tx/datashard/datashard_change_receiving.cpp b/ydb/core/tx/datashard/datashard_change_receiving.cpp index 6bc48aee03..6941728d25 100644 --- a/ydb/core/tx/datashard/datashard_change_receiving.cpp +++ b/ydb/core/tx/datashard/datashard_change_receiving.cpp @@ -101,6 +101,12 @@ public: void Complete(const TActorContext& ctx) override { for (auto& [sender, status] : Statuses) { + if (status->Record.GetStatus() == NKikimrChangeExchange::TEvStatus::STATUS_OK) { + Self->IncCounter(COUNTER_CHANGE_EXCHANGE_SUCCESSFUL_HANDSHAKES); + } else { + Self->IncCounter(COUNTER_CHANGE_EXCHANGE_REJECTED_HANDSHAKES); + } + ctx.Send(sender, status.Release()); } } @@ -385,6 +391,13 @@ public: void Complete(const TActorContext& ctx) override { Y_VERIFY(Status); + + if (Status->Record.GetStatus() == NKikimrChangeExchange::TEvStatus::STATUS_OK) { + Self->IncCounter(COUNTER_CHANGE_EXCHANGE_SUCCESSFUL_APPLY); + } else { + Self->IncCounter(COUNTER_CHANGE_EXCHANGE_REJECTED_APPLY); + } + ctx.Send(Ev->Sender, Status.Release()); } diff --git a/ydb/core/tx/datashard/datashard_change_sending.cpp b/ydb/core/tx/datashard/datashard_change_sending.cpp index aeac9bc5a6..0b37d1a90d 100644 --- a/ydb/core/tx/datashard/datashard_change_sending.cpp +++ b/ydb/core/tx/datashard/datashard_change_sending.cpp @@ -1,9 +1,9 @@ #include "datashard_impl.h" +#include <util/generic/algorithm.h> #include <util/generic/size_literals.h> -namespace NKikimr { -namespace NDataShard { +namespace NKikimr::NDataShard { using namespace NTabletFlatExecutor; @@ -230,10 +230,9 @@ public: ctx.Send(to, new TEvChangeExchange::TEvForgetRecords(std::move(records))); } - size_t left = 0; - for (const auto& [_, records] : Self->ChangeRecordsRequested) { - left += records.size(); - } + size_t left = Accumulate(Self->ChangeRecordsRequested, (size_t)0, [](size_t sum, const auto& kv) { + return sum + kv.second.size(); + }); LOG_INFO_S(ctx, NKikimrServices::TX_DATASHARD, "TTxRequestChangeRecords Complete" << ": sent# " << sent @@ -241,6 +240,10 @@ public: << ", left# " << left << ", at tablet# " << Self->TabletID()); + Self->SetCounter(COUNTER_CHANGE_RECORDS_REQUESTED, left); + Self->IncCounter(COUNTER_CHANGE_RECORDS_SENT, sent); + Self->IncCounter(COUNTER_CHANGE_RECORDS_FORGOTTEN, forgotten); + if (left) { Self->Execute(new TTxRequestChangeRecords(Self), ctx); } else { @@ -385,6 +388,9 @@ private: /// Request void TDataShard::Handle(TEvChangeExchange::TEvRequestRecords::TPtr& ev, const TActorContext& ctx) { ChangeRecordsRequested[ev->Sender].insert(ev->Get()->Records.begin(), ev->Get()->Records.end()); + SetCounter(COUNTER_CHANGE_QUEUE_SIZE, Accumulate(ChangeRecordsRequested, (size_t)0, [](size_t sum, const auto& kv) { + return sum + kv.second.size(); + })); ScheduleRequestChangeRecords(ctx); } @@ -421,5 +427,4 @@ void TDataShard::Handle(TEvChangeExchange::TEvSplitAck::TPtr&, const TActorConte Execute(new TTxChangeExchangeSplitAck(this), ctx); } -} // NDataShard -} // NKikimr +} |