61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
# File 'lib/fluent/plugin/in_http_ex.rb', line 61
def on_request(path_info, params)
$log.debug "remote_addr: #{params["REMOTE_ADDR"]}, path_info: #{path_info}"
begin
path = path_info[1..-1]
resource, tag = path.split('/')
tag ||= resource
if chunk = params['chunked']
record = chunk
elsif js = params['json']
record = JSON.parse(js)
elsif ms = params['x-msgpack'] || ms = params['msgpack']
record = MessagePack::unpack(ms)
else
raise "'json' or 'msgpack' parameter is required"
end
time = params['time']
time = time.to_i
if time == 0
time = Engine.now
end
rescue
return ["400 Bad Request", {'Content-type'=>'text/plain'}, "400 Bad Request\n#{$!}\n"]
end
begin
case params["resource"]
when :js
record.each do |v|
line = begin
JSON.parse(v)
rescue TypeError
v
end
Engine.emit(tag, time, line)
end
when :ms
record.each {|line| Engine.emit(tag, time, line) }
else
Engine.emit(tag, time, record)
end
rescue
return ["500 Internal Server Error", {'Content-type'=>'text/plain'}, "500 Internal Server Error\n#{$!}\n"]
end
return ["200 OK", {'Content-type'=>'text/plain'}, ""]
end
|