- Better support for URI sources. Will set @source, @host, and @path

This commit is contained in:
Jordan Sissel 2010-11-18 13:03:42 -08:00
parent 081a9a7282
commit 2f60cdb558
4 changed files with 18 additions and 5 deletions

View file

@ -1,5 +1,6 @@
require "json"
require "logstash/time"
require "uri"
# General event type. Will expand this in the future.
module LogStash; class Event
@ -35,12 +36,24 @@ module LogStash; class Event
def timestamp; @data["@timestamp"]; end # def timestamp
def timestamp=(val); @data["@timestamp"] = val; end # def timestamp=
def source; @data["@source"]; end # def source
def source=(val); @data["@source"] = val; end # def source=
def source=(val)
if val.is_a?(URI)
@data["@source"] = val.to_s
@data["@host"] = val.host
@data["@path"] = val.path
else
@data["@source"] = val
end
end # def source=
def message; @data["@message"]; end # def message
def message=(val); @data["@message"] = val; end # def message=
def type; @data["@type"]; end # def type
def type=(val); @data["@type"] = val; end # def type=
def tags; @data["@tags"]; end # def tags
def tags=(val); @data["@tags"] = val; end # def tags=

View file

@ -21,7 +21,7 @@ class LogStash::Inputs::File < LogStash::Inputs::Base
url.path = filetail.path
@logger.debug(["original url", { :originalurl => @url, :newurl => url }])
event = LogStash::Event.new({
"@source" => url.to_s,
"@source" => url,
"@message" => event,
"@type" => @type,
"@tags" => @tags.clone,

View file

@ -68,7 +68,7 @@ class LogStash::Inputs::Syslog < LogStash::Inputs::Base
# At least the hostname is simple...
url.host = match[3]
url.port = nil
event.source = url.to_s
event.source = url
event.message = match[4]
else
@ -86,7 +86,7 @@ class LogStash::Inputs::Syslog < LogStash::Inputs::Base
# Don't need to modify the message, here.
# event.message = ...
event.source = url.to_s
event.source = url
end
end # def syslog_relay

View file

@ -24,7 +24,7 @@ class LogStash::Inputs::Tcp < LogStash::Inputs::Base
url.port = port
@logger.debug(["original url", { :originalurl => @url, :newurl => url }])
event = LogStash::Event.new({
"@source" => url.to_s,
"@source" => url,
"@message" => event,
"@type" => @type,
"@tags" => @tags.clone,