Class: StatsigLogger

Inherits:
Object
  • Object
show all
Defined in:
lib/statsig_logger.rb

Instance Method Summary collapse

Constructor Details

#initialize(network, statsig_metadata) ⇒ StatsigLogger

Returns a new instance of StatsigLogger.



7
8
9
10
11
# File 'lib/statsig_logger.rb', line 7

def initialize(network, )
  @network = network
  @statsig_metadata = 
  @events = []
end

Instance Method Details

#flushObject



43
44
45
46
47
48
49
50
51
# File 'lib/statsig_logger.rb', line 43

def flush
  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) ⇒ Object



32
33
34
35
36
37
38
39
40
41
# File 'lib/statsig_logger.rb', line 32

def log_config_exposure(user, config_name, rule_id)
  event = StatsigEvent.new($config_exposure_event)
  event.user = user
  event. = {
    'config' => config_name,
    'ruleID' => rule_id
  }
  event. = @statsig_metadata
  log_event(event)
end

#log_event(event) ⇒ Object



13
14
15
16
17
18
# File 'lib/statsig_logger.rb', line 13

def log_event(event)
  @events.push(event)
  if @events.length >= 500
    flush
  end
end

#log_gate_exposure(user, gate_name, value, rule_id) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
# File 'lib/statsig_logger.rb', line 20

def log_gate_exposure(user, gate_name, value, rule_id)
  event = StatsigEvent.new($gate_exposure_event)
  event.user = user
  event. = {
    'gate' => gate_name,
    'gateValue' => value.to_s,
    'ruleID' => rule_id
  }
  event. = @statsig_metadata
  log_event(event)
end