class StatsigLogger
Public Class Methods
new(network, statsig_metadata)
click to toggle source
# File lib/statsig_logger.rb, line 7 def initialize(network, statsig_metadata) @network = network @statsig_metadata = statsig_metadata @events = [] @background_flush = Thread.new do sleep 60 flush end end
Public Instance Methods
flush(closing = false)
click to toggle source
# File lib/statsig_logger.rb, line 47 def flush(closing = false) if closing @background_flush.exit end if @events.length == 0 return end flush_events = @events.map { |e| e.serialize() } @events = [] @network.post_logs(flush_events, @statsig_metadata) end
log_config_exposure(user, config_name, rule_id)
click to toggle source
# File lib/statsig_logger.rb, line 36 def log_config_exposure(user, config_name, rule_id) event = StatsigEvent.new($config_exposure_event) event.user = user event.metadata = { 'config' => config_name, 'ruleID' => rule_id } event.statsig_metadata = @statsig_metadata log_event(event) end
log_event(event)
click to toggle source
# File lib/statsig_logger.rb, line 17 def log_event(event) @events.push(event) if @events.length >= 500 flush end end
log_gate_exposure(user, gate_name, value, rule_id)
click to toggle source
# File lib/statsig_logger.rb, line 24 def log_gate_exposure(user, gate_name, value, rule_id) event = StatsigEvent.new($gate_exposure_event) event.user = user event.metadata = { 'gate' => gate_name, 'gateValue' => value.to_s, 'ruleID' => rule_id } event.statsig_metadata = @statsig_metadata log_event(event) end