Class: Gitlab::Memory::Watchdog::MonitorState

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab/memory/watchdog/monitor_state.rb

Defined Under Namespace

Classes: Result

Instance Method Summary collapse

Constructor Details

#initialize(monitor, max_strikes:, monitor_name:) ⇒ MonitorState

Returns a new instance of MonitorState.



26
27
28
29
30
31
# File 'lib/gitlab/memory/watchdog/monitor_state.rb', line 26

def initialize(monitor, max_strikes:, monitor_name:)
  @monitor = monitor
  @max_strikes = max_strikes
  @monitor_name = monitor_name
  @strikes = 0
end

Instance Method Details

#callObject



33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/gitlab/memory/watchdog/monitor_state.rb', line 33

def call
  reset_strikes if strikes_exceeded?

  monitor_result = @monitor.call

  if monitor_result[:threshold_violated]
    issue_strike
  else
    reset_strikes
  end

  build_result(monitor_result)
end