Class: Gitlab::ResourceUsageLimiter

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab/resource_usage_limiter.rb

Overview

rubocop:disable Gitlab/NamespacedClass – global wrapper over ApplicationRateLimiter

Instance Method Summary collapse

Constructor Details

#initialize(worker_name: nil) ⇒ ResourceUsageLimiter

Returns a new instance of ResourceUsageLimiter.



5
6
7
8
9
# File 'lib/gitlab/resource_usage_limiter.rb', line 5

def initialize(worker_name: nil)
  # Sidekiq runtime should define worker_name
  # Puma runtime can use caller_id in labkit
  @params = { worker_name: worker_name }.merge(Gitlab::ApplicationContext.current)
end

Instance Method Details

#exceeded_limitsObject



11
12
13
14
15
# File 'lib/gitlab/resource_usage_limiter.rb', line 11

def exceeded_limits
  limits.filter do |limit|
    throttled?(limit)
  end
end

#exceeded_limits?Boolean

Returns:

  • (Boolean)


17
18
19
20
21
# File 'lib/gitlab/resource_usage_limiter.rb', line 17

def exceeded_limits?
  limits.filter.any? do |limit|
    throttled?(limit, peek: true)
  end
end