class Fluent::RandomOutput
Public Instance Methods
check_valid_interval(lower, upper)
click to toggle source
# File lib/fluent/plugin/out_random.rb, line 22 def check_valid_interval(lower, upper) if (lower >= upper) raise "random: Bad interval for 'integer' (#{lower} >= #{upper})" end end
configure(conf)
click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_random.rb, line 29 def configure(conf) super if (field.nil? || integer.nil?) raise ConfigError, "random: 'field' is required to be set." end if (integer.nil?) raise ConfigError, "random: 'integer' is required to be set." end @integer_interval = parse_integer_field(integer) check_valid_interval(@integer_interval[0], @integer_interval[1]) @field = field @random = Random.new() end
emit(tag, es, chain)
click to toggle source
# File lib/fluent/plugin/out_random.rb, line 46 def emit(tag, es, chain) es.each { |time, record| t = tag.dup filter_record(t, time, record) Engine.emit(t, time, record) } chain.next end
parse_integer_field(interval)
click to toggle source
# File lib/fluent/plugin/out_random.rb, line 14 def parse_integer_field(interval) lower_upper = interval.split("..", 2).map{|value| Integer(value) } if (lower_upper.length != 2 || !lower_upper[0].is_a?(Integer) || !lower_upper[1].is_a?(Integer)) raise "random: Bad value for 'integer' (value: '#{interval}')" end return lower_upper end
Private Instance Methods
filter_record(tag, time, record)
click to toggle source
Calls superclass method
# File lib/fluent/plugin/out_random.rb, line 58 def filter_record(tag, time, record) super(tag, time, record) record[@field] = process() end
generate_integer(lower, upper)
click to toggle source
# File lib/fluent/plugin/out_random.rb, line 68 def generate_integer(lower, upper) return @random.rand(lower..upper) end
process()
click to toggle source
# File lib/fluent/plugin/out_random.rb, line 63 def process() return generate_integer(@integer_interval[0], @integer_interval[1]) end