# frozen_string_literal: true require 'snowplow-tracker' module Gitlab module SnowplowTracker NAMESPACE = 'cf' class << self def track_event(category, action, label: nil, property: nil, value: nil, context: nil) tracker&.track_struct_event(category, action, label, property, value, context, Time.now.to_i) end private def tracker return unless enabled? @tracker ||= ::SnowplowTracker::Tracker.new(emitter, subject, NAMESPACE, Gitlab::CurrentSettings.snowplow_site_id) end def subject ::SnowplowTracker::Subject.new end def emitter ::SnowplowTracker::Emitter.new(Gitlab::CurrentSettings.snowplow_collector_hostname) end def enabled? Gitlab::CurrentSettings.snowplow_enabled? end end end end