Module: Gitlab::InternalEvents

Extended by:
Tracking::Helpers, UsageDataCounters::RedisCounter, UsageDataCounters::RedisSum, Utils::StrongMemoize
Defined in:
lib/gitlab/internal_events.rb,
lib/gitlab/internal_events/event_definitions.rb

Defined Under Namespace

Modules: EventDefinitions

Constant Summary collapse

SNOWPLOW_EMITTER_BUFFER_SIZE =
100
DEFAULT_BUFFER_SIZE =
1
KEY_EXPIRY_LENGTH =
Gitlab::UsageDataCounters::HLLRedisCounter::KEY_EXPIRY_LENGTH

Constants included from UsageDataCounters::RedisCounter

UsageDataCounters::RedisCounter::KEY_OVERRIDES_PATH

Class Method Summary collapse

Methods included from UsageDataCounters::RedisSum

get, increment_sum_by

Methods included from UsageDataCounters::RedisCounter

increment, increment_by, total_count, with_batched_redis_writes

Methods included from Tracking::Helpers

dnt_enabled?, trackable_html_request?

Class Method Details

.track_event(event_name, category: nil, additional_properties: {}, **kwargs) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/gitlab/internal_events.rb', line 15

def track_event(event_name, category: nil, additional_properties: {}, **kwargs)
  Gitlab::Tracking::EventValidator.new(event_name, additional_properties, kwargs).validate!

  event_definition = Gitlab::Tracking::EventDefinition.find(event_name)
  send_snowplow_event = kwargs.fetch(:send_snowplow_event, true)

  track_analytics_event(event_name, send_snowplow_event, category: category,
    additional_properties: additional_properties, **kwargs)

  return if Feature.disabled?(:move_ai_tracking_to_instrumentation_layer, kwargs[:user])

  kwargs[:additional_properties] = additional_properties
  event_definition.extra_tracking_classes.each do |tracking_class|
    tracking_class.track_event(event_name, **kwargs)
  end
end