aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhor911 <hor911@ydb.tech>2023-12-07 12:19:24 +0300
committerhor911 <hor911@ydb.tech>2023-12-07 13:22:03 +0300
commit486a2e0697f435e92b4e37feca8d99765df34fa1 (patch)
tree402eab74fe11f86fda7e91c52a8a2d806d100d01
parent9a6139f092a89bfc1685550d6560c4f79997eae2 (diff)
downloadydb-486a2e0697f435e92b4e37feca8d99765df34fa1.tar.gz
Ignore zero (empty) metrics in aggregated stats
-rw-r--r--ydb/core/kqp/executer_actor/kqp_executer_stats.cpp28
1 files changed, 16 insertions, 12 deletions
diff --git a/ydb/core/kqp/executer_actor/kqp_executer_stats.cpp b/ydb/core/kqp/executer_actor/kqp_executer_stats.cpp
index 55393ba34da..514ec903d30 100644
--- a/ydb/core/kqp/executer_actor/kqp_executer_stats.cpp
+++ b/ydb/core/kqp/executer_actor/kqp_executer_stats.cpp
@@ -168,14 +168,16 @@ TProgressStatEntry operator - (const TProgressStatEntry& l, const TProgressStatE
}
void UpdateAggr(NDqProto::TDqStatsAggr* aggr, ui64 value) noexcept {
- if (aggr->GetMin() == 0) {
- aggr->SetMin(value);
- } else {
- aggr->SetMin(std::min(aggr->GetMin(), value));
+ if (value) {
+ if (aggr->GetMin() == 0) {
+ aggr->SetMin(value);
+ } else {
+ aggr->SetMin(std::min(aggr->GetMin(), value));
+ }
+ aggr->SetMax(std::max(aggr->GetMax(), value));
+ aggr->SetSum(aggr->GetSum() + value);
+ aggr->SetCnt(aggr->GetCnt() + 1);
}
- aggr->SetMax(std::max(aggr->GetMax(), value));
- aggr->SetSum(aggr->GetSum() + value);
- aggr->SetCnt(aggr->GetCnt() + 1);
}
struct TAsyncGroupStat {
@@ -222,12 +224,14 @@ void UpdateAsyncAggr(NDqProto::TDqAsyncStatsAggr& asyncAggr, const NDqProto::TDq
}
void UpdateMinMax(NDqProto::TDqStatsMinMax* minMax, ui64 value) noexcept {
- if (minMax->GetMin() == 0) {
- minMax->SetMin(value);
- } else {
- minMax->SetMin(std::min(minMax->GetMin(), value));
+ if (value) {
+ if (minMax->GetMin() == 0) {
+ minMax->SetMin(value);
+ } else {
+ minMax->SetMin(std::min(minMax->GetMin(), value));
+ }
+ minMax->SetMax(std::max(minMax->GetMax(), value));
}
- minMax->SetMax(std::max(minMax->GetMax(), value));
}
NDqProto::TDqStageStats* GetOrCreateStageStats(const NYql::NDq::TStageId& stageId,