Class: LogStash::Inputs::Generator

Inherits:
Threadable
  • Object
show all
Defined in:
lib/logstash/inputs/generator.rb

Overview

Generate random log events.

The general intention of this is to test performance of plugins.

An event is generated first

Instance Method Summary collapse

Instance Method Details

#closeObject



87
88
89
90
91
92
93
94
95
# File 'lib/logstash/inputs/generator.rb', line 87

def close
  if @codec.respond_to?(:flush)
    @codec.flush do |event|
      decorate(event)
      event.set("host", @host)
      queue << event
    end
  end
end

#registerObject



50
51
52
53
# File 'lib/logstash/inputs/generator.rb', line 50

def register
  @host = Socket.gethostname
  @count = Array(@count).first
end

#run(queue) ⇒ Object

def register



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/logstash/inputs/generator.rb', line 55

def run(queue)
  number = 0

  if @message == "stdin"
    @logger.info("Generator plugin reading a line from stdin")
    @message = $stdin.readline
    @logger.debug("Generator line read complete", :message => @message)
  end
  @lines = [@message] if @lines.nil?

  while !stop? && (@count <= 0 || number < @count)
    @lines.each do |line|
      @codec.decode(line.clone) do |event|
        decorate(event)
        event.set("host", @host)
        event.set("sequence", number)
        queue << event
      end
    end
    number += 1
  end # loop

  if @codec.respond_to?(:flush)
    @codec.flush do |event|
      decorate(event)
      event.set("host", @host)
      queue << event
    end
  end
end