Class: Observed::Plugins::Gauge

Inherits:
Translator
  • Object
show all
Includes:
Logging, Reporter::RegexpMatching
Defined in:
lib/observed/gauge.rb

Instance Method Summary collapse

Instance Method Details

#prepare_rrd(args) ⇒ Object



35
36
37
38
39
40
41
42
43
44
# File 'lib/observed/gauge.rb', line 35

def prepare_rrd(args)
  start = args[:start]
  log_debug "Creating a rrd file named '#{args[:rrd]}' with options {:start => #{start}}"
  result = RRD::Builder.new(args[:rrd], start: start, step: step.seconds).tap do |builder|
    builder.datasource data_source, :type => :gauge, :heartbeat => period.seconds, :min => 0, :max => :unlimited
    builder.archive :average, :every => period.seconds, :during => period.seconds
    builder.save
  end
  log_debug "Builder#save returned: #{result.inspect}"
end

#translate(data, options) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
# File 'lib/observed/gauge.rb', line 23

def translate(data, options)
  time = options[:time] || Time.now
  rewrote = update_value_for_key_path(data, key_path) do |v|
    sample = coerce.call(v)
    average = get_cdp_updated_with(time, sample)
    average
  end
  unless fetch_value_for_key_path(rewrote, key_path).nan?
    rewrote
  end
end