diff options
Diffstat (limited to 'lib/gitlab/usage')
3 files changed, 39 insertions, 1 deletions
diff --git a/lib/gitlab/usage/metric_definition.rb b/lib/gitlab/usage/metric_definition.rb index db0cb4c6326..6e5196ecdbd 100644 --- a/lib/gitlab/usage/metric_definition.rb +++ b/lib/gitlab/usage/metric_definition.rb @@ -6,6 +6,7 @@ module Gitlab METRIC_SCHEMA_PATH = Rails.root.join('config', 'metrics', 'schema.json') BASE_REPO_PATH = 'https://gitlab.com/gitlab-org/gitlab/-/blob/master' SKIP_VALIDATION_STATUSES = %w[deprecated removed].to_set.freeze + AVAILABLE_STATUSES = %w[active data_available implemented deprecated].freeze InvalidError = Class.new(RuntimeError) @@ -59,6 +60,10 @@ module Gitlab attributes[:data_category]&.downcase! end + def available? + AVAILABLE_STATUSES.include?(attributes[:status]) + end + alias_method :to_dictionary, :to_h class << self @@ -76,7 +81,7 @@ module Gitlab end def with_instrumentation_class - all.select { |definition| definition.attributes[:instrumentation_class].present? } + all.select { |definition| definition.attributes[:instrumentation_class].present? && definition.available? } end def schemer diff --git a/lib/gitlab/usage/metrics/instrumentations/active_user_count_metric.rb b/lib/gitlab/usage/metrics/instrumentations/active_user_count_metric.rb new file mode 100644 index 00000000000..2f3b3af306f --- /dev/null +++ b/lib/gitlab/usage/metrics/instrumentations/active_user_count_metric.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +module Gitlab + module Usage + module Metrics + module Instrumentations + class ActiveUserCountMetric < DatabaseMetric + operation :count + + relation { User.active } + end + end + end + end +end diff --git a/lib/gitlab/usage/metrics/instrumentations/count_users_associating_milestones_to_releases_metric.rb b/lib/gitlab/usage/metrics/instrumentations/count_users_associating_milestones_to_releases_metric.rb new file mode 100644 index 00000000000..c10182e23aa --- /dev/null +++ b/lib/gitlab/usage/metrics/instrumentations/count_users_associating_milestones_to_releases_metric.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +module Gitlab + module Usage + module Metrics + module Instrumentations + class CountUsersAssociatingMilestonesToReleasesMetric < DatabaseMetric + operation :distinct_count, column: :author_id + + relation { Release.with_milestones } + + start { Release.minimum(:author_id) } + finish { Release.maximum(:author_id) } + end + end + end + end +end |