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
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-07-20 12:55:51 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-07-20 12:55:51 +0300
commite8d2c2579383897a1dd7f9debd359abe8ae8373d (patch)
treec42be41678c2586d49a75cabce89322082698334 /lib/gitlab/tracking
parentfc845b37ec3a90aaa719975f607740c22ba6a113 (diff)
Add latest changes from gitlab-org/gitlab@14-1-stable-eev14.1.0-rc42
Diffstat (limited to 'lib/gitlab/tracking')
-rw-r--r--lib/gitlab/tracking/destinations/snowplow.rb42
-rw-r--r--lib/gitlab/tracking/helpers.rb15
2 files changed, 55 insertions, 2 deletions
diff --git a/lib/gitlab/tracking/destinations/snowplow.rb b/lib/gitlab/tracking/destinations/snowplow.rb
index e548532e061..07a53b0892b 100644
--- a/lib/gitlab/tracking/destinations/snowplow.rb
+++ b/lib/gitlab/tracking/destinations/snowplow.rb
@@ -13,12 +13,13 @@ module Gitlab
return unless enabled?
tracker.track_struct_event(category, action, label, property, value, context, (Time.now.to_f * 1000).to_i)
+ increment_total_events_counter
end
private
def enabled?
- Gitlab::CurrentSettings.snowplow_enabled?
+ Gitlab::Tracking.enabled?
end
def tracker
@@ -33,9 +34,46 @@ module Gitlab
def emitter
SnowplowTracker::AsyncEmitter.new(
Gitlab::CurrentSettings.snowplow_collector_hostname,
- protocol: 'https'
+ protocol: 'https',
+ on_success: method(:increment_successful_events_emissions),
+ on_failure: method(:failure_callback)
)
end
+
+ def failure_callback(success_count, failures)
+ increment_successful_events_emissions(success_count)
+ increment_failed_events_emissions(failures.size)
+ log_failures(failures)
+ end
+
+ def increment_failed_events_emissions(value)
+ Gitlab::Metrics.counter(
+ :gitlab_snowplow_failed_events_total,
+ 'Number of failed Snowplow events emissions'
+ ).increment({}, value.to_i)
+ end
+
+ def increment_successful_events_emissions(value)
+ Gitlab::Metrics.counter(
+ :gitlab_snowplow_successful_events_total,
+ 'Number of successful Snowplow events emissions'
+ ).increment({}, value.to_i)
+ end
+
+ def increment_total_events_counter
+ Gitlab::Metrics.counter(
+ :gitlab_snowplow_events_total,
+ 'Number of Snowplow events'
+ ).increment
+ end
+
+ def log_failures(failures)
+ hostname = Gitlab::CurrentSettings.snowplow_collector_hostname
+
+ failures.each do |failure|
+ Gitlab::AppLogger.error("#{failure["se_ca"]} #{failure["se_ac"]} failed to be reported to collector at #{hostname}")
+ end
+ end
end
end
end
diff --git a/lib/gitlab/tracking/helpers.rb b/lib/gitlab/tracking/helpers.rb
new file mode 100644
index 00000000000..bf3cefb736c
--- /dev/null
+++ b/lib/gitlab/tracking/helpers.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module Tracking
+ module Helpers
+ def dnt_enabled?
+ Gitlab::Utils.to_boolean(request.headers['DNT'])
+ end
+
+ def trackable_html_request?
+ request.format.html? && !dnt_enabled?
+ end
+ end
+ end
+end