Commit 764e56d7 authored by Niko Belokolodov's avatar Niko Belokolodov

Remove obsolete License classes

parent 229b520f
...@@ -11,8 +11,7 @@ time_frame: none ...@@ -11,8 +11,7 @@ time_frame: none
data_source: license data_source: license
instrumentation_class: LicenseMetric instrumentation_class: LicenseMetric
options: options:
attribute: attribute: md5
- md5
data_category: standard data_category: standard
distribution: distribution:
- ee - ee
......
...@@ -12,8 +12,7 @@ data_source: license ...@@ -12,8 +12,7 @@ data_source: license
data_category: subscription data_category: subscription
instrumentation_class: LicenseMetric instrumentation_class: LicenseMetric
options: options:
attribute: attribute: id
- id
distribution: distribution:
- ee - ee
tier: tier:
......
...@@ -12,8 +12,7 @@ data_source: license ...@@ -12,8 +12,7 @@ data_source: license
data_category: subscription data_category: subscription
instrumentation_class: LicenseMetric instrumentation_class: LicenseMetric
options: options:
attribute: attribute: user_count
user_count
distribution: distribution:
- ee - ee
tier: tier:
......
...@@ -12,8 +12,7 @@ data_source: license ...@@ -12,8 +12,7 @@ data_source: license
data_category: subscription data_category: subscription
instrumentation_class: LicenseMetric instrumentation_class: LicenseMetric
options: options:
attribute: attribute: starts_at
- starts_at
distribution: distribution:
- ee - ee
tier: tier:
......
...@@ -12,8 +12,7 @@ time_frame: none ...@@ -12,8 +12,7 @@ time_frame: none
data_source: license data_source: license
instrumentation_class: LicenseMetric instrumentation_class: LicenseMetric
options: options:
attribute: attribute: expires_at
- expires_at
distribution: distribution:
- ee - ee
tier: tier:
......
...@@ -12,8 +12,7 @@ data_source: license ...@@ -12,8 +12,7 @@ data_source: license
data_category: subscription data_category: subscription
instrumentation_class: LicenseMetric instrumentation_class: LicenseMetric
options: options:
attribute: attribute: plan
- plan
distribution: distribution:
- ee - ee
tier: tier:
......
...@@ -12,8 +12,7 @@ data_source: license ...@@ -12,8 +12,7 @@ data_source: license
data_category: subscription data_category: subscription
instrumentation_class: LicenseMetric instrumentation_class: LicenseMetric
options: options:
attribute: attribute: trial
- trial
distribution: distribution:
- ee - ee
tier: tier:
......
...@@ -11,8 +11,7 @@ time_frame: none ...@@ -11,8 +11,7 @@ time_frame: none
data_source: license data_source: license
instrumentation_class: LicenseMetric instrumentation_class: LicenseMetric
options: options:
attribute: attribute: subscription_id
- subsription_id
data_category: standard data_category: standard
distribution: distribution:
- ee - ee
......
...@@ -12,8 +12,7 @@ data_source: database ...@@ -12,8 +12,7 @@ data_source: database
data_category: subscription data_category: subscription
instrumentation_class: LicenseMetric instrumentation_class: LicenseMetric
options: options:
attribute: attribute: trial_ends_on
- trial_ends_on
distribution: distribution:
- ee - ee
tier: tier:
......
...@@ -72,7 +72,7 @@ module EE ...@@ -72,7 +72,7 @@ module EE
def features_usage_data_ee def features_usage_data_ee
{ {
elasticsearch_enabled: alt_usage_data(fallback: nil) { ::Gitlab::CurrentSettings.elasticsearch_search? }, elasticsearch_enabled: alt_usage_data(fallback: nil) { ::Gitlab::CurrentSettings.elasticsearch_search? },
license_trial_ends_on: alt_usage_data(fallback: nil) { add_metric("LicenseMetric", options: { attribute: :trial_ends_on }) }, license_trial_ends_on: add_metric("LicenseMetric", options: { attribute: "trial_ends_on" }),
geo_enabled: alt_usage_data(fallback: nil) { ::Gitlab::Geo.enabled? }, geo_enabled: alt_usage_data(fallback: nil) { ::Gitlab::Geo.enabled? },
user_cap_feature_enabled: add_metric('UserCapSettingEnabledMetric', time_frame: 'none') user_cap_feature_enabled: add_metric('UserCapSettingEnabledMetric', time_frame: 'none')
} }
...@@ -90,7 +90,7 @@ module EE ...@@ -90,7 +90,7 @@ module EE
end end
if license if license
usage_data[:license_md5] = add_metric("LicenseMdFiveMetric") usage_data[:license_md5] = add_metric("LicenseMetric", options: { attribute: 'md5' })
usage_data[:license_id] = license.license_id usage_data[:license_id] = license.license_id
# rubocop: disable UsageData/LargeTable # rubocop: disable UsageData/LargeTable
usage_data[:historical_max_users] = add_metric("HistoricalMaxUsersMetric") usage_data[:historical_max_users] = add_metric("HistoricalMaxUsersMetric")
...@@ -103,7 +103,7 @@ module EE ...@@ -103,7 +103,7 @@ module EE
usage_data[:license_plan] = license.plan usage_data[:license_plan] = license.plan
usage_data[:license_add_ons] = license.add_ons usage_data[:license_add_ons] = license.add_ons
usage_data[:license_trial] = license.trial? usage_data[:license_trial] = license.trial?
usage_data[:license_subscription_id] = alt_usage_data(fallback: nil) { license.subscription_id } usage_data[:license_subscription_id] = license.subscription_id
end end
usage_data usage_data
......
# frozen_string_literal: true
module Gitlab
module Usage
module Metrics
module Instrumentations
class LicenseMdFiveMetric < ::Gitlab::Usage::Metrics::Instrumentations::GenericMetric
value do
::License.current.md5
end
end
end
end
end
end
...@@ -13,7 +13,7 @@ module Gitlab ...@@ -13,7 +13,7 @@ module Gitlab
# attribute: md5 # attribute: md5
# end # end
ALLOWED_ATTRIBUTES = %i(md5 ALLOWED_ATTRIBUTES = %w(md5
id id
plan plan
trial trial
...@@ -27,18 +27,23 @@ module Gitlab ...@@ -27,18 +27,23 @@ module Gitlab
super super
raise ArgumentError, "License options attribute are required" unless license_attribute.present? raise ArgumentError, "License options attribute are required" unless license_attribute.present?
raise ArgumentError, "attribute should one allowed" unless license_attribute.in?(ALLOWED_ATTRIBUTES) raise ArgumentError, "Attribute: #{license_attribute} it not allowed" unless license_attribute.in?(ALLOWED_ATTRIBUTES)
end
def license_attribute
options[:attribute]
end end
def value def value
alt_usage_data(fallback: -1) do return ::License.trial_ends_on if license_attribute == "trial_ends_on"
::Licese.current.send(license_attribute)
alt_usage_data(fallback: nil) do
# license_attribute is checked in the constructor, so it's safe
::License.current.send(license_attribute) # rubocop: disable GitlabSecurity/PublicSend
end end
end end
private
def license_attribute
options[:attribute]
end
end end
end end
end end
......
# frozen_string_literal: true
module Gitlab
module Usage
module Metrics
module Instrumentations
class ZuoraSubscriptionIdMetric < ::Gitlab::Usage::Metrics::Instrumentations::GenericMetric
value do
::License.current.subscription_id
end
end
end
end
end
end
...@@ -187,6 +187,10 @@ RSpec.describe Gitlab::UsageData do ...@@ -187,6 +187,10 @@ RSpec.describe Gitlab::UsageData do
describe '.features_usage_data_ee' do describe '.features_usage_data_ee' do
subject { described_class.features_usage_data_ee } subject { described_class.features_usage_data_ee }
before do
stub_feature_flags(usage_data_instrumentation: false)
end
it 'gathers feature usage data of EE' do it 'gathers feature usage data of EE' do
expect(subject[:elasticsearch_enabled]).to eq(Gitlab::CurrentSettings.elasticsearch_search?) expect(subject[:elasticsearch_enabled]).to eq(Gitlab::CurrentSettings.elasticsearch_search?)
expect(subject[:geo_enabled]).to eq(Gitlab::Geo.enabled?) expect(subject[:geo_enabled]).to eq(Gitlab::Geo.enabled?)
......
# frozen_string_literal: true
require 'spec_helper'
RSpec.describe Gitlab::Usage::Metrics::Instrumentations::LicenseMdFiveMetric do
it_behaves_like 'a correct instrumented metric value', { time_frame: 'none', data_source: 'ruby' } do
let(:expected_value) { Digest::MD5.hexdigest(::License.current.data) }
end
end
# frozen_string_literal: true
require 'spec_helper'
RSpec.describe Gitlab::Usage::Metrics::Instrumentations::ZuoraSubscriptionIdMetric do
it_behaves_like 'a correct instrumented metric value', { time_frame: 'none', data_source: 'ruby' } do
let(:expected_value) { ::License.current.subscription_id }
end
end
...@@ -10,10 +10,10 @@ module Gitlab ...@@ -10,10 +10,10 @@ module Gitlab
uncached_data.deep_stringify_keys.dig(*key_path.split('.')) uncached_data.deep_stringify_keys.dig(*key_path.split('.'))
end end
def add_metric(metric, time_frame: 'none') def add_metric(metric, time_frame: 'none', options: {})
metric_class = "Gitlab::Usage::Metrics::Instrumentations::#{metric}".constantize metric_class = "Gitlab::Usage::Metrics::Instrumentations::#{metric}".constantize
metric_class.new(time_frame: time_frame).suggested_name metric_class.new(time_frame: time_frame, options: options).suggested_name
end end
private private
......
...@@ -12,10 +12,10 @@ module Gitlab ...@@ -12,10 +12,10 @@ module Gitlab
super.with_indifferent_access.deep_merge(instrumentation_metrics.with_indifferent_access) super.with_indifferent_access.deep_merge(instrumentation_metrics.with_indifferent_access)
end end
def add_metric(metric, time_frame: 'none') def add_metric(metric, time_frame: 'none', options: {})
metric_class = "Gitlab::Usage::Metrics::Instrumentations::#{metric}".constantize metric_class = "Gitlab::Usage::Metrics::Instrumentations::#{metric}".constantize
metric_class.new(time_frame: time_frame).instrumentation metric_class.new(time_frame: time_frame, options: options).instrumentation
end end
def count(relation, column = nil, batch: true, batch_size: nil, start: nil, finish: nil) def count(relation, column = nil, batch: true, batch_size: nil, start: nil, finish: nil)
......
...@@ -12,10 +12,10 @@ module Gitlab ...@@ -12,10 +12,10 @@ module Gitlab
super.with_indifferent_access.deep_merge(instrumentation_metrics.with_indifferent_access) super.with_indifferent_access.deep_merge(instrumentation_metrics.with_indifferent_access)
end end
def add_metric(metric, time_frame: 'none') def add_metric(metric, time_frame: 'none', options: {})
metric_class = "Gitlab::Usage::Metrics::Instrumentations::#{metric}".constantize metric_class = "Gitlab::Usage::Metrics::Instrumentations::#{metric}".constantize
metric_class.new(time_frame: time_frame).instrumentation metric_class.new(time_frame: time_frame, options: options).instrumentation
end end
def count(relation, column = nil, *args, **kwargs) def count(relation, column = nil, *args, **kwargs)
......
...@@ -49,6 +49,7 @@ module Gitlab ...@@ -49,6 +49,7 @@ module Gitlab
# Results of this method should be overwritten by instrumentation class values # Results of this method should be overwritten by instrumentation class values
# -100 indicates the metric was not properly merged. # -100 indicates the metric was not properly merged.
return INSTRUMENTATION_CLASS_FALLBACK if Feature.enabled?(:usage_data_instrumentation) return INSTRUMENTATION_CLASS_FALLBACK if Feature.enabled?(:usage_data_instrumentation)
metric_class = "Gitlab::Usage::Metrics::Instrumentations::#{metric}".constantize metric_class = "Gitlab::Usage::Metrics::Instrumentations::#{metric}".constantize
metric_class.new(time_frame: time_frame, options: options).value metric_class.new(time_frame: time_frame, options: options).value
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment