@@ -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
264267bool 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}
0 commit comments