diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-08-13 03:10:13 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-08-13 03:10:13 +0000 |
commit | cbc45b28c02f7e610dfa478e3a2b4d4bf6f4c7a4 (patch) | |
tree | dc417daf072a896efb5def2f1ba1fff7a348b673 /lib | |
parent | 3827baae078970c1027461f01df090b885370c55 (diff) | |
download | gitlab-ce-cbc45b28c02f7e610dfa478e3a2b4d4bf6f4c7a4.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gitlab/analytics/unique_visits.rb | 22 | ||||
-rw-r--r-- | lib/gitlab/usage_data.rb | 17 |
2 files changed, 31 insertions, 8 deletions
diff --git a/lib/gitlab/analytics/unique_visits.rb b/lib/gitlab/analytics/unique_visits.rb index 394a438e754..33ea6644fb0 100644 --- a/lib/gitlab/analytics/unique_visits.rb +++ b/lib/gitlab/analytics/unique_visits.rb @@ -3,7 +3,7 @@ module Gitlab module Analytics class UniqueVisits - TARGET_IDS = Set[ + ANALYTICS_IDS = Set[ 'g_analytics_contribution', 'g_analytics_insights', 'g_analytics_issues', @@ -17,6 +17,13 @@ module Gitlab 'p_analytics_repo', 'i_analytics_cohorts', 'i_analytics_dev_ops_score' + ] + + COMPLIANCE_IDS = Set[ + 'g_compliance_dashboard', + 'g_compliance_audit_events', + 'i_compliance_credential_inventory', + 'i_compliance_audit_events' ].freeze KEY_EXPIRY_LENGTH = 12.weeks @@ -34,8 +41,10 @@ module Gitlab # @param [Integer] weeks time frame length in weeks # @return [Integer] number of unique visitors def unique_visits_for(targets:, start_week: 7.days.ago, weeks: 1) - target_ids = if targets == :any - TARGET_IDS + target_ids = if targets == :analytics + ANALYTICS_IDS + elsif targets == :compliance + COMPLIANCE_IDS else Array(targets) end @@ -50,9 +59,12 @@ module Gitlab private def key(target_id, time) - raise "Invalid target id #{target_id}" unless TARGET_IDS.include?(target_id.to_s) + target_ids = ANALYTICS_IDS + COMPLIANCE_IDS + + raise "Invalid target id #{target_id}" unless target_ids.include?(target_id.to_s) + + target_key = target_id.to_s.gsub('analytics', '{analytics}').gsub('compliance', '{compliance}') - target_key = target_id.to_s.gsub('analytics', '{analytics}') year_week = time.strftime('%G-%V') "#{target_key}-#{year_week}" diff --git a/lib/gitlab/usage_data.rb b/lib/gitlab/usage_data.rb index e6a82da86b7..ccfb7b3870f 100644 --- a/lib/gitlab/usage_data.rb +++ b/lib/gitlab/usage_data.rb @@ -37,6 +37,7 @@ module Gitlab .merge(usage_activity_by_stage) .merge(usage_activity_by_stage(:usage_activity_by_stage_monthly, last_28_days_time_period)) .merge(analytics_unique_visits_data) + .merge(compliance_unique_visits_data) end end @@ -581,15 +582,25 @@ module Gitlab end def analytics_unique_visits_data - results = ::Gitlab::Analytics::UniqueVisits::TARGET_IDS.each_with_object({}) do |target_id, hash| + results = ::Gitlab::Analytics::UniqueVisits::ANALYTICS_IDS.each_with_object({}) do |target_id, hash| hash[target_id] = redis_usage_data { unique_visit_service.unique_visits_for(targets: target_id) } end - results['analytics_unique_visits_for_any_target'] = redis_usage_data { unique_visit_service.unique_visits_for(targets: :any) } - results['analytics_unique_visits_for_any_target_monthly'] = redis_usage_data { unique_visit_service.unique_visits_for(targets: :any, weeks: 4) } + results['analytics_unique_visits_for_any_target'] = redis_usage_data { unique_visit_service.unique_visits_for(targets: :analytics) } + results['analytics_unique_visits_for_any_target_monthly'] = redis_usage_data { unique_visit_service.unique_visits_for(targets: :analytics, weeks: 4) } { analytics_unique_visits: results } end + def compliance_unique_visits_data + results = ::Gitlab::Analytics::UniqueVisits::COMPLIANCE_IDS.each_with_object({}) do |target_id, hash| + hash[target_id] = redis_usage_data { unique_visit_service.unique_visits_for(targets: target_id) } + end + results['compliance_unique_visits_for_any_target'] = redis_usage_data { unique_visit_service.unique_visits_for(targets: :compliance) } + results['compliance_unique_visits_for_any_target_monthly'] = redis_usage_data { unique_visit_service.unique_visits_for(targets: :compliance, weeks: 4) } + + { compliance_unique_visits: results } + end + def action_monthly_active_users(time_period) return {} unless Feature.enabled?(Gitlab::UsageDataCounters::TrackUniqueActions::FEATURE_FLAG) |