Module: Gitlab::Metrics::Sli::ClassMethods

Defined in:
lib/gitlab/metrics/sli.rb

Constant Summary collapse

INITIALIZATION_MUTEX =
Mutex.new

Instance Method Summary collapse

Instance Method Details

#[](name) ⇒ Object



11
12
13
# File 'lib/gitlab/metrics/sli.rb', line 11

def [](name)
  known_slis[name] || initialize_sli(name, [])
end

#initialize_sli(name, possible_label_combinations) ⇒ Object



15
16
17
18
19
20
21
22
23
# File 'lib/gitlab/metrics/sli.rb', line 15

def initialize_sli(name, possible_label_combinations)
  INITIALIZATION_MUTEX.synchronize do
    next known_slis[name] if initialized?(name)

    sli = new(name)
    sli.initialize_counters(possible_label_combinations)
    known_slis[name] = sli
  end
end

#initialized?(name) ⇒ Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/gitlab/metrics/sli.rb', line 25

def initialized?(name)
  known_slis.key?(name) && known_slis[name].initialized?
end