fluentd 0.14.2 → 0.14.5

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.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog +77 -1131
  3. data/Rakefile +15 -0
  4. data/appveyor.yml +2 -2
  5. data/example/in_forward.conf +3 -0
  6. data/example/in_forward_client.conf +37 -0
  7. data/example/in_forward_shared_key.conf +15 -0
  8. data/example/in_forward_users.conf +24 -0
  9. data/example/multi_filters.conf +61 -0
  10. data/example/out_forward.conf +13 -13
  11. data/example/out_forward_client.conf +109 -0
  12. data/example/out_forward_shared_key.conf +36 -0
  13. data/example/out_forward_users.conf +65 -0
  14. data/example/{out_buffered_null.conf → out_null.conf} +10 -6
  15. data/example/secondary_file.conf +41 -0
  16. data/fluentd.gemspec +19 -16
  17. data/lib/fluent/agent.rb +5 -0
  18. data/lib/fluent/command/debug.rb +4 -4
  19. data/lib/fluent/compat/handle_tag_and_time_mixin.rb +2 -0
  20. data/lib/fluent/compat/output.rb +5 -2
  21. data/lib/fluent/config/configure_proxy.rb +26 -5
  22. data/lib/fluent/config/error.rb +3 -0
  23. data/lib/fluent/config/section.rb +15 -0
  24. data/lib/fluent/event_router.rb +77 -4
  25. data/lib/fluent/plugin/base.rb +12 -3
  26. data/lib/fluent/plugin/buffer.rb +5 -1
  27. data/lib/fluent/plugin/filter.rb +48 -6
  28. data/lib/fluent/plugin/filter_record_transformer.rb +3 -1
  29. data/lib/fluent/plugin/filter_stdout.rb +0 -4
  30. data/lib/fluent/plugin/in_debug_agent.rb +5 -5
  31. data/lib/fluent/plugin/in_dummy.rb +9 -1
  32. data/lib/fluent/plugin/in_forward.rb +330 -62
  33. data/lib/fluent/plugin/in_monitor_agent.rb +31 -77
  34. data/lib/fluent/plugin/in_tail.rb +76 -92
  35. data/lib/fluent/plugin/multi_output.rb +4 -0
  36. data/lib/fluent/plugin/out_forward.rb +328 -222
  37. data/lib/fluent/plugin/out_null.rb +37 -0
  38. data/lib/fluent/plugin/out_secondary_file.rb +128 -0
  39. data/lib/fluent/plugin/out_stdout.rb +38 -2
  40. data/lib/fluent/plugin/output.rb +29 -6
  41. data/lib/fluent/plugin/storage_local.rb +16 -0
  42. data/lib/fluent/plugin_helper/timer.rb +6 -1
  43. data/lib/fluent/root_agent.rb +4 -1
  44. data/lib/fluent/supervisor.rb +62 -9
  45. data/lib/fluent/test/base.rb +3 -0
  46. data/lib/fluent/test/driver/base.rb +5 -0
  47. data/lib/fluent/test/formatter_test.rb +2 -0
  48. data/lib/fluent/test/parser_test.rb +2 -0
  49. data/lib/fluent/test/startup_shutdown.rb +33 -0
  50. data/lib/fluent/version.rb +1 -1
  51. data/lib/fluent/winsvc.rb +1 -2
  52. data/test/compat/test_calls_super.rb +2 -0
  53. data/test/config/test_configurable.rb +88 -0
  54. data/test/config/test_types.rb +7 -3
  55. data/test/plugin/test_filter.rb +121 -23
  56. data/test/plugin/test_filter_record_transformer.rb +22 -6
  57. data/test/plugin/test_in_debug_agent.rb +2 -2
  58. data/test/plugin/test_in_forward.rb +920 -407
  59. data/test/plugin/test_in_monitor_agent.rb +333 -0
  60. data/test/plugin/test_in_tail.rb +686 -595
  61. data/test/plugin/test_out_forward.rb +150 -207
  62. data/test/plugin/test_out_null.rb +85 -9
  63. data/test/plugin/test_out_secondary_file.rb +432 -0
  64. data/test/plugin/test_out_stdout.rb +143 -45
  65. data/test/plugin/test_output.rb +53 -0
  66. data/test/plugin/test_output_as_buffered.rb +13 -0
  67. data/test/plugin/test_output_as_buffered_overflow.rb +3 -0
  68. data/test/plugin/test_output_as_buffered_retries.rb +11 -0
  69. data/test/plugin/test_output_as_buffered_secondary.rb +12 -0
  70. data/test/plugin/test_output_as_standard.rb +12 -0
  71. data/test/plugin_helper/test_compat_parameters.rb +2 -0
  72. data/test/plugin_helper/test_timer.rb +31 -0
  73. data/test/test_event_router.rb +87 -0
  74. data/test/test_filter.rb +48 -6
  75. data/test/test_log.rb +5 -2
  76. data/test/test_output.rb +41 -1
  77. data/test/test_plugin_classes.rb +17 -9
  78. data/test/test_root_agent.rb +188 -0
  79. metadata +62 -68
  80. data/lib/fluent/plugin/out_buffered_null.rb +0 -59
  81. data/lib/fluent/plugin/out_buffered_stdout.rb +0 -70
  82. data/test/plugin/test_out_buffered_null.rb +0 -79
  83. data/test/plugin/test_out_buffered_stdout.rb +0 -122
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.2
4
+ version: 0.14.5
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-08-09 00:00:00.000000000 Z
11
+ date: 2016-09-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack
@@ -17,6 +17,9 @@ dependencies:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 0.7.0
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: 2.0.0
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -24,20 +27,9 @@ dependencies:
24
27
  - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: 0.7.0
27
- - !ruby/object:Gem::Dependency
28
- name: json
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: 1.4.3
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
30
+ - - "<"
39
31
  - !ruby/object:Gem::Version
40
- version: 1.4.3
32
+ version: 2.0.0
41
33
  - !ruby/object:Gem::Dependency
42
34
  name: yajl-ruby
43
35
  requirement: !ruby/object:Gem::Requirement
@@ -56,36 +48,30 @@ dependencies:
56
48
  name: cool.io
57
49
  requirement: !ruby/object:Gem::Requirement
58
50
  requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: 1.4.3
62
- - - "<"
51
+ - - "~>"
63
52
  - !ruby/object:Gem::Version
64
- version: 2.0.0
53
+ version: 1.4.5
65
54
  type: :runtime
66
55
  prerelease: false
67
56
  version_requirements: !ruby/object:Gem::Requirement
68
57
  requirements:
69
- - - ">="
70
- - !ruby/object:Gem::Version
71
- version: 1.4.3
72
- - - "<"
58
+ - - "~>"
73
59
  - !ruby/object:Gem::Version
74
- version: 2.0.0
60
+ version: 1.4.5
75
61
  - !ruby/object:Gem::Dependency
76
62
  name: serverengine
77
63
  requirement: !ruby/object:Gem::Requirement
78
64
  requirements:
79
- - - ">="
65
+ - - "~>"
80
66
  - !ruby/object:Gem::Version
81
- version: 1.6.4
67
+ version: '2.0'
82
68
  type: :runtime
83
69
  prerelease: false
84
70
  version_requirements: !ruby/object:Gem::Requirement
85
71
  requirements:
86
- - - ">="
72
+ - - "~>"
87
73
  - !ruby/object:Gem::Version
88
- version: 1.6.4
74
+ version: '2.0'
89
75
  - !ruby/object:Gem::Dependency
90
76
  name: http_parser.rb
91
77
  requirement: !ruby/object:Gem::Requirement
@@ -124,84 +110,84 @@ dependencies:
124
110
  name: tzinfo
125
111
  requirement: !ruby/object:Gem::Requirement
126
112
  requirements:
127
- - - ">="
113
+ - - "~>"
128
114
  - !ruby/object:Gem::Version
129
- version: 1.0.0
115
+ version: '1.0'
130
116
  type: :runtime
131
117
  prerelease: false
132
118
  version_requirements: !ruby/object:Gem::Requirement
133
119
  requirements:
134
- - - ">="
120
+ - - "~>"
135
121
  - !ruby/object:Gem::Version
136
- version: 1.0.0
122
+ version: '1.0'
137
123
  - !ruby/object:Gem::Dependency
138
124
  name: tzinfo-data
139
125
  requirement: !ruby/object:Gem::Requirement
140
126
  requirements:
141
- - - ">="
127
+ - - "~>"
142
128
  - !ruby/object:Gem::Version
143
- version: 1.0.0
129
+ version: '1.0'
144
130
  type: :runtime
145
131
  prerelease: false
146
132
  version_requirements: !ruby/object:Gem::Requirement
147
133
  requirements:
148
- - - ">="
134
+ - - "~>"
149
135
  - !ruby/object:Gem::Version
150
- version: 1.0.0
136
+ version: '1.0'
151
137
  - !ruby/object:Gem::Dependency
152
138
  name: strptime
153
139
  requirement: !ruby/object:Gem::Requirement
154
140
  requirements:
155
- - - ">="
141
+ - - "~>"
156
142
  - !ruby/object:Gem::Version
157
143
  version: 0.1.7
158
144
  type: :runtime
159
145
  prerelease: false
160
146
  version_requirements: !ruby/object:Gem::Requirement
161
147
  requirements:
162
- - - ">="
148
+ - - "~>"
163
149
  - !ruby/object:Gem::Version
164
150
  version: 0.1.7
165
151
  - !ruby/object:Gem::Dependency
166
152
  name: rake
167
153
  requirement: !ruby/object:Gem::Requirement
168
154
  requirements:
169
- - - ">="
155
+ - - "~>"
170
156
  - !ruby/object:Gem::Version
171
- version: 0.9.2
157
+ version: '11.0'
172
158
  type: :development
173
159
  prerelease: false
174
160
  version_requirements: !ruby/object:Gem::Requirement
175
161
  requirements:
176
- - - ">="
162
+ - - "~>"
177
163
  - !ruby/object:Gem::Version
178
- version: 0.9.2
164
+ version: '11.0'
179
165
  - !ruby/object:Gem::Dependency
180
166
  name: flexmock
181
167
  requirement: !ruby/object:Gem::Requirement
182
168
  requirements:
183
169
  - - "~>"
184
170
  - !ruby/object:Gem::Version
185
- version: 2.0.5
171
+ version: '2.0'
186
172
  type: :development
187
173
  prerelease: false
188
174
  version_requirements: !ruby/object:Gem::Requirement
189
175
  requirements:
190
176
  - - "~>"
191
177
  - !ruby/object:Gem::Version
192
- version: 2.0.5
178
+ version: '2.0'
193
179
  - !ruby/object:Gem::Dependency
194
180
  name: parallel_tests
195
181
  requirement: !ruby/object:Gem::Requirement
196
182
  requirements:
197
- - - ">="
183
+ - - "~>"
198
184
  - !ruby/object:Gem::Version
199
185
  version: 0.15.3
200
186
  type: :development
201
187
  prerelease: false
202
188
  version_requirements: !ruby/object:Gem::Requirement
203
189
  requirements:
204
- - - ">="
190
+ - - "~>"
205
191
  - !ruby/object:Gem::Version
206
192
  version: 0.15.3
207
193
  - !ruby/object:Gem::Dependency
@@ -210,70 +196,70 @@ dependencies:
210
196
  requirements:
211
197
  - - "~>"
212
198
  - !ruby/object:Gem::Version
213
- version: 0.6.4
199
+ version: '0.7'
214
200
  type: :development
215
201
  prerelease: false
216
202
  version_requirements: !ruby/object:Gem::Requirement
217
203
  requirements:
218
204
  - - "~>"
219
205
  - !ruby/object:Gem::Version
220
- version: 0.6.4
206
+ version: '0.7'
221
207
  - !ruby/object:Gem::Dependency
222
208
  name: rr
223
209
  requirement: !ruby/object:Gem::Requirement
224
210
  requirements:
225
- - - ">="
211
+ - - "~>"
226
212
  - !ruby/object:Gem::Version
227
- version: 1.0.0
213
+ version: '1.0'
228
214
  type: :development
229
215
  prerelease: false
230
216
  version_requirements: !ruby/object:Gem::Requirement
231
217
  requirements:
232
- - - ">="
218
+ - - "~>"
233
219
  - !ruby/object:Gem::Version
234
- version: 1.0.0
220
+ version: '1.0'
235
221
  - !ruby/object:Gem::Dependency
236
222
  name: timecop
237
223
  requirement: !ruby/object:Gem::Requirement
238
224
  requirements:
239
- - - ">="
225
+ - - "~>"
240
226
  - !ruby/object:Gem::Version
241
- version: 0.3.0
227
+ version: '0.3'
242
228
  type: :development
243
229
  prerelease: false
244
230
  version_requirements: !ruby/object:Gem::Requirement
245
231
  requirements:
246
- - - ">="
232
+ - - "~>"
247
233
  - !ruby/object:Gem::Version
248
- version: 0.3.0
234
+ version: '0.3'
249
235
  - !ruby/object:Gem::Dependency
250
236
  name: test-unit
251
237
  requirement: !ruby/object:Gem::Requirement
252
238
  requirements:
253
239
  - - "~>"
254
240
  - !ruby/object:Gem::Version
255
- version: 3.1.4
241
+ version: '3.2'
256
242
  type: :development
257
243
  prerelease: false
258
244
  version_requirements: !ruby/object:Gem::Requirement
259
245
  requirements:
260
246
  - - "~>"
261
247
  - !ruby/object:Gem::Version
262
- version: 3.1.4
248
+ version: '3.2'
263
249
  - !ruby/object:Gem::Dependency
264
250
  name: test-unit-rr
265
251
  requirement: !ruby/object:Gem::Requirement
266
252
  requirements:
267
253
  - - "~>"
268
254
  - !ruby/object:Gem::Version
269
- version: 1.0.3
255
+ version: '1.0'
270
256
  type: :development
271
257
  prerelease: false
272
258
  version_requirements: !ruby/object:Gem::Requirement
273
259
  requirements:
274
260
  - - "~>"
275
261
  - !ruby/object:Gem::Version
276
- version: 1.0.3
262
+ version: '1.0'
277
263
  - !ruby/object:Gem::Dependency
278
264
  name: oj
279
265
  requirement: !ruby/object:Gem::Requirement
@@ -319,17 +305,25 @@ files:
319
305
  - example/copy_roundrobin.conf
320
306
  - example/filter_stdout.conf
321
307
  - example/in_forward.conf
308
+ - example/in_forward_client.conf
309
+ - example/in_forward_shared_key.conf
310
+ - example/in_forward_users.conf
322
311
  - example/in_http.conf
323
312
  - example/in_out_forward.conf
324
313
  - example/in_syslog.conf
325
314
  - example/in_tail.conf
326
315
  - example/in_tcp.conf
327
316
  - example/in_udp.conf
328
- - example/out_buffered_null.conf
317
+ - example/multi_filters.conf
329
318
  - example/out_copy.conf
330
319
  - example/out_file.conf
331
320
  - example/out_forward.conf
332
321
  - example/out_forward_buf_file.conf
322
+ - example/out_forward_client.conf
323
+ - example/out_forward_shared_key.conf
324
+ - example/out_forward_users.conf
325
+ - example/out_null.conf
326
+ - example/secondary_file.conf
333
327
  - example/v0_12_filter.conf
334
328
  - example/v1_literal_example.conf
335
329
  - fluent.conf
@@ -429,8 +423,6 @@ files:
429
423
  - lib/fluent/plugin/in_unix.rb
430
424
  - lib/fluent/plugin/input.rb
431
425
  - lib/fluent/plugin/multi_output.rb
432
- - lib/fluent/plugin/out_buffered_null.rb
433
- - lib/fluent/plugin/out_buffered_stdout.rb
434
426
  - lib/fluent/plugin/out_copy.rb
435
427
  - lib/fluent/plugin/out_exec.rb
436
428
  - lib/fluent/plugin/out_exec_filter.rb
@@ -439,6 +431,7 @@ files:
439
431
  - lib/fluent/plugin/out_null.rb
440
432
  - lib/fluent/plugin/out_relabel.rb
441
433
  - lib/fluent/plugin/out_roundrobin.rb
434
+ - lib/fluent/plugin/out_secondary_file.rb
442
435
  - lib/fluent/plugin/out_stdout.rb
443
436
  - lib/fluent/plugin/out_stream.rb
444
437
  - lib/fluent/plugin/output.rb
@@ -499,6 +492,7 @@ files:
499
492
  - lib/fluent/test/log.rb
500
493
  - lib/fluent/test/output_test.rb
501
494
  - lib/fluent/test/parser_test.rb
495
+ - lib/fluent/test/startup_shutdown.rb
502
496
  - lib/fluent/time.rb
503
497
  - lib/fluent/timezone.rb
504
498
  - lib/fluent/unique_id.rb
@@ -548,6 +542,7 @@ files:
548
542
  - test/plugin/test_in_forward.rb
549
543
  - test/plugin/test_in_gc_stat.rb
550
544
  - test/plugin/test_in_http.rb
545
+ - test/plugin/test_in_monitor_agent.rb
551
546
  - test/plugin/test_in_object_space.rb
552
547
  - test/plugin/test_in_syslog.rb
553
548
  - test/plugin/test_in_tail.rb
@@ -556,8 +551,6 @@ files:
556
551
  - test/plugin/test_in_unix.rb
557
552
  - test/plugin/test_input.rb
558
553
  - test/plugin/test_multi_output.rb
559
- - test/plugin/test_out_buffered_null.rb
560
- - test/plugin/test_out_buffered_stdout.rb
561
554
  - test/plugin/test_out_copy.rb
562
555
  - test/plugin/test_out_exec.rb
563
556
  - test/plugin/test_out_exec_filter.rb
@@ -566,6 +559,7 @@ files:
566
559
  - test/plugin/test_out_null.rb
567
560
  - test/plugin/test_out_relabel.rb
568
561
  - test/plugin/test_out_roundrobin.rb
562
+ - test/plugin/test_out_secondary_file.rb
569
563
  - test/plugin/test_out_stdout.rb
570
564
  - test/plugin/test_out_stream.rb
571
565
  - test/plugin/test_output.rb
@@ -696,6 +690,7 @@ test_files:
696
690
  - test/plugin/test_in_forward.rb
697
691
  - test/plugin/test_in_gc_stat.rb
698
692
  - test/plugin/test_in_http.rb
693
+ - test/plugin/test_in_monitor_agent.rb
699
694
  - test/plugin/test_in_object_space.rb
700
695
  - test/plugin/test_in_syslog.rb
701
696
  - test/plugin/test_in_tail.rb
@@ -704,8 +699,6 @@ test_files:
704
699
  - test/plugin/test_in_unix.rb
705
700
  - test/plugin/test_input.rb
706
701
  - test/plugin/test_multi_output.rb
707
- - test/plugin/test_out_buffered_null.rb
708
- - test/plugin/test_out_buffered_stdout.rb
709
702
  - test/plugin/test_out_copy.rb
710
703
  - test/plugin/test_out_exec.rb
711
704
  - test/plugin/test_out_exec_filter.rb
@@ -714,6 +707,7 @@ test_files:
714
707
  - test/plugin/test_out_null.rb
715
708
  - test/plugin/test_out_relabel.rb
716
709
  - test/plugin/test_out_roundrobin.rb
710
+ - test/plugin/test_out_secondary_file.rb
717
711
  - test/plugin/test_out_stdout.rb
718
712
  - test/plugin/test_out_stream.rb
719
713
  - test/plugin/test_output.rb
@@ -1,59 +0,0 @@
1
- #
2
- # Fluentd
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
- #
16
-
17
- require 'fluent/plugin/output'
18
-
19
- module Fluent::Plugin
20
- class BufferedNullOutput < Output
21
- # This plugin is for tests of buffer plugins
22
-
23
- Fluent::Plugin.register_output('buffered_null', self)
24
-
25
- config_section :buffer do
26
- config_set_default :chunk_keys, ['tag']
27
- config_set_default :flush_at_shutdown, true
28
- config_set_default :chunk_limit_size, 10 * 1024
29
- end
30
-
31
- attr_accessor :feed_proc, :delayed
32
-
33
- def initialize
34
- super
35
- @delayed = false
36
- @feed_proc = nil
37
- end
38
-
39
- def prefer_delayed_commit
40
- @delayed
41
- end
42
-
43
- def write(chunk)
44
- if @feed_proc
45
- @feed_proc.call(chunk)
46
- else
47
- # ignore chunk.read
48
- end
49
- end
50
-
51
- def try_write(chunk)
52
- if @feed_proc
53
- @feed_proc.call(chunk)
54
- else
55
- # ignore chunk.read
56
- end
57
- end
58
- end
59
- end
@@ -1,70 +0,0 @@
1
- #
2
- # Fluentd
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
- #
16
-
17
- require 'fluent/plugin/output'
18
-
19
- module Fluent::Plugin
20
- class BufferedStdoutOutput < Output
21
- Fluent::Plugin.register_output('buffered_stdout', self)
22
-
23
- helpers :formatter, :inject, :compat_parameters
24
-
25
- config_section :buffer do
26
- config_set_default :chunk_keys, ['tag']
27
- config_set_default :flush_at_shutdown, true
28
- config_set_default :chunk_limit_size, 10 * 1024
29
- end
30
-
31
- DEFAULT_FORMAT_TYPE = 'json'
32
-
33
- config_section :format do
34
- config_set_default :@type, DEFAULT_FORMAT_TYPE
35
- end
36
-
37
- attr_accessor :delayed
38
-
39
- def initialize
40
- super
41
- @delayed = false
42
- end
43
-
44
- def prefer_delayed_commit
45
- @delayed
46
- end
47
-
48
- def configure(conf)
49
- if conf['output_type'] && !conf['format']
50
- conf['format'] = conf['output_type']
51
- end
52
- compat_parameters_convert(conf, :inject, :formatter)
53
- super
54
- @formatter = formatter_create(conf: conf.elements('format').first, default_type: DEFAULT_FORMAT_TYPE)
55
- end
56
-
57
- def write(chunk)
58
- chunk.write_to($log)
59
- end
60
-
61
- def try_write(chunk)
62
- chunk.write_to($log)
63
- end
64
-
65
- def format(tag, time, record)
66
- record = inject_values_to_record(tag, time, record)
67
- "#{Time.at(time).localtime} #{tag}: #{@formatter.format(tag, time, record).chomp}\n"
68
- end
69
- end
70
- end
@@ -1,79 +0,0 @@
1
- require_relative '../helper'
2
- require 'fluent/test/driver/output'
3
- require 'fluent/plugin/out_buffered_null'
4
-
5
- class BufferedNullOutputTestCase < Test::Unit::TestCase
6
- sub_test_case 'BufferedNullOutput' do
7
- test 'default chunk limit size is 100' do
8
- d = Fluent::Test::Driver::Output.new(Fluent::Plugin::BufferedNullOutput).configure('')
9
- assert_equal 10 * 1024, d.instance.buffer_config.chunk_limit_size
10
- assert d.instance.buffer_config.flush_at_shutdown
11
- assert_equal ['tag'], d.instance.buffer_config.chunk_keys
12
- assert d.instance.chunk_key_tag
13
- assert !d.instance.chunk_key_time
14
- assert_equal [], d.instance.chunk_keys
15
- end
16
-
17
- test 'writes standard formattted chunks' do
18
- d = Fluent::Test::Driver::Output.new(Fluent::Plugin::BufferedNullOutput).configure('')
19
- t = event_time("2016-05-23 00:22:13 -0800")
20
- d.run(default_tag: 'test', flush: true) do
21
- d.feed(t, {"message" => "null null null"})
22
- d.feed(t, {"message" => "null null"})
23
- d.feed(t, {"message" => "null"})
24
- end
25
-
26
- assert_equal 3, d.instance.emit_count
27
- assert_equal 3, d.instance.emit_records
28
- end
29
-
30
- test 'check for chunk passed to #write' do
31
- d = Fluent::Test::Driver::Output.new(Fluent::Plugin::BufferedNullOutput).configure('')
32
- data = []
33
- d.instance.feed_proc = ->(chunk){ data << [chunk.unique_id, chunk.metadata.tag, chunk.read] }
34
-
35
- t = event_time("2016-05-23 00:22:13 -0800")
36
- d.run(default_tag: 'test', flush: true) do
37
- d.feed(t, {"message" => "null null null"})
38
- d.feed(t, {"message" => "null null"})
39
- d.feed(t, {"message" => "null"})
40
- end
41
-
42
- assert_equal 1, data.size
43
- _, tag, binary = data.first
44
- events = []
45
- Fluent::MessagePackFactory.unpacker.feed_each(binary){|obj| events << obj }
46
- assert_equal 'test', tag
47
- assert_equal [ [t, {"message" => "null null null"}], [t, {"message" => "null null"}], [t, {"message" => "null"}] ], events
48
- end
49
-
50
- test 'check for chunk passed to #try_write' do
51
- d = Fluent::Test::Driver::Output.new(Fluent::Plugin::BufferedNullOutput).configure('')
52
- data = []
53
- d.instance.feed_proc = ->(chunk){ data << [chunk.unique_id, chunk.metadata.tag, chunk.read] }
54
- d.instance.delayed = true
55
-
56
- t = event_time("2016-05-23 00:22:13 -0800")
57
- d.run(default_tag: 'test', flush: true, shutdown: false) do
58
- d.feed(t, {"message" => "null null null"})
59
- d.feed(t, {"message" => "null null"})
60
- d.feed(t, {"message" => "null"})
61
- end
62
-
63
- assert_equal 1, data.size
64
- chunk_id, tag, binary = data.first
65
- events = []
66
- Fluent::MessagePackFactory.unpacker.feed_each(binary){|obj| events << obj }
67
- assert_equal 'test', tag
68
- assert_equal [ [t, {"message" => "null null null"}], [t, {"message" => "null null"}], [t, {"message" => "null"}] ], events
69
-
70
- assert_equal [chunk_id], d.instance.buffer.dequeued.keys
71
-
72
- d.instance.commit_write(chunk_id)
73
-
74
- assert_equal [], d.instance.buffer.dequeued.keys
75
-
76
- d.instance_shutdown
77
- end
78
- end
79
- end