summaryrefslogtreecommitdiff
path: root/db/importers/common_metrics/importer.rb
diff options
context:
space:
mode:
Diffstat (limited to 'db/importers/common_metrics/importer.rb')
-rw-r--r--db/importers/common_metrics/importer.rb76
1 files changed, 0 insertions, 76 deletions
diff --git a/db/importers/common_metrics/importer.rb b/db/importers/common_metrics/importer.rb
deleted file mode 100644
index 24149fbbea6..00000000000
--- a/db/importers/common_metrics/importer.rb
+++ /dev/null
@@ -1,76 +0,0 @@
-# frozen_string_literal: true
-
-module Importers
- module CommonMetrics
- class Importer
- MissingQueryId = Class.new(StandardError)
-
- attr_reader :content
-
- def initialize(filename = 'common_metrics.yml')
- @content = YAML.load_file(Rails.root.join('config', 'prometheus', filename))
- end
-
- def execute
- PrometheusMetric.reset_column_information
-
- process_content do |id, attributes|
- find_or_build_metric!(id)
- .update!(**attributes)
- end
- end
-
- private
-
- def process_content(&blk)
- content['panel_groups'].map do |group|
- process_group(group, &blk)
- end
- end
-
- def process_group(group, &blk)
- attributes = {
- group: find_group_title_key(group['group'])
- }
-
- group['panels'].map do |panel|
- process_panel(panel, attributes, &blk)
- end
- end
-
- def process_panel(panel, attributes, &blk)
- attributes = attributes.merge(
- title: panel['title'],
- y_label: panel['y_label'])
-
- panel['metrics'].map do |metric_details|
- process_metric_details(metric_details, attributes, &blk)
- end
- end
-
- def process_metric_details(metric_details, attributes, &blk)
- attributes = attributes.merge(
- legend: metric_details['label'],
- query: metric_details['query_range'],
- unit: metric_details['unit'])
-
- yield(metric_details['id'], attributes)
- end
-
- def find_or_build_metric!(id)
- raise MissingQueryId unless id
-
- PrometheusMetric.common.find_by(identifier: id) ||
- PrometheusMetric.new(common: true, identifier: id)
- end
-
- def find_group_title_key(title)
- PrometheusMetricEnums.groups[find_group_title(title)]
- end
-
- def find_group_title(title)
- PrometheusMetricEnums.group_titles.invert[title]
- end
- end
- end
-end