summaryrefslogtreecommitdiff
path: root/db
diff options
context:
space:
mode:
authorRyan Cobb <rcobb@gitlab.com>2019-07-01 14:43:21 -0700
committerRyan Cobb <rcobb@gitlab.com>2019-07-09 17:02:08 -0600
commitab2a8e2ba839c92530838e2766ab6d8aa0228bda (patch)
treeac52ac44cdf1d8eba68538153bb5f54fb69e60bc /db
parent9aad4174e052ba330fdaf4abc0276d8497c7de03 (diff)
downloadgitlab-ce-ab2a8e2ba839c92530838e2766ab6d8aa0228bda.tar.gz
Move importers to lib folder
This moves our metric importers into the lib folder. This will allow them to be autoloaded instead of having to explicitly require them.
Diffstat (limited to 'db')
-rw-r--r--db/importers/common_metrics.rb17
-rw-r--r--db/importers/common_metrics/importer.rb76
-rw-r--r--db/importers/common_metrics/prometheus_metric.rb8
-rw-r--r--db/importers/common_metrics/prometheus_metric_enums.rb36
-rw-r--r--db/importers/common_metrics_importer.rb10
5 files changed, 8 insertions, 139 deletions
diff --git a/db/importers/common_metrics.rb b/db/importers/common_metrics.rb
deleted file mode 100644
index 411d366ef83..00000000000
--- a/db/importers/common_metrics.rb
+++ /dev/null
@@ -1,17 +0,0 @@
-require_relative './common_metrics/importer'
-require_relative './common_metrics/prometheus_metric'
-require_relative './common_metrics/prometheus_metric_enums'
-
-require Rails.root.join('ee', 'db', 'importers', 'common_metrics') if Gitlab.ee?
-
-module Importers
- module CommonMetrics
- end
-
- # Patch to preserve old CommonMetricsImporter api
- module CommonMetricsImporter
- def self.new(*args)
- Importers::CommonMetrics::Importer.new(*args)
- end
- end
-end
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
diff --git a/db/importers/common_metrics/prometheus_metric.rb b/db/importers/common_metrics/prometheus_metric.rb
deleted file mode 100644
index 9149549c750..00000000000
--- a/db/importers/common_metrics/prometheus_metric.rb
+++ /dev/null
@@ -1,8 +0,0 @@
-module Importers
- module CommonMetrics
- class PrometheusMetric < ActiveRecord::Base
- enum group: PrometheusMetricEnums.groups
- scope :common, -> { where(common: true) }
- end
- end
-end
diff --git a/db/importers/common_metrics/prometheus_metric_enums.rb b/db/importers/common_metrics/prometheus_metric_enums.rb
deleted file mode 100644
index 50a1081a629..00000000000
--- a/db/importers/common_metrics/prometheus_metric_enums.rb
+++ /dev/null
@@ -1,36 +0,0 @@
-module Importers
- module CommonMetrics
- module PrometheusMetricEnums
- def self.groups
- {
- # built-in groups
- nginx_ingress_vts: -1,
- ha_proxy: -2,
- aws_elb: -3,
- nginx: -4,
- kubernetes: -5,
- nginx_ingress: -6,
-
- # custom groups
- business: 0,
- response: 1,
- system: 2
- }
- end
-
- def self.group_titles
- {
- business: _('Business metrics (Custom)'),
- response: _('Response metrics (Custom)'),
- system: _('System metrics (Custom)'),
- nginx_ingress_vts: _('Response metrics (NGINX Ingress VTS)'),
- nginx_ingress: _('Response metrics (NGINX Ingress)'),
- ha_proxy: _('Response metrics (HA Proxy)'),
- aws_elb: _('Response metrics (AWS ELB)'),
- nginx: _('Response metrics (NGINX)'),
- kubernetes: _('System metrics (Kubernetes)')
- }
- end
- end
- end
-end
diff --git a/db/importers/common_metrics_importer.rb b/db/importers/common_metrics_importer.rb
index cf5f5e181de..a2e3996a123 100644
--- a/db/importers/common_metrics_importer.rb
+++ b/db/importers/common_metrics_importer.rb
@@ -1,3 +1,9 @@
-# This functionality has been moved to the common_metrics module.
+# This functionality has been moved to the lib/gitlab/importers/common_metrics module.
# This is here only to preserve existing ::Importers::CommonMetricsImporter api
-require_relative './common_metrics'
+module Importers
+ module CommonMetricsImporter
+ def self.new(*args)
+ Gitlab::Importers::CommonMetrics::Importer.new(*args)
+ end
+ end
+end