Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-08-13 06:10:13 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-08-13 06:10:13 +0300
commitcbc45b28c02f7e610dfa478e3a2b4d4bf6f4c7a4 (patch)
treedc417daf072a896efb5def2f1ba1fff7a348b673 /lib
parent3827baae078970c1027461f01df090b885370c55 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib')
-rw-r--r--lib/gitlab/analytics/unique_visits.rb22
-rw-r--r--lib/gitlab/usage_data.rb17
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)