Module: Gitlab::Metrics::Sli

Included in:
Apdex, ErrorRate
Defined in:
lib/gitlab/metrics/sli.rb

Defined Under Namespace

Modules: ClassMethods Classes: Apdex, ErrorRate

Constant Summary collapse

COUNTER_PREFIX =
'gitlab_sli'

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



40
41
42
# File 'lib/gitlab/metrics/sli.rb', line 40

def name
  @name
end

Class Method Details

.included(mod) ⇒ Object



36
37
38
# File 'lib/gitlab/metrics/sli.rb', line 36

def self.included(mod)
  mod.extend(ClassMethods)
end

Instance Method Details

#increment(labels:, increment_numerator:) ⇒ Object



56
57
58
59
# File 'lib/gitlab/metrics/sli.rb', line 56

def increment(labels:, increment_numerator:)
  total_counter.increment(labels)
  numerator_counter.increment(labels) if increment_numerator
end

#initialize(name) ⇒ Object



42
43
44
45
# File 'lib/gitlab/metrics/sli.rb', line 42

def initialize(name)
  @name = name
  @initialized_with_combinations = false
end

#initialize_counters(possible_label_combinations) ⇒ Object



47
48
49
50
51
52
53
54
# File 'lib/gitlab/metrics/sli.rb', line 47

def initialize_counters(possible_label_combinations)
  # This module is effectively an abstract class
  @initialized_with_combinations = possible_label_combinations.any? # rubocop:disable Gitlab/ModuleWithInstanceVariables
  possible_label_combinations.each do |label_combination|
    total_counter.get(label_combination)
    numerator_counter.get(label_combination)
  end
end

#initialized?Boolean

Returns:

  • (Boolean)


61
62
63
# File 'lib/gitlab/metrics/sli.rb', line 61

def initialized?
  @initialized_with_combinations
end