Skip to content

Commit 2a85906

Browse files
fon-MaXXmrVrAlex
authored andcommitted
praefectus liveness probe fixes
1 parent e3d3add commit 2a85906

File tree

3 files changed

+11
-11
lines changed

3 files changed

+11
-11
lines changed

internal/metrics/stateStorage.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,12 @@ func (s *StateStorage) WorkerStatePercentage(state WorkerState, start int64, end
7777
func (s *StateStorage) CheckIdleFreeze(timeSpentLimit time.Duration) bool {
7878
s.mu.Lock()
7979
defer s.mu.Unlock()
80-
start := time.Now().UnixMilli() - timeSpentLimit.Milliseconds()
80+
now := time.Now().UnixMilli()
8181
for _, timeWorkerState := range s.storage {
8282
if timeWorkerState.state != WorkerStateIdle {
8383
continue
8484
}
85-
if timeWorkerState.timestamp < start && timeWorkerState.secondsInState == nil {
85+
if now-timeWorkerState.timestamp > int64(timeSpentLimit*time.Millisecond) && timeWorkerState.secondsInState == nil {
8686
return true
8787
}
8888
}

internal/workers/liveness.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ func (s *Liveness) Check(request string, reply *bool) error {
4040

4141
now := time.Now().Unix()
4242

43-
upScaleFreeze := lastUpScale == nil || (now-lastUpScale.Timestamp) > int64(s.pool.config.ScaleTick.Seconds())
44-
downScaleFreeze := lastDownScale == nil || (now-lastDownScale.Timestamp) > int64(s.pool.config.DownscaleTick.Seconds())
43+
upScaleFreeze := lastUpScale == nil || (now-lastUpScale.Timestamp) > int64(s.pool.config.ScaleTick)
44+
downScaleFreeze := lastDownScale == nil || (now-lastDownScale.Timestamp) > int64(s.pool.config.DownscaleTick)
4545

4646
workersHasIdleFreeze := s.pool.checkWorkersIdleFreeze(s.pool.config.ProcessIdleSpentLimit)
4747

@@ -52,18 +52,18 @@ func (s *Liveness) Check(request string, reply *bool) error {
5252
"runningProcesses": runningProcesses,
5353
"poolState": s.pool.state != PoolStopped,
5454
"wsStorage": s.pool.wsStorage.Length() > 0,
55-
"upScaleFreeze": upScaleFreeze,
56-
"DownScaleFreeze": downScaleFreeze,
57-
"workerHasFreeze": workersHasIdleFreeze,
55+
"upScaleFreeze": upScaleFreeze == false,
56+
"downScaleFreeze": downScaleFreeze == false,
57+
"workerHasFreeze": workersHasIdleFreeze == false,
5858
"workerIpcCheck": workersIpcCheck,
5959
}).Debug("Liveness result")
6060

6161
*reply = poolActiveWorkers > 0 &&
6262
poolActiveWorkers <= runningWorkersNumber &&
6363
s.pool.state != PoolStopped &&
6464
s.pool.wsStorage.Length() > -1 &&
65-
!upScaleFreeze &&
66-
!downScaleFreeze &&
65+
upScaleFreeze == false &&
66+
downScaleFreeze == false &&
6767
workersHasIdleFreeze == false &&
6868
workersIpcCheck
6969

internal/workers/scaler.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ func (p *ScalePool) tryDownscaleWorkers() {
6868
}
6969
p.lastDownScale = &config.LastRunSeconds{Timestamp: time.Now().Unix()}
7070
workerPercentage, activeWorkers, idleWorkers := p.processIdleWorkers()
71-
if workerPercentage == 0 || idleWorkers == nil {
72-
log.Panic("processIdleWorkers inappropriate result on active pool")
71+
if workerPercentage == 0 && idleWorkers == nil {
72+
log.Warning("processIdleWorkers inappropriate result on active pool")
7373
return
7474
}
7575

0 commit comments

Comments
 (0)