diff options
Diffstat (limited to 'lib/gitlab/prometheus/metric_group.rb')
-rw-r--r-- | lib/gitlab/prometheus/metric_group.rb | 41 |
1 files changed, 13 insertions, 28 deletions
diff --git a/lib/gitlab/prometheus/metric_group.rb b/lib/gitlab/prometheus/metric_group.rb index 0dcd9dc0f36..c3b24dc1fa5 100644 --- a/lib/gitlab/prometheus/metric_group.rb +++ b/lib/gitlab/prometheus/metric_group.rb @@ -1,33 +1,18 @@ -module Gitlab::Prometheus - class MetricGroup - attr_reader :priority, :name - attr_accessor :metrics +module Gitlab + module Prometheus + class MetricGroup + attr_reader :priority, :name + attr_accessor :metrics - def initialize(name, priority, metrics = []) - @name = name - @priority = priority - @metrics = metrics - end - - def self.all - load_groups_from_yaml - end - - def self.load_groups_from_yaml - additional_metrics_raw.map(&method(:group_from_entry)) - end - - def self.group_from_entry(entry) - missing_fields = [:group, :priority, :metrics].select { |key| !entry.has_key?(key) } - raise ParsingError.new("entry missing required fields #{missing_fields}") unless missing_fields.empty? - - group = MetricGroup.new(entry[:group], entry[:priority]) - group.metrics = Metric.metrics_from_list(entry[:metrics]) - group - end + def initialize(name:, priority:, metrics: []) + @name = name + @priority = priority + @metrics = metrics + end - def self.additional_metrics_raw - @additional_metrics_raw ||= YAML.load_file(Rails.root.join('config/additional_metrics.yml'))&.map(&:deep_symbolize_keys).freeze + def self.all + AdditionalMetricsParser.load_groups_from_yaml + end end end end |