summaryrefslogtreecommitdiff
path: root/app/models/analytics/instance_statistics/measurement.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/analytics/instance_statistics/measurement.rb')
-rw-r--r--app/models/analytics/instance_statistics/measurement.rb61
1 files changed, 0 insertions, 61 deletions
diff --git a/app/models/analytics/instance_statistics/measurement.rb b/app/models/analytics/instance_statistics/measurement.rb
deleted file mode 100644
index c8b76e005ef..00000000000
--- a/app/models/analytics/instance_statistics/measurement.rb
+++ /dev/null
@@ -1,61 +0,0 @@
-# frozen_string_literal: true
-
-module Analytics
- module InstanceStatistics
- class Measurement < ApplicationRecord
- EXPERIMENTAL_IDENTIFIERS = %i[pipelines_succeeded pipelines_failed pipelines_canceled pipelines_skipped].freeze
-
- enum identifier: {
- projects: 1,
- users: 2,
- issues: 3,
- merge_requests: 4,
- groups: 5,
- pipelines: 6,
- pipelines_succeeded: 7,
- pipelines_failed: 8,
- pipelines_canceled: 9,
- pipelines_skipped: 10,
- billable_users: 11
- }
-
- validates :recorded_at, :identifier, :count, presence: true
- validates :recorded_at, uniqueness: { scope: :identifier }
-
- scope :order_by_latest, -> { order(recorded_at: :desc) }
- scope :with_identifier, -> (identifier) { where(identifier: identifier) }
- scope :recorded_after, -> (date) { where(self.model.arel_table[:recorded_at].gteq(date)) if date.present? }
- scope :recorded_before, -> (date) { where(self.model.arel_table[:recorded_at].lteq(date)) if date.present? }
-
- def self.identifier_query_mapping
- {
- identifiers[:projects] => -> { Project },
- identifiers[:users] => -> { User },
- identifiers[:issues] => -> { Issue },
- identifiers[:merge_requests] => -> { MergeRequest },
- identifiers[:groups] => -> { Group },
- identifiers[:pipelines] => -> { Ci::Pipeline },
- identifiers[:pipelines_succeeded] => -> { Ci::Pipeline.success },
- identifiers[:pipelines_failed] => -> { Ci::Pipeline.failed },
- identifiers[:pipelines_canceled] => -> { Ci::Pipeline.canceled },
- identifiers[:pipelines_skipped] => -> { Ci::Pipeline.skipped }
- }
- end
-
- # Customized min and max calculation, in some cases using the original scope is too slow.
- def self.identifier_min_max_queries
- {}
- end
-
- def self.measurement_identifier_values
- identifiers.values
- end
-
- def self.find_latest_or_fallback(identifier)
- with_identifier(identifier).order_by_latest.first || identifier_query_mapping[identifiers[identifier]].call
- end
- end
- end
-end
-
-Analytics::InstanceStatistics::Measurement.prepend_if_ee('EE::Analytics::InstanceStatistics::Measurement')