25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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
85
86
87
88
89
90
91
92
|
# File 'lib/fluent/plugin/in_http_include_time_key.rb', line 25
def on_request(path_info, params)
begin
path = path_info[1..-1] tag = path.split('/').join('.')
record_time, record = parse_params(params)
if record.nil?
if @respond_with_empty_img
return ["200 OK", {'Content-Type'=>'image/gif; charset=utf-8'}, EMPTY_GIF_IMAGE]
else
return ["200 OK", {'Content-Type'=>'text/plain'}, ""]
end
end
unless record.is_a?(Array)
if @add_http_headers
params.each_pair { |k,v|
if k.start_with?("HTTP_")
record[k] = v
end
}
end
if @add_remote_addr
record['REMOTE_ADDR'] = params['REMOTE_ADDR']
end
end
time = Fluent::Engine.now
rescue
return ["400 Bad Request", {'Content-Type'=>'text/plain'}, "400 Bad Request\n#{$!}\n"]
end
begin
if record.is_a?(Array)
mes = Fluent::MultiEventStream.new
record.each do |single_record|
if @add_http_headers
params.each_pair { |k,v|
if k.start_with?("HTTP_")
single_record[k] = v
end
}
end
if @add_remote_addr
single_record['REMOTE_ADDR'] = params['REMOTE_ADDR']
end
single_time = time
if @keep_time_key
single_record[@time_key] = Time.at(single_time).strftime(@time_format)
end
mes.add(single_time, single_record)
end
router.emit_stream(tag, mes)
else
router.emit(tag, time, record)
end
rescue
return ["500 Internal Server Error", {'Content-Type'=>'text/plain'}, "500 Internal Server Error\n#{$!}\n"]
end
if @respond_with_empty_img
return ["200 OK", {'Content-Type'=>'image/gif; charset=utf-8'}, EMPTY_GIF_IMAGE]
else
return ["200 OK", {'Content-Type'=>'text/plain'}, ""]
end
end
|