class RRD::Builder
Constants
- ARCHIVE_TYPES
- DATASOURCE_TYPES
Attributes
archives[RW]
datasources[RW]
output[RW]
parameters[RW]
Public Class Methods
new(output, parameters = {})
click to toggle source
# File lib/rrd/builder.rb, line 8 def initialize(output, parameters = {}) @output = output @parameters = {:step => 5.minutes, :start => Time.now - 10.seconds }.merge parameters @parameters[:start] = @parameters[:start].to_i @datasources = [] @archives = [] end
Public Instance Methods
archive(consolidation_function, options = {})
click to toggle source
# File lib/rrd/builder.rb, line 26 def archive(consolidation_function, options = {}) options = {:every => 5.minutes, :during => 1.day}.merge options # steps and rows must be integer, so we need to convert float values archive_steps = (options[:every]/parameters[:step]).to_i archive_rows = (options[:during]/options[:every]).to_i archive = "RRA:#{consolidation_function.to_s.upcase}:0.5:#{archive_steps}:#{archive_rows}" archives << archive archive end
datasource(name, options = {})
click to toggle source
# File lib/rrd/builder.rb, line 18 def datasource(name, options = {}) options = {:type => :gauge, :heartbeat => 10.minutes, :min => 0, :max => :unlimited}.merge options options[:max] = "U" if options[:max] == :unlimited datasource = "DS:#{name}:#{options[:type].to_s.upcase}:#{options[:heartbeat]}:#{options[:min]}:#{options[:max]}" datasources << datasource datasource end
save()
click to toggle source
# File lib/rrd/builder.rb, line 36 def save args = [output] line_parameters = RRD.to_line_parameters(parameters) args += line_parameters args += datasources args += archives Wrapper.create(*args) end