lib/logstash/inputs/perfmon.rb in logstash-input-perfmon-0.1.1 vs lib/logstash/inputs/perfmon.rb in logstash-input-perfmon-0.1.2

- old
+ new

@@ -25,11 +25,11 @@ # "message" => "%{DATESTAMP:Occurred},%{NUMBER:PrivilegedTime:float},%{NUMBER:ProcessorTime:float},%{NUMBER:UserTime:float}" # } # } # } class LogStash::Inputs::Perfmon < LogStash::Inputs::Base - attr_reader :counters, :interval + attr_reader :counters, :interval, :host config_name "perfmon" # If undefined, Logstash will complain, even if codec is unused. default :codec, "plain" @@ -41,30 +41,44 @@ "\\Process(_Total)\\% Privileged Time"] # Sets the frequency, in seconds, at which to collect perfmon metrics config :interval, :validate => :number, :required => false, :default => 10 + # Identifies the server being monitored. Defaults to hostname, but can be overriden. + # [source,ruby] + # input { + # perfmon { + # interval => 10 + # counters => ["\Processor(_Total)\% Privileged Time"], + # host => "webserver1" + # } + # } + config :host, :required => false, :default => Socket.gethostname + #------------Public Methods-------------------- public # Registers the plugin with logstash def register - @host = Socket.gethostname @typeperf = TypeperfWrapper.new(PerfmonProcGetter.new, @interval) @counters.each { |counter| @typeperf.add_counter(counter) } end # Runs the perf monitor and monitors its output + # [queue] The queue to add new events to def run(queue) @typeperf.start_monitor @logger.debug("Started perfmon monitor") while @typeperf.alive? data = @typeperf.get_next @codec.decode(data) do |event| decorate(event) + + event['host'] = @host + queue << event @logger.debug("Added event to queue: #{event}") end end end \ No newline at end of file