fluentd 0.14.8 → 0.14.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/CONTRIBUTING.md +6 -1
- data/ChangeLog +38 -0
- data/Rakefile +21 -0
- data/example/out_exec_filter.conf +42 -0
- data/lib/fluent/agent.rb +2 -2
- data/lib/fluent/command/binlog_reader.rb +1 -1
- data/lib/fluent/command/cat.rb +5 -2
- data/lib/fluent/compat/output.rb +7 -8
- data/lib/fluent/compat/parser.rb +139 -11
- data/lib/fluent/config/configure_proxy.rb +2 -11
- data/lib/fluent/config/section.rb +7 -0
- data/lib/fluent/configurable.rb +1 -3
- data/lib/fluent/log.rb +1 -1
- data/lib/fluent/plugin/base.rb +17 -0
- data/lib/fluent/plugin/filter_parser.rb +108 -0
- data/lib/fluent/plugin/filter_record_transformer.rb +4 -7
- data/lib/fluent/plugin/filter_stdout.rb +1 -1
- data/lib/fluent/plugin/formatter.rb +5 -0
- data/lib/fluent/plugin/formatter_msgpack.rb +4 -0
- data/lib/fluent/plugin/formatter_stdout.rb +3 -2
- data/lib/fluent/plugin/formatter_tsv.rb +34 -0
- data/lib/fluent/plugin/in_exec.rb +48 -93
- data/lib/fluent/plugin/in_forward.rb +25 -105
- data/lib/fluent/plugin/in_http.rb +68 -65
- data/lib/fluent/plugin/in_syslog.rb +29 -51
- data/lib/fluent/plugin/multi_output.rb +1 -3
- data/lib/fluent/plugin/out_exec.rb +58 -71
- data/lib/fluent/plugin/out_exec_filter.rb +199 -279
- data/lib/fluent/plugin/out_file.rb +155 -80
- data/lib/fluent/plugin/out_forward.rb +44 -47
- data/lib/fluent/plugin/out_stdout.rb +6 -21
- data/lib/fluent/plugin/output.rb +23 -17
- data/lib/fluent/plugin/parser.rb +121 -61
- data/lib/fluent/plugin/parser_csv.rb +9 -3
- data/lib/fluent/plugin/parser_json.rb +37 -35
- data/lib/fluent/plugin/parser_ltsv.rb +11 -19
- data/lib/fluent/plugin/parser_msgpack.rb +50 -0
- data/lib/fluent/plugin/parser_regexp.rb +15 -42
- data/lib/fluent/plugin/parser_tsv.rb +8 -3
- data/lib/fluent/plugin_helper.rb +8 -1
- data/lib/fluent/plugin_helper/child_process.rb +139 -73
- data/lib/fluent/plugin_helper/compat_parameters.rb +93 -4
- data/lib/fluent/plugin_helper/event_emitter.rb +14 -1
- data/lib/fluent/plugin_helper/extract.rb +16 -4
- data/lib/fluent/plugin_helper/formatter.rb +9 -11
- data/lib/fluent/plugin_helper/inject.rb +4 -0
- data/lib/fluent/plugin_helper/parser.rb +3 -3
- data/lib/fluent/root_agent.rb +1 -1
- data/lib/fluent/test/driver/base.rb +51 -37
- data/lib/fluent/test/driver/base_owner.rb +18 -8
- data/lib/fluent/test/driver/multi_output.rb +2 -1
- data/lib/fluent/test/driver/output.rb +29 -6
- data/lib/fluent/test/helpers.rb +3 -1
- data/lib/fluent/test/log.rb +4 -0
- data/lib/fluent/test/startup_shutdown.rb +13 -0
- data/lib/fluent/time.rb +14 -8
- data/lib/fluent/version.rb +1 -1
- data/test/command/test_binlog_reader.rb +5 -1
- data/test/config/test_configurable.rb +173 -0
- data/test/config/test_configure_proxy.rb +0 -43
- data/test/plugin/test_base.rb +16 -0
- data/test/plugin/test_filter_parser.rb +665 -0
- data/test/plugin/test_filter_record_transformer.rb +11 -3
- data/test/plugin/test_filter_stdout.rb +18 -27
- data/test/plugin/test_in_dummy.rb +1 -1
- data/test/plugin/test_in_exec.rb +206 -94
- data/test/plugin/test_in_forward.rb +310 -327
- data/test/plugin/test_in_http.rb +310 -186
- data/test/plugin/test_out_exec.rb +223 -68
- data/test/plugin/test_out_exec_filter.rb +520 -169
- data/test/plugin/test_out_file.rb +620 -177
- data/test/plugin/test_out_forward.rb +110 -132
- data/test/plugin/test_out_null.rb +1 -1
- data/test/plugin/test_out_secondary_file.rb +4 -2
- data/test/plugin/test_out_stdout.rb +14 -35
- data/test/plugin/test_parser.rb +359 -0
- data/test/plugin/test_parser_csv.rb +1 -2
- data/test/plugin/test_parser_json.rb +3 -4
- data/test/plugin/test_parser_labeled_tsv.rb +1 -2
- data/test/plugin/test_parser_none.rb +1 -2
- data/test/plugin/test_parser_regexp.rb +8 -4
- data/test/plugin/test_parser_tsv.rb +4 -3
- data/test/plugin_helper/test_child_process.rb +184 -0
- data/test/plugin_helper/test_compat_parameters.rb +88 -1
- data/test/plugin_helper/test_extract.rb +0 -1
- data/test/plugin_helper/test_formatter.rb +5 -2
- data/test/plugin_helper/test_parser.rb +6 -5
- data/test/test_output.rb +24 -2
- data/test/test_plugin_classes.rb +20 -0
- data/test/test_root_agent.rb +139 -0
- data/test/test_test_drivers.rb +132 -0
- metadata +12 -4
- data/test/plugin/test_parser_base.rb +0 -32
data/test/test_output.rb
CHANGED
|
@@ -178,12 +178,24 @@ module FluentOutputTest
|
|
|
178
178
|
|
|
179
179
|
CONFIG = %[
|
|
180
180
|
buffer_path #{TMP_DIR}/foo
|
|
181
|
-
time_slice_format %Y%m%d
|
|
181
|
+
time_slice_format %Y%m%d%H
|
|
182
182
|
]
|
|
183
183
|
|
|
184
184
|
class TimeSlicedOutputTestPlugin < Fluent::TimeSlicedOutput
|
|
185
|
+
attr_reader :written_chunk_keys, :errors_in_write
|
|
186
|
+
def initialize
|
|
187
|
+
super
|
|
188
|
+
@written_chunk_keys = []
|
|
189
|
+
@errors_in_write = []
|
|
190
|
+
end
|
|
185
191
|
def format(tag, time, record)
|
|
186
|
-
|
|
192
|
+
[tag, time, record].to_json + "\n"
|
|
193
|
+
end
|
|
194
|
+
def write(chunk)
|
|
195
|
+
@written_chunk_keys << chunk.key
|
|
196
|
+
true
|
|
197
|
+
rescue => e
|
|
198
|
+
@errors_in_write << e
|
|
187
199
|
end
|
|
188
200
|
end
|
|
189
201
|
|
|
@@ -209,6 +221,16 @@ module FluentOutputTest
|
|
|
209
221
|
d.instance.emit_events('test', OneEventStream.new('string', 10))
|
|
210
222
|
end
|
|
211
223
|
end
|
|
224
|
+
|
|
225
|
+
test "plugin can get key of chunk in #write" do
|
|
226
|
+
d = create_driver
|
|
227
|
+
d.instance.start
|
|
228
|
+
d.instance.after_start
|
|
229
|
+
d.instance.emit_events('test', OneEventStream.new(event_time("2016-11-08 17:44:30 +0900"), {"message" => "yay"}))
|
|
230
|
+
d.instance.force_flush
|
|
231
|
+
assert_equal [], d.instance.errors_in_write
|
|
232
|
+
assert_equal ["2016110808"], d.instance.written_chunk_keys # default timezone is UTC
|
|
233
|
+
end
|
|
212
234
|
end
|
|
213
235
|
end
|
|
214
236
|
end
|
data/test/test_plugin_classes.rb
CHANGED
|
@@ -110,6 +110,26 @@ module FluentTest
|
|
|
110
110
|
end
|
|
111
111
|
end
|
|
112
112
|
|
|
113
|
+
class FluentTestBufferedOutput < ::Fluent::Plugin::Output
|
|
114
|
+
::Fluent::Plugin.register_output('test_out_buffered', self)
|
|
115
|
+
def write(chunk)
|
|
116
|
+
# drop everything
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
class FluentTestEmitOutput < ::Fluent::Plugin::Output
|
|
121
|
+
::Fluent::Plugin.register_output('test_out_emit', self)
|
|
122
|
+
helpers :event_emitter
|
|
123
|
+
def write(chunk)
|
|
124
|
+
tag = chunk.metadata.tag || 'test'
|
|
125
|
+
array = []
|
|
126
|
+
chunk.each do |time, record|
|
|
127
|
+
array << [time, record]
|
|
128
|
+
end
|
|
129
|
+
router.emit_array(tag, array)
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
|
|
113
133
|
class FluentTestErrorOutput < ::Fluent::Plugin::Output
|
|
114
134
|
::Fluent::Plugin.register_output('test_out_error', self)
|
|
115
135
|
|
data/test/test_root_agent.rb
CHANGED
|
@@ -207,6 +207,145 @@ EOC
|
|
|
207
207
|
end
|
|
208
208
|
end
|
|
209
209
|
|
|
210
|
+
sub_test_case 'configured with label and secondary plugin' do
|
|
211
|
+
setup do
|
|
212
|
+
@ra = RootAgent.new(log: $log)
|
|
213
|
+
stub(Engine).root_agent{ @ra }
|
|
214
|
+
@ra.configure(Config.parse(<<-EOC, "(test)", "(test_dir)", true))
|
|
215
|
+
<source>
|
|
216
|
+
@type test_in
|
|
217
|
+
@label @route_a
|
|
218
|
+
</source>
|
|
219
|
+
<label @route_a>
|
|
220
|
+
<match a.**>
|
|
221
|
+
@type test_out_buffered
|
|
222
|
+
<secondary>
|
|
223
|
+
@type test_out_emit
|
|
224
|
+
</secondary>
|
|
225
|
+
</match>
|
|
226
|
+
</label>
|
|
227
|
+
<label @route_b>
|
|
228
|
+
<match b.**>
|
|
229
|
+
@type test_out
|
|
230
|
+
</match>
|
|
231
|
+
</label>
|
|
232
|
+
EOC
|
|
233
|
+
end
|
|
234
|
+
|
|
235
|
+
test 'secondary plugin has an event router for the label which the plugin is in' do
|
|
236
|
+
assert_equal 1, @ra.inputs.size
|
|
237
|
+
assert_equal 2, @ra.labels.size
|
|
238
|
+
assert_equal ['@route_a', '@route_b'], @ra.labels.keys
|
|
239
|
+
assert_equal '@route_a', @ra.labels['@route_a'].context
|
|
240
|
+
assert_equal '@route_b', @ra.labels['@route_b'].context
|
|
241
|
+
|
|
242
|
+
c1 = @ra.labels['@route_a']
|
|
243
|
+
|
|
244
|
+
assert_equal 1, c1.outputs.size
|
|
245
|
+
assert !c1.outputs.first.has_router?
|
|
246
|
+
|
|
247
|
+
assert c1.outputs.first.secondary
|
|
248
|
+
assert c1.outputs.first.secondary.has_router?
|
|
249
|
+
assert_equal c1.event_router, c1.outputs.first.secondary.router
|
|
250
|
+
end
|
|
251
|
+
end
|
|
252
|
+
|
|
253
|
+
sub_test_case 'configured with label and secondary plugin with @label specifier' do
|
|
254
|
+
setup do
|
|
255
|
+
@ra = RootAgent.new(log: $log)
|
|
256
|
+
stub(Engine).root_agent{ @ra }
|
|
257
|
+
@ra.configure(Config.parse(<<-EOC, "(test)", "(test_dir)", true))
|
|
258
|
+
<source>
|
|
259
|
+
@type test_in
|
|
260
|
+
@label @route_a
|
|
261
|
+
</source>
|
|
262
|
+
<label @route_a>
|
|
263
|
+
<match a.**>
|
|
264
|
+
@type test_out_buffered
|
|
265
|
+
<secondary>
|
|
266
|
+
@type test_out_emit
|
|
267
|
+
@label @route_b
|
|
268
|
+
</secondary>
|
|
269
|
+
</match>
|
|
270
|
+
</label>
|
|
271
|
+
<label @route_b>
|
|
272
|
+
<match b.**>
|
|
273
|
+
@type test_out
|
|
274
|
+
</match>
|
|
275
|
+
</label>
|
|
276
|
+
EOC
|
|
277
|
+
end
|
|
278
|
+
|
|
279
|
+
test 'secondary plugin has an event router for the label specified in secondary section' do
|
|
280
|
+
assert_equal 1, @ra.inputs.size
|
|
281
|
+
assert_equal 2, @ra.labels.size
|
|
282
|
+
assert_equal ['@route_a', '@route_b'], @ra.labels.keys
|
|
283
|
+
assert_equal '@route_a', @ra.labels['@route_a'].context
|
|
284
|
+
assert_equal '@route_b', @ra.labels['@route_b'].context
|
|
285
|
+
|
|
286
|
+
c1 = @ra.labels['@route_a']
|
|
287
|
+
c2 = @ra.labels['@route_b']
|
|
288
|
+
|
|
289
|
+
assert_equal 1, c1.outputs.size
|
|
290
|
+
assert !c1.outputs.first.has_router?
|
|
291
|
+
|
|
292
|
+
assert c1.outputs.first.secondary
|
|
293
|
+
assert c1.outputs.first.secondary.has_router?
|
|
294
|
+
assert_equal c2.event_router, c1.outputs.first.secondary.router
|
|
295
|
+
end
|
|
296
|
+
end
|
|
297
|
+
|
|
298
|
+
sub_test_case 'configured with label and secondary plugin with @label specifier in primary output' do
|
|
299
|
+
setup do
|
|
300
|
+
@ra = RootAgent.new(log: $log)
|
|
301
|
+
stub(Engine).root_agent{ @ra }
|
|
302
|
+
@ra.configure(Config.parse(<<-EOC, "(test)", "(test_dir)", true))
|
|
303
|
+
<source>
|
|
304
|
+
@type test_in
|
|
305
|
+
@label @route_a
|
|
306
|
+
</source>
|
|
307
|
+
<label @route_a>
|
|
308
|
+
<match a.**>
|
|
309
|
+
@type test_out_emit
|
|
310
|
+
@label @route_b
|
|
311
|
+
<secondary>
|
|
312
|
+
@type test_out_emit
|
|
313
|
+
</secondary>
|
|
314
|
+
</match>
|
|
315
|
+
</label>
|
|
316
|
+
<label @route_b>
|
|
317
|
+
<match b.**>
|
|
318
|
+
@type test_out
|
|
319
|
+
</match>
|
|
320
|
+
</label>
|
|
321
|
+
EOC
|
|
322
|
+
end
|
|
323
|
+
|
|
324
|
+
test 'secondary plugin has an event router for the label specified in secondary section' do
|
|
325
|
+
assert_equal 1, @ra.inputs.size
|
|
326
|
+
assert_equal 2, @ra.labels.size
|
|
327
|
+
assert_equal ['@route_a', '@route_b'], @ra.labels.keys
|
|
328
|
+
assert_equal '@route_a', @ra.labels['@route_a'].context
|
|
329
|
+
assert_equal '@route_b', @ra.labels['@route_b'].context
|
|
330
|
+
|
|
331
|
+
c1 = @ra.labels['@route_a']
|
|
332
|
+
c2 = @ra.labels['@route_b']
|
|
333
|
+
|
|
334
|
+
assert_equal 1, c1.outputs.size
|
|
335
|
+
assert c1.outputs.first.secondary
|
|
336
|
+
|
|
337
|
+
p1 = c1.outputs.first
|
|
338
|
+
assert p1.has_router?
|
|
339
|
+
assert_equal c1.event_router, p1.context_router
|
|
340
|
+
assert_equal c2.event_router, p1.router
|
|
341
|
+
|
|
342
|
+
s1 = p1.secondary
|
|
343
|
+
assert s1.has_router?
|
|
344
|
+
assert_equal c1.event_router, s1.context_router
|
|
345
|
+
assert_equal c2.event_router, s1.router
|
|
346
|
+
end
|
|
347
|
+
end
|
|
348
|
+
|
|
210
349
|
sub_test_case 'configured with MultiOutput plugins' do
|
|
211
350
|
setup do
|
|
212
351
|
@ra = RootAgent.new(log: $log)
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
require_relative 'helper'
|
|
2
|
+
require 'fluent/plugin/input'
|
|
3
|
+
require 'fluent/test/driver/input'
|
|
4
|
+
require 'fluent/plugin/output'
|
|
5
|
+
require 'fluent/test/driver/output'
|
|
6
|
+
require 'fluent/plugin/filter'
|
|
7
|
+
require 'fluent/test/driver/filter'
|
|
8
|
+
require 'fluent/plugin/multi_output'
|
|
9
|
+
require 'fluent/test/driver/multi_output'
|
|
10
|
+
require 'fluent/plugin/parser'
|
|
11
|
+
require 'fluent/test/driver/parser'
|
|
12
|
+
require 'fluent/plugin/formatter'
|
|
13
|
+
require 'fluent/test/driver/formatter'
|
|
14
|
+
|
|
15
|
+
require 'timecop'
|
|
16
|
+
|
|
17
|
+
class TestDriverTest < ::Test::Unit::TestCase
|
|
18
|
+
def setup
|
|
19
|
+
Fluent::Test.setup
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
sub_test_case 'plugin test driver' do
|
|
23
|
+
data(
|
|
24
|
+
'input plugin test driver' => [Fluent::Test::Driver::Input, Fluent::Plugin::Input],
|
|
25
|
+
'multi_output plugin test driver' => [Fluent::Test::Driver::MultiOutput, Fluent::Plugin::MultiOutput],
|
|
26
|
+
'parser plugin test driver' => [Fluent::Test::Driver::Parser, Fluent::Plugin::Parser],
|
|
27
|
+
'formatter plugin test driver' => [Fluent::Test::Driver::Formatter, Fluent::Plugin::Formatter],
|
|
28
|
+
)
|
|
29
|
+
test 'returns the block value as the return value of #run' do |args|
|
|
30
|
+
driver_class, plugin_class = args
|
|
31
|
+
d = driver_class.new(Class.new(plugin_class))
|
|
32
|
+
v = d.run do
|
|
33
|
+
x = 1 + 2
|
|
34
|
+
y = 2 + 4
|
|
35
|
+
3 || x || y
|
|
36
|
+
end
|
|
37
|
+
assert_equal 3, v
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
data(
|
|
41
|
+
'input plugin test driver' => [Fluent::Test::Driver::Input, Fluent::Plugin::Input],
|
|
42
|
+
'multi_output plugin test driver' => [Fluent::Test::Driver::MultiOutput, Fluent::Plugin::MultiOutput],
|
|
43
|
+
'parser plugin test driver' => [Fluent::Test::Driver::Parser, Fluent::Plugin::Parser],
|
|
44
|
+
'formatter plugin test driver' => [Fluent::Test::Driver::Formatter, Fluent::Plugin::Formatter],
|
|
45
|
+
)
|
|
46
|
+
test 'raises error for hard timeout' do |args|
|
|
47
|
+
driver_class, plugin_class = args
|
|
48
|
+
d = driver_class.new(Class.new(plugin_class))
|
|
49
|
+
assert_raise Fluent::Test::Driver::TestTimedOut do
|
|
50
|
+
d.run(timeout: 1) do
|
|
51
|
+
sleep 5
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
data(
|
|
57
|
+
'input plugin test driver' => [Fluent::Test::Driver::Input, Fluent::Plugin::Input],
|
|
58
|
+
'multi_output plugin test driver' => [Fluent::Test::Driver::MultiOutput, Fluent::Plugin::MultiOutput],
|
|
59
|
+
'parser plugin test driver' => [Fluent::Test::Driver::Parser, Fluent::Plugin::Parser],
|
|
60
|
+
'formatter plugin test driver' => [Fluent::Test::Driver::Formatter, Fluent::Plugin::Formatter],
|
|
61
|
+
)
|
|
62
|
+
test 'can stop with soft timeout for blocks never stops, even with Timecop' do |args|
|
|
63
|
+
Timecop.freeze(Time.parse("2016-11-04 18:49:00"))
|
|
64
|
+
begin
|
|
65
|
+
driver_class, plugin_class = args
|
|
66
|
+
d = driver_class.new(Class.new(plugin_class))
|
|
67
|
+
assert_nothing_raised do
|
|
68
|
+
before = Process.clock_gettime(Process::CLOCK_MONOTONIC)
|
|
69
|
+
d.end_if{ false }
|
|
70
|
+
d.run(timeout: 1) do
|
|
71
|
+
sleep 0.1 until d.stop?
|
|
72
|
+
end
|
|
73
|
+
after = Process.clock_gettime(Process::CLOCK_MONOTONIC)
|
|
74
|
+
assert{ after >= before + 1.0 }
|
|
75
|
+
end
|
|
76
|
+
ensure
|
|
77
|
+
Timecop.return
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
test 'raise errors raised in threads' do
|
|
82
|
+
d = Fluent::Test::Driver::Input.new(Fluent::Plugin::Input) do
|
|
83
|
+
helpers :thread
|
|
84
|
+
def start
|
|
85
|
+
super
|
|
86
|
+
thread_create(:input_thread_for_test_driver_test) do
|
|
87
|
+
sleep 0.5
|
|
88
|
+
raise "yaaaaaaaaaay!"
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
assert_raise "yaaaaaaaaaay!" do
|
|
93
|
+
d.end_if{ false }
|
|
94
|
+
d.run(timeout: 3) do
|
|
95
|
+
sleep 0.1 until d.stop?
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
sub_test_case 'output plugin test driver' do
|
|
102
|
+
test 'returns the block value as the return value of #run' do
|
|
103
|
+
d = Fluent::Test::Driver::Output.new(Class.new(Fluent::Plugin::Output)) do
|
|
104
|
+
def process(tag, es)
|
|
105
|
+
# drop
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
v = d.run do
|
|
109
|
+
x = 1 + 2
|
|
110
|
+
y = 2 + 4
|
|
111
|
+
3 || x || y
|
|
112
|
+
end
|
|
113
|
+
assert_equal 3, v
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
sub_test_case 'filter plugin test driver' do
|
|
118
|
+
test 'returns the block value as the return value of #run' do
|
|
119
|
+
d = Fluent::Test::Driver::Filter.new(Class.new(Fluent::Plugin::Filter)) do
|
|
120
|
+
def filter(tag, time, record)
|
|
121
|
+
record
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
v = d.run do
|
|
125
|
+
x = 1 + 2
|
|
126
|
+
y = 2 + 4
|
|
127
|
+
3 || x || y
|
|
128
|
+
end
|
|
129
|
+
assert_equal 3, v
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: fluentd
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.14.
|
|
4
|
+
version: 0.14.9
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sadayuki Furuhashi
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-
|
|
11
|
+
date: 2016-11-15 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: msgpack
|
|
@@ -319,6 +319,7 @@ files:
|
|
|
319
319
|
- example/in_udp.conf
|
|
320
320
|
- example/multi_filters.conf
|
|
321
321
|
- example/out_copy.conf
|
|
322
|
+
- example/out_exec_filter.conf
|
|
322
323
|
- example/out_file.conf
|
|
323
324
|
- example/out_forward.conf
|
|
324
325
|
- example/out_forward_buf_file.conf
|
|
@@ -402,6 +403,7 @@ files:
|
|
|
402
403
|
- lib/fluent/plugin/file_wrapper.rb
|
|
403
404
|
- lib/fluent/plugin/filter.rb
|
|
404
405
|
- lib/fluent/plugin/filter_grep.rb
|
|
406
|
+
- lib/fluent/plugin/filter_parser.rb
|
|
405
407
|
- lib/fluent/plugin/filter_record_transformer.rb
|
|
406
408
|
- lib/fluent/plugin/filter_stdout.rb
|
|
407
409
|
- lib/fluent/plugin/formatter.rb
|
|
@@ -413,6 +415,7 @@ files:
|
|
|
413
415
|
- lib/fluent/plugin/formatter_out_file.rb
|
|
414
416
|
- lib/fluent/plugin/formatter_single_value.rb
|
|
415
417
|
- lib/fluent/plugin/formatter_stdout.rb
|
|
418
|
+
- lib/fluent/plugin/formatter_tsv.rb
|
|
416
419
|
- lib/fluent/plugin/in_debug_agent.rb
|
|
417
420
|
- lib/fluent/plugin/in_dummy.rb
|
|
418
421
|
- lib/fluent/plugin/in_exec.rb
|
|
@@ -448,6 +451,7 @@ files:
|
|
|
448
451
|
- lib/fluent/plugin/parser_csv.rb
|
|
449
452
|
- lib/fluent/plugin/parser_json.rb
|
|
450
453
|
- lib/fluent/plugin/parser_ltsv.rb
|
|
454
|
+
- lib/fluent/plugin/parser_msgpack.rb
|
|
451
455
|
- lib/fluent/plugin/parser_multiline.rb
|
|
452
456
|
- lib/fluent/plugin/parser_nginx.rb
|
|
453
457
|
- lib/fluent/plugin/parser_none.rb
|
|
@@ -536,6 +540,7 @@ files:
|
|
|
536
540
|
- test/plugin/test_file_util.rb
|
|
537
541
|
- test/plugin/test_filter.rb
|
|
538
542
|
- test/plugin/test_filter_grep.rb
|
|
543
|
+
- test/plugin/test_filter_parser.rb
|
|
539
544
|
- test/plugin/test_filter_record_transformer.rb
|
|
540
545
|
- test/plugin/test_filter_stdout.rb
|
|
541
546
|
- test/plugin/test_formatter_csv.rb
|
|
@@ -578,10 +583,10 @@ files:
|
|
|
578
583
|
- test/plugin/test_output_as_buffered_secondary.rb
|
|
579
584
|
- test/plugin/test_output_as_standard.rb
|
|
580
585
|
- test/plugin/test_owned_by.rb
|
|
586
|
+
- test/plugin/test_parser.rb
|
|
581
587
|
- test/plugin/test_parser_apache.rb
|
|
582
588
|
- test/plugin/test_parser_apache2.rb
|
|
583
589
|
- test/plugin/test_parser_apache_error.rb
|
|
584
|
-
- test/plugin/test_parser_base.rb
|
|
585
590
|
- test/plugin/test_parser_csv.rb
|
|
586
591
|
- test/plugin/test_parser_json.rb
|
|
587
592
|
- test/plugin/test_parser_labeled_tsv.rb
|
|
@@ -630,6 +635,7 @@ files:
|
|
|
630
635
|
- test/test_process.rb
|
|
631
636
|
- test/test_root_agent.rb
|
|
632
637
|
- test/test_supervisor.rb
|
|
638
|
+
- test/test_test_drivers.rb
|
|
633
639
|
- test/test_time_formatter.rb
|
|
634
640
|
- test/test_time_parser.rb
|
|
635
641
|
- test/test_unique_id.rb
|
|
@@ -690,6 +696,7 @@ test_files:
|
|
|
690
696
|
- test/plugin/test_file_util.rb
|
|
691
697
|
- test/plugin/test_filter.rb
|
|
692
698
|
- test/plugin/test_filter_grep.rb
|
|
699
|
+
- test/plugin/test_filter_parser.rb
|
|
693
700
|
- test/plugin/test_filter_record_transformer.rb
|
|
694
701
|
- test/plugin/test_filter_stdout.rb
|
|
695
702
|
- test/plugin/test_formatter_csv.rb
|
|
@@ -732,10 +739,10 @@ test_files:
|
|
|
732
739
|
- test/plugin/test_output_as_buffered_secondary.rb
|
|
733
740
|
- test/plugin/test_output_as_standard.rb
|
|
734
741
|
- test/plugin/test_owned_by.rb
|
|
742
|
+
- test/plugin/test_parser.rb
|
|
735
743
|
- test/plugin/test_parser_apache.rb
|
|
736
744
|
- test/plugin/test_parser_apache2.rb
|
|
737
745
|
- test/plugin/test_parser_apache_error.rb
|
|
738
|
-
- test/plugin/test_parser_base.rb
|
|
739
746
|
- test/plugin/test_parser_csv.rb
|
|
740
747
|
- test/plugin/test_parser_json.rb
|
|
741
748
|
- test/plugin/test_parser_labeled_tsv.rb
|
|
@@ -784,6 +791,7 @@ test_files:
|
|
|
784
791
|
- test/test_process.rb
|
|
785
792
|
- test/test_root_agent.rb
|
|
786
793
|
- test/test_supervisor.rb
|
|
794
|
+
- test/test_test_drivers.rb
|
|
787
795
|
- test/test_time_formatter.rb
|
|
788
796
|
- test/test_time_parser.rb
|
|
789
797
|
- test/test_unique_id.rb
|