diff options
Diffstat (limited to 'lib/gitlab/usage_data_counters/web_ide_counter.rb')
-rw-r--r-- | lib/gitlab/usage_data_counters/web_ide_counter.rb | 52 |
1 files changed, 25 insertions, 27 deletions
diff --git a/lib/gitlab/usage_data_counters/web_ide_counter.rb b/lib/gitlab/usage_data_counters/web_ide_counter.rb index c012a6c96df..00fcd42a9af 100644 --- a/lib/gitlab/usage_data_counters/web_ide_counter.rb +++ b/lib/gitlab/usage_data_counters/web_ide_counter.rb @@ -4,54 +4,52 @@ module Gitlab module UsageDataCounters class WebIdeCounter extend RedisCounter - - COMMITS_COUNT_KEY = 'WEB_IDE_COMMITS_COUNT' - MERGE_REQUEST_COUNT_KEY = 'WEB_IDE_MERGE_REQUESTS_COUNT' - VIEWS_COUNT_KEY = 'WEB_IDE_VIEWS_COUNT' - PREVIEW_COUNT_KEY = 'WEB_IDE_PREVIEWS_COUNT' + KNOWN_EVENTS = %i[commits views merge_requests previews terminals pipelines].freeze + PREFIX = 'web_ide' class << self def increment_commits_count - increment(COMMITS_COUNT_KEY) - end - - def total_commits_count - total_count(COMMITS_COUNT_KEY) + increment(redis_key('commits')) end def increment_merge_requests_count - increment(MERGE_REQUEST_COUNT_KEY) + increment(redis_key('merge_requests')) end - def total_merge_requests_count - total_count(MERGE_REQUEST_COUNT_KEY) + def increment_views_count + increment(redis_key('views')) end - def increment_views_count - increment(VIEWS_COUNT_KEY) + def increment_terminals_count + increment(redis_key('terminals')) end - def total_views_count - total_count(VIEWS_COUNT_KEY) + def increment_pipelines_count + increment(redis_key('pipelines')) end def increment_previews_count return unless Gitlab::CurrentSettings.web_ide_clientside_preview_enabled? - increment(PREVIEW_COUNT_KEY) + increment(redis_key('previews')) + end + + def totals + KNOWN_EVENTS.map { |event| [counter_key(event), total_count(redis_key(event))] }.to_h end - def total_previews_count - total_count(PREVIEW_COUNT_KEY) + def fallback_totals + KNOWN_EVENTS.map { |event| [counter_key(event), -1] }.to_h end - def totals - { - web_ide_commits: total_commits_count, - web_ide_views: total_views_count, - web_ide_merge_requests: total_merge_requests_count, - web_ide_previews: total_previews_count - } + private + + def redis_key(event) + "#{PREFIX}_#{event}_count".upcase + end + + def counter_key(event) + "#{PREFIX}_#{event}".to_sym end end end |