diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-07-09 12:09:53 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-07-09 12:09:53 +0300 |
commit | 1613500bf7400f5692a55fd65235a4a10fc40a7d (patch) | |
tree | 967ae692bf524c89abdde048d8f74361642293c7 /lib/gitlab/tracking | |
parent | 97576e3dfdc15b26c0a7832608397edd69167351 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/gitlab/tracking')
-rw-r--r-- | lib/gitlab/tracking/destinations/snowplow.rb | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/lib/gitlab/tracking/destinations/snowplow.rb b/lib/gitlab/tracking/destinations/snowplow.rb index 2264e39b51a..07a53b0892b 100644 --- a/lib/gitlab/tracking/destinations/snowplow.rb +++ b/lib/gitlab/tracking/destinations/snowplow.rb @@ -13,6 +13,7 @@ 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 @@ -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 |