Class: Monitoring::Client::Routine

Inherits:
Object
  • Object
show all
Defined in:
lib/monitoring/client/routine.rb

Instance Method Summary collapse

Constructor Details

#initialize(routine_name) ⇒ Routine

Returns a new instance of Routine.



8
9
10
11
# File 'lib/monitoring/client/routine.rb', line 8

def initialize(routine_name)
  @routine_name = routine_name
  @metrics = Hash.new do |h, k| h[k] = Metric.new(k) end
end

Instance Method Details

#compile(program_name) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/monitoring/client/routine.rb', line 26

def compile(program_name)
  @metrics.inject([]) do |compilation, metric_tuple|
    metric_name, metric = metric_tuple
    compilation.push({
                       "program_name" => program_name,
                       "routine_name" => @routine_name,
                       "metric_name" => metric_name,
                       "metric_units" => metric.units,
                       "sample_value" => metric.value,
                     })
  end
end

#count(metric_name, increment_by, units = nil) ⇒ Object



21
22
23
24
# File 'lib/monitoring/client/routine.rb', line 21

def count(metric_name, increment_by, units = nil)
  @metrics[metric_name].value = (@metrics[metric_name].value || 0) + increment_by
  @metrics[metric_name].units = units
end

#time(metric_name = "time") ⇒ Object



14
15
16
17
18
19
# File 'lib/monitoring/client/routine.rb', line 14

def time(metric_name = "time")
  t0 = Time.now.to_f
  yield
  @metrics[metric_name].value = Time.now.to_f - t0
  @metrics[metric_name].units = "s"
end