Module: Gitlab::Metrics::SliConfig

Defined Under Namespace

Modules: ConfigMethods

Constant Summary collapse

RegisterClass =
Data.define(:klass, :is_runtime_enabled_block) do
  def enabled_class
    klass if is_runtime_enabled_block.call
  end
end

Class Method Summary collapse

Class Method Details

.enabled_slisObject



16
17
18
# File 'lib/gitlab/metrics/sli_config.rb', line 16

def self.enabled_slis
  SliConfig.registered_classes.filter_map(&:enabled_class)
end

.included(base) ⇒ Object



37
38
39
# File 'lib/gitlab/metrics/sli_config.rb', line 37

def self.included(base)
  base.extend(ConfigMethods)
end

.register(register_class) ⇒ Object



20
21
22
23
# File 'lib/gitlab/metrics/sli_config.rb', line 20

def self.register(register_class)
  Gitlab::AppLogger.info "#{self} registering #{register_class.klass}, runtime=#{Gitlab::Runtime.safe_identify}"
  SliConfig.registered_classes << register_class
end

.registered_classesObject



12
13
14
# File 'lib/gitlab/metrics/sli_config.rb', line 12

def self.registered_classes
  @registered_classes ||= Set.new
end