Module: Pliny::Metrics

Extended by:
Metrics
Included in:
Metrics
Defined in:
lib/pliny/metrics.rb,
lib/pliny/metrics/backends/logger.rb

Defined Under Namespace

Modules: Backends

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#backendsObject

Returns the value of attribute backends.



7
8
9
# File 'lib/pliny/metrics.rb', line 7

def backends
  @backends
end

Instance Method Details

#count(*names, value: 1) ⇒ Object



11
12
13
14
15
16
17
18
19
# File 'lib/pliny/metrics.rb', line 11

def count(*names, value: 1)
  counts = names.map { |n| ["#{Config.app_name}.#{n}", value] }.to_h

  backends.each do |backend|
    report_and_catch { backend.report_counts(counts) }
  end

  counts
end

#measure(*inputs, &block) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/pliny/metrics.rb', line 21

def measure(*inputs, &block)
  if block
    elapsed, return_value = time_elapsed(&block)
  end

  opts = inputs.last.is_a?(Hash) ? inputs.pop : {}

  measurement =
    if opts.has_key?(:value)
      opts[:value]
    elsif block
      elapsed
    else
      0
    end

  measures = inputs.map { |n| ["#{Config.app_name}.#{n}", measurement] }.to_h

  backends.each do |backend|
    report_and_catch { backend.report_measures(measures) }
  end

  block ? return_value : measures
end