Class: Gitlab::Memory::Watchdog::Monitor::RssMemoryLimit

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(memory_limit_bytes:) ⇒ RssMemoryLimit

Returns a new instance of RssMemoryLimit.



10
11
12
13
# File 'lib/gitlab/memory/watchdog/monitor/rss_memory_limit.rb', line 10

def initialize(memory_limit_bytes:)
  @memory_limit_bytes = memory_limit_bytes
  init_memory_limit_metrics
end

Instance Attribute Details

#memory_limit_bytesObject (readonly)

Returns the value of attribute memory_limit_bytes.



8
9
10
# File 'lib/gitlab/memory/watchdog/monitor/rss_memory_limit.rb', line 8

def memory_limit_bytes
  @memory_limit_bytes
end

Instance Method Details

#callObject



15
16
17
18
19
20
21
# File 'lib/gitlab/memory/watchdog/monitor/rss_memory_limit.rb', line 15

def call
  worker_rss_bytes = Gitlab::Metrics::System.memory_usage_rss[:total]

  return { threshold_violated: false, payload: {} } if worker_rss_bytes <= memory_limit_bytes

  { threshold_violated: true, payload: payload(worker_rss_bytes, memory_limit_bytes) }
end