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