Class: L2meter::Emitter

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(configuration: Configuration.new) ⇒ Emitter

Returns a new instance of Emitter.



5
6
7
8
9
10
# File 'lib/l2meter/emitter.rb', line 5

def initialize(configuration: Configuration.new)
  @configuration = configuration
  @start_times = []
  @contexts = []
  @outputs = []
end

Instance Attribute Details

#configurationObject (readonly)

Returns the value of attribute configuration.



3
4
5
# File 'lib/l2meter/emitter.rb', line 3

def configuration
  @configuration
end

Instance Method Details

#batchObject



73
74
75
76
77
78
# File 'lib/l2meter/emitter.rb', line 73

def batch
  @outputs.push StringIO.new
  yield
ensure
  flush_buffer @outputs.pop
end

#cloneObject



69
70
71
# File 'lib/l2meter/emitter.rb', line 69

def clone
  self.class.new(configuration: configuration)
end

#context(*context_data) ⇒ Object



61
62
63
64
65
66
67
# File 'lib/l2meter/emitter.rb', line 61

def context(*context_data)
  return clone_with_context(context_data) unless block_given?
  push_context context_data
  yield
ensure
  context_data.length.times { @contexts.pop }
end

#count(metric, value = 1) ⇒ Object



53
54
55
# File 'lib/l2meter/emitter.rb', line 53

def count(metric, value = 1)
  log_with_prefix :count, metric, value
end

#log(*args) ⇒ Object



12
13
14
15
16
17
18
19
20
21
# File 'lib/l2meter/emitter.rb', line 12

def log(*args)
  params = unwrap(*args)
  params = merge_contexts(params)

  if block_given?
    wrap params, &proc
  else
    write params
  end
end

#measure(metric, value, unit: nil) ⇒ Object



45
46
47
# File 'lib/l2meter/emitter.rb', line 45

def measure(metric, value, unit: nil)
  log_with_prefix :measure, metric, value, unit: unit
end

#sample(metric, value, unit: nil) ⇒ Object



49
50
51
# File 'lib/l2meter/emitter.rb', line 49

def sample(metric, value, unit: nil)
  log_with_prefix :sample, metric, value, unit: unit
end

#silenceObject



30
31
32
33
34
35
# File 'lib/l2meter/emitter.rb', line 30

def silence
  silence!
  yield
ensure
  unsilence!
end

#silence!Object



37
38
39
# File 'lib/l2meter/emitter.rb', line 37

def silence!
  @outputs.push NullObject.new
end

#unique(metric, value) ⇒ Object



57
58
59
# File 'lib/l2meter/emitter.rb', line 57

def unique(metric, value)
  log_with_prefix :unique, metric, value
end

#unsilence!Object



41
42
43
# File 'lib/l2meter/emitter.rb', line 41

def unsilence!
  @outputs.pop
end

#with_elapsedObject



23
24
25
26
27
28
# File 'lib/l2meter/emitter.rb', line 23

def with_elapsed
  @start_times << Time.now
  yield
ensure
  @start_times.pop
end