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