aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorilnaz <ilnaz@ydb.tech>2023-08-28 13:11:01 +0300
committerilnaz <ilnaz@ydb.tech>2023-08-28 13:38:54 +0300
commitd687e61cce5bbc4cd2c85eb88940f1fc93ee70e8 (patch)
tree9e594d5eb22f1b44d1d180c1ec83b4b4ccff2c7d
parent868488ffcc2889488f3af89f740e8abded1b8748 (diff)
downloadydb-d687e61cce5bbc4cd2c85eb88940f1fc93ee70e8.tar.gz
Additional metrics KIKIMR-18893
-rw-r--r--ydb/core/protos/counters_datashard.proto7
-rw-r--r--ydb/core/tx/datashard/datashard_change_receiving.cpp13
-rw-r--r--ydb/core/tx/datashard/datashard_change_sending.cpp21
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
+}