Skip to content

Commit 1f83015

Browse files
vporyadkeMrLolthe1st
authored andcommitted
periodically update *all* metrics (ydb-platform#4446)
1 parent 9944116 commit 1f83015

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

ydb/core/tablet/tablet_metrics.cpp

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ bool TResourceMetricsSendState::FillChanged(TResourceMetricsValues& src, NKikimr
149149
} else if (force && src.CPU.IsValueObsolete(now)) {
150150
src.CPU.Set(0, now);
151151
metrics.SetCPU(0);
152+
LevelCPU = 0;
152153
have = true;
153154
}
154155

@@ -163,6 +164,7 @@ bool TResourceMetricsSendState::FillChanged(TResourceMetricsValues& src, NKikimr
163164
} else if (force && src.Memory.IsValueObsolete(now)) {
164165
src.Memory.Set(0);
165166
metrics.SetMemory(0);
167+
LevelMemory = 0;
166168
have = true;
167169
}
168170

@@ -177,6 +179,7 @@ bool TResourceMetricsSendState::FillChanged(TResourceMetricsValues& src, NKikimr
177179
} else if (force && src.Network.IsValueObsolete(now)) {
178180
src.Network.Set(0, now);
179181
metrics.SetNetwork(0);
182+
LevelNetwork = 0;
180183
have = true;
181184
}
182185

@@ -263,15 +266,17 @@ bool TResourceMetricsSendState::FillChanged(TResourceMetricsValues& src, NKikimr
263266

264267
bool TResourceMetricsSendState::TryUpdate(TResourceMetricsValues& src, const TActorContext& ctx) {
265268
TInstant now = ctx.Now();
266-
TDuration past = now - LastUpdate;
267-
if (past < TDuration::Seconds(1)) {
269+
if (LastAnyUpdate + TDuration::Seconds(1) < now) {
268270
return false; // too soon
269271
}
270272
NKikimrTabletBase::TMetrics values;
271-
bool updated = FillChanged(src, values, now, past > TDuration::Seconds(60));
273+
bool force = LastAllUpdate + TDuration::Seconds(60) < now;
274+
bool updated = FillChanged(src, values, now, force);
272275
if (updated) {
276+
if (force) {
277+
LastAllUpdate = now;
278+
}
273279
ctx.Send(Launcher, new TEvLocal::TEvTabletMetrics(TabletId, FollowerId, values));
274-
LastUpdate = now;
275280
}
276281
return updated;
277282
}

ydb/core/tablet/tablet_metrics.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,8 @@ class TResourceMetricsSendState {
7878
THashMap<std::pair<TChannel, TGroupId>, ui32> LevelWriteThroughput;
7979
THashMap<std::pair<TChannel, TGroupId>, ui32> LevelReadIops;
8080
THashMap<std::pair<TChannel, TGroupId>, ui32> LevelWriteIops;
81-
TInstant LastUpdate;
81+
TInstant LastAllUpdate;
82+
TInstant LastAnyUpdate;
8283
};
8384

8485
class TResourceMetrics : public TResourceMetricsValues, public TResourceMetricsSendState {

0 commit comments

Comments
 (0)