aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryuryalekseev <yuryalekseev@yandex-team.com>2023-03-10 09:19:48 +0300
committeryuryalekseev <yuryalekseev@yandex-team.com>2023-03-10 09:19:48 +0300
commit82ad7fa64a7e511763a6f6a0278d4eed1b01b96e (patch)
tree89b3188c3ad1b8e14411aa266925c022f961c460
parent922de8a8677ead7127d26aea97598e786fac2398 (diff)
downloadydb-82ad7fa64a7e511763a6f6a0278d4eed1b01b96e.tar.gz
Add errors count to TKqpReadActor.
-rw-r--r--ydb/core/kqp/runtime/kqp_read_actor.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/ydb/core/kqp/runtime/kqp_read_actor.cpp b/ydb/core/kqp/runtime/kqp_read_actor.cpp
index 101ab5dcdbc..8ab19ba2e9f 100644
--- a/ydb/core/kqp/runtime/kqp_read_actor.cpp
+++ b/ydb/core/kqp/runtime/kqp_read_actor.cpp
@@ -871,17 +871,21 @@ public:
case Ydb::StatusIds::SUCCESS:
break;
case Ydb::StatusIds::OVERLOADED: {
+ ++ErrorsCount;
return RetryRead(id, false);
}
case Ydb::StatusIds::INTERNAL_ERROR: {
+ ++ErrorsCount;
return RetryRead(id);
}
case Ydb::StatusIds::NOT_FOUND: {
+ ++ErrorsCount;
auto shard = Reads[id].Shard;
ResetRead(id);
return ResolveShard(shard);
}
default: {
+ ++ErrorsCount;
NYql::TIssues issues;
NYql::IssuesFromMessage(record.GetStatus().GetIssues(), issues);
return RuntimeError("Read request aborted", NYql::NDqProto::StatusIds::ABORTED, issues);
@@ -918,6 +922,8 @@ public:
void HandleError(TEvPipeCache::TEvDeliveryProblem::TPtr& ev) {
auto& msg = *ev->Get();
+ ++ErrorsCount;
+
TVector<ui32> reads;
reads.swap(ReadIdByTabletId[msg.TabletId]);
for (auto read : reads) {
@@ -1191,6 +1197,8 @@ public:
void FillExtraStats(NDqProto::TDqTaskStats* stats, bool last) override {
if (last) {
+ stats->SetErrorsCount(ErrorsCount);
+
NDqProto::TDqTableStats* tableStats = nullptr;
for (size_t i = 0; i < stats->TablesSize(); ++i) {
auto* table = stats->MutableTables(i);
@@ -1308,6 +1316,8 @@ private:
bool ScanStarted = false;
size_t BufSize = 0;
+ ui32 ErrorsCount = 0;
+
const TActorId ComputeActorId;
const ui64 InputIndex;
const NMiniKQL::TTypeEnvironment& TypeEnv;