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-21 09:10:27 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-08-21 09:10:27 +0300
commit3c63ea4631f629f83c7d35e65963ffc1acf83161 (patch)
tree8c907616211b88594dd828257ca2c8131a429225 /lib
parentf2eb66fef8aa8cebea25bc9e671a1f146514682f (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib')
-rw-r--r--lib/gitlab/usage_data.rb14
-rw-r--r--lib/product_analytics/tracker.rb31
2 files changed, 45 insertions, 0 deletions
diff --git a/lib/gitlab/usage_data.rb b/lib/gitlab/usage_data.rb
index f4d3186657f..19faaaacf9a 100644
--- a/lib/gitlab/usage_data.rb
+++ b/lib/gitlab/usage_data.rb
@@ -716,6 +716,18 @@ module Gitlab
end
end
+ def project_minimum_id
+ strong_memoize(:project_minimum_id) do
+ ::Project.minimum(:id)
+ end
+ end
+
+ def project_maximum_id
+ strong_memoize(:project_maximum_id) do
+ ::Project.maximum(:id)
+ end
+ end
+
def clear_memoized
clear_memoization(:issue_minimum_id)
clear_memoization(:issue_maximum_id)
@@ -726,6 +738,8 @@ module Gitlab
clear_memoization(:deployment_maximum_id)
clear_memoization(:approval_merge_request_rule_minimum_id)
clear_memoization(:approval_merge_request_rule_maximum_id)
+ clear_memoization(:project_minimum_id)
+ clear_memoization(:project_maximum_id)
end
# rubocop: disable CodeReuse/ActiveRecord
diff --git a/lib/product_analytics/tracker.rb b/lib/product_analytics/tracker.rb
index d4a88b879f0..2dc5e1f53ce 100644
--- a/lib/product_analytics/tracker.rb
+++ b/lib/product_analytics/tracker.rb
@@ -7,5 +7,36 @@ module ProductAnalytics
# The collector URL minus protocol and /i
COLLECTOR_URL = Gitlab.config.gitlab.url.sub(/\Ahttps?\:\/\//, '') + '/-/collector'
+
+ class << self
+ include Gitlab::Utils::StrongMemoize
+
+ def event(category, action, label: nil, property: nil, value: nil, context: nil)
+ return unless enabled?
+
+ snowplow.track_struct_event(category, action, label, property, value, context, (Time.now.to_f * 1000).to_i)
+ end
+
+ private
+
+ def enabled?
+ Gitlab::CurrentSettings.usage_ping_enabled?
+ end
+
+ def project_id
+ Gitlab::CurrentSettings.self_monitoring_project_id
+ end
+
+ def snowplow
+ strong_memoize(:snowplow) do
+ SnowplowTracker::Tracker.new(
+ SnowplowTracker::AsyncEmitter.new(COLLECTOR_URL, protocol: Gitlab.config.gitlab.protocol),
+ SnowplowTracker::Subject.new,
+ Gitlab::Tracking::SNOWPLOW_NAMESPACE,
+ project_id.to_s
+ )
+ end
+ end
+ end
end
end