fluentd 1.16.5-x64-mingw32 → 1.17.1-x64-mingw32

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 (268) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +88 -0
  3. data/README.md +2 -1
  4. data/Rakefile +1 -1
  5. data/SECURITY.md +2 -2
  6. data/fluent.conf +14 -14
  7. data/lib/fluent/command/binlog_reader.rb +1 -1
  8. data/lib/fluent/command/cap_ctl.rb +4 -4
  9. data/lib/fluent/compat/call_super_mixin.rb +3 -3
  10. data/lib/fluent/compat/propagate_default.rb +4 -4
  11. data/lib/fluent/config/configure_proxy.rb +2 -2
  12. data/lib/fluent/config/types.rb +1 -1
  13. data/lib/fluent/config/yaml_parser/parser.rb +4 -0
  14. data/lib/fluent/configurable.rb +2 -2
  15. data/lib/fluent/counter/mutex_hash.rb +1 -1
  16. data/lib/fluent/fluent_log_event_router.rb +0 -2
  17. data/lib/fluent/log/console_adapter.rb +4 -2
  18. data/lib/fluent/plugin/buf_file.rb +1 -1
  19. data/lib/fluent/plugin/buffer/file_chunk.rb +1 -1
  20. data/lib/fluent/plugin/buffer/file_single_chunk.rb +2 -3
  21. data/lib/fluent/plugin/filter_parser.rb +26 -8
  22. data/lib/fluent/plugin/in_exec.rb +14 -2
  23. data/lib/fluent/plugin/in_http.rb +19 -54
  24. data/lib/fluent/plugin/in_sample.rb +13 -7
  25. data/lib/fluent/plugin/in_tail.rb +99 -25
  26. data/lib/fluent/plugin/out_copy.rb +1 -1
  27. data/lib/fluent/plugin/out_file.rb +8 -0
  28. data/lib/fluent/plugin/out_http.rb +137 -13
  29. data/lib/fluent/plugin/owned_by_mixin.rb +0 -1
  30. data/lib/fluent/plugin/parser_json.rb +26 -17
  31. data/lib/fluent/plugin/parser_msgpack.rb +24 -3
  32. data/lib/fluent/plugin_helper/http_server/server.rb +1 -1
  33. data/lib/fluent/plugin_helper/metrics.rb +2 -2
  34. data/lib/fluent/registry.rb +6 -6
  35. data/lib/fluent/test/output_test.rb +1 -1
  36. data/lib/fluent/unique_id.rb +1 -1
  37. data/lib/fluent/version.rb +1 -1
  38. data/templates/new_gem/fluent-plugin.gemspec.erb +6 -5
  39. metadata +109 -459
  40. data/.github/ISSUE_TEMPLATE/bug_report.yml +0 -71
  41. data/.github/ISSUE_TEMPLATE/config.yml +0 -5
  42. data/.github/ISSUE_TEMPLATE/feature_request.yml +0 -39
  43. data/.github/ISSUE_TEMPLATE.md +0 -17
  44. data/.github/PULL_REQUEST_TEMPLATE.md +0 -14
  45. data/.github/workflows/stale-actions.yml +0 -24
  46. data/.github/workflows/test.yml +0 -32
  47. data/.gitignore +0 -30
  48. data/Gemfile +0 -9
  49. data/fluentd.gemspec +0 -54
  50. data/test/command/test_binlog_reader.rb +0 -362
  51. data/test/command/test_ca_generate.rb +0 -70
  52. data/test/command/test_cap_ctl.rb +0 -100
  53. data/test/command/test_cat.rb +0 -128
  54. data/test/command/test_ctl.rb +0 -56
  55. data/test/command/test_fluentd.rb +0 -1291
  56. data/test/command/test_plugin_config_formatter.rb +0 -397
  57. data/test/command/test_plugin_generator.rb +0 -109
  58. data/test/compat/test_calls_super.rb +0 -166
  59. data/test/compat/test_parser.rb +0 -92
  60. data/test/config/assertions.rb +0 -42
  61. data/test/config/test_config_parser.rb +0 -551
  62. data/test/config/test_configurable.rb +0 -1784
  63. data/test/config/test_configure_proxy.rb +0 -604
  64. data/test/config/test_dsl.rb +0 -415
  65. data/test/config/test_element.rb +0 -518
  66. data/test/config/test_literal_parser.rb +0 -309
  67. data/test/config/test_plugin_configuration.rb +0 -56
  68. data/test/config/test_section.rb +0 -191
  69. data/test/config/test_system_config.rb +0 -195
  70. data/test/config/test_types.rb +0 -408
  71. data/test/counter/test_client.rb +0 -563
  72. data/test/counter/test_error.rb +0 -44
  73. data/test/counter/test_mutex_hash.rb +0 -179
  74. data/test/counter/test_server.rb +0 -589
  75. data/test/counter/test_store.rb +0 -258
  76. data/test/counter/test_validator.rb +0 -137
  77. data/test/helper.rb +0 -155
  78. data/test/helpers/fuzzy_assert.rb +0 -89
  79. data/test/helpers/process_extenstion.rb +0 -33
  80. data/test/log/test_console_adapter.rb +0 -110
  81. data/test/plugin/data/2010/01/20100102-030405.log +0 -0
  82. data/test/plugin/data/2010/01/20100102-030406.log +0 -0
  83. data/test/plugin/data/2010/01/20100102.log +0 -0
  84. data/test/plugin/data/log/bar +0 -0
  85. data/test/plugin/data/log/foo/bar.log +0 -0
  86. data/test/plugin/data/log/foo/bar2 +0 -0
  87. data/test/plugin/data/log/test.log +0 -0
  88. data/test/plugin/data/sd_file/config +0 -11
  89. data/test/plugin/data/sd_file/config.json +0 -17
  90. data/test/plugin/data/sd_file/config.yaml +0 -11
  91. data/test/plugin/data/sd_file/config.yml +0 -11
  92. data/test/plugin/data/sd_file/invalid_config.yml +0 -7
  93. data/test/plugin/in_tail/test_fifo.rb +0 -121
  94. data/test/plugin/in_tail/test_io_handler.rb +0 -150
  95. data/test/plugin/in_tail/test_position_file.rb +0 -346
  96. data/test/plugin/out_forward/test_ack_handler.rb +0 -140
  97. data/test/plugin/out_forward/test_connection_manager.rb +0 -145
  98. data/test/plugin/out_forward/test_handshake_protocol.rb +0 -112
  99. data/test/plugin/out_forward/test_load_balancer.rb +0 -106
  100. data/test/plugin/out_forward/test_socket_cache.rb +0 -174
  101. data/test/plugin/test_bare_output.rb +0 -131
  102. data/test/plugin/test_base.rb +0 -247
  103. data/test/plugin/test_buf_file.rb +0 -1314
  104. data/test/plugin/test_buf_file_single.rb +0 -898
  105. data/test/plugin/test_buf_memory.rb +0 -42
  106. data/test/plugin/test_buffer.rb +0 -1493
  107. data/test/plugin/test_buffer_chunk.rb +0 -209
  108. data/test/plugin/test_buffer_file_chunk.rb +0 -871
  109. data/test/plugin/test_buffer_file_single_chunk.rb +0 -611
  110. data/test/plugin/test_buffer_memory_chunk.rb +0 -339
  111. data/test/plugin/test_compressable.rb +0 -87
  112. data/test/plugin/test_file_util.rb +0 -96
  113. data/test/plugin/test_filter.rb +0 -368
  114. data/test/plugin/test_filter_grep.rb +0 -697
  115. data/test/plugin/test_filter_parser.rb +0 -731
  116. data/test/plugin/test_filter_record_transformer.rb +0 -577
  117. data/test/plugin/test_filter_stdout.rb +0 -207
  118. data/test/plugin/test_formatter_csv.rb +0 -136
  119. data/test/plugin/test_formatter_hash.rb +0 -38
  120. data/test/plugin/test_formatter_json.rb +0 -61
  121. data/test/plugin/test_formatter_ltsv.rb +0 -70
  122. data/test/plugin/test_formatter_msgpack.rb +0 -28
  123. data/test/plugin/test_formatter_out_file.rb +0 -116
  124. data/test/plugin/test_formatter_single_value.rb +0 -44
  125. data/test/plugin/test_formatter_tsv.rb +0 -76
  126. data/test/plugin/test_in_debug_agent.rb +0 -49
  127. data/test/plugin/test_in_exec.rb +0 -261
  128. data/test/plugin/test_in_forward.rb +0 -1178
  129. data/test/plugin/test_in_gc_stat.rb +0 -62
  130. data/test/plugin/test_in_http.rb +0 -1102
  131. data/test/plugin/test_in_monitor_agent.rb +0 -922
  132. data/test/plugin/test_in_object_space.rb +0 -66
  133. data/test/plugin/test_in_sample.rb +0 -190
  134. data/test/plugin/test_in_syslog.rb +0 -505
  135. data/test/plugin/test_in_tail.rb +0 -3288
  136. data/test/plugin/test_in_tcp.rb +0 -328
  137. data/test/plugin/test_in_udp.rb +0 -296
  138. data/test/plugin/test_in_unix.rb +0 -181
  139. data/test/plugin/test_input.rb +0 -137
  140. data/test/plugin/test_metadata.rb +0 -89
  141. data/test/plugin/test_metrics.rb +0 -294
  142. data/test/plugin/test_metrics_local.rb +0 -96
  143. data/test/plugin/test_multi_output.rb +0 -204
  144. data/test/plugin/test_out_copy.rb +0 -308
  145. data/test/plugin/test_out_exec.rb +0 -312
  146. data/test/plugin/test_out_exec_filter.rb +0 -606
  147. data/test/plugin/test_out_file.rb +0 -1038
  148. data/test/plugin/test_out_forward.rb +0 -1349
  149. data/test/plugin/test_out_http.rb +0 -429
  150. data/test/plugin/test_out_null.rb +0 -105
  151. data/test/plugin/test_out_relabel.rb +0 -28
  152. data/test/plugin/test_out_roundrobin.rb +0 -146
  153. data/test/plugin/test_out_secondary_file.rb +0 -458
  154. data/test/plugin/test_out_stdout.rb +0 -205
  155. data/test/plugin/test_out_stream.rb +0 -103
  156. data/test/plugin/test_output.rb +0 -1334
  157. data/test/plugin/test_output_as_buffered.rb +0 -2024
  158. data/test/plugin/test_output_as_buffered_backup.rb +0 -363
  159. data/test/plugin/test_output_as_buffered_compress.rb +0 -179
  160. data/test/plugin/test_output_as_buffered_overflow.rb +0 -250
  161. data/test/plugin/test_output_as_buffered_retries.rb +0 -966
  162. data/test/plugin/test_output_as_buffered_secondary.rb +0 -882
  163. data/test/plugin/test_output_as_standard.rb +0 -374
  164. data/test/plugin/test_owned_by.rb +0 -35
  165. data/test/plugin/test_parser.rb +0 -399
  166. data/test/plugin/test_parser_apache.rb +0 -42
  167. data/test/plugin/test_parser_apache2.rb +0 -47
  168. data/test/plugin/test_parser_apache_error.rb +0 -45
  169. data/test/plugin/test_parser_csv.rb +0 -200
  170. data/test/plugin/test_parser_json.rb +0 -138
  171. data/test/plugin/test_parser_labeled_tsv.rb +0 -160
  172. data/test/plugin/test_parser_multiline.rb +0 -111
  173. data/test/plugin/test_parser_nginx.rb +0 -88
  174. data/test/plugin/test_parser_none.rb +0 -52
  175. data/test/plugin/test_parser_regexp.rb +0 -284
  176. data/test/plugin/test_parser_syslog.rb +0 -650
  177. data/test/plugin/test_parser_tsv.rb +0 -122
  178. data/test/plugin/test_sd_file.rb +0 -228
  179. data/test/plugin/test_sd_srv.rb +0 -230
  180. data/test/plugin/test_storage.rb +0 -167
  181. data/test/plugin/test_storage_local.rb +0 -335
  182. data/test/plugin/test_string_util.rb +0 -26
  183. data/test/plugin_helper/data/cert/cert-key.pem +0 -27
  184. data/test/plugin_helper/data/cert/cert-with-CRLF.pem +0 -19
  185. data/test/plugin_helper/data/cert/cert-with-no-newline.pem +0 -19
  186. data/test/plugin_helper/data/cert/cert.pem +0 -19
  187. data/test/plugin_helper/data/cert/cert_chains/ca-cert-key.pem +0 -27
  188. data/test/plugin_helper/data/cert/cert_chains/ca-cert.pem +0 -20
  189. data/test/plugin_helper/data/cert/cert_chains/cert-key.pem +0 -27
  190. data/test/plugin_helper/data/cert/cert_chains/cert.pem +0 -40
  191. data/test/plugin_helper/data/cert/empty.pem +0 -0
  192. data/test/plugin_helper/data/cert/generate_cert.rb +0 -125
  193. data/test/plugin_helper/data/cert/with_ca/ca-cert-key-pass.pem +0 -30
  194. data/test/plugin_helper/data/cert/with_ca/ca-cert-key.pem +0 -27
  195. data/test/plugin_helper/data/cert/with_ca/ca-cert-pass.pem +0 -20
  196. data/test/plugin_helper/data/cert/with_ca/ca-cert.pem +0 -20
  197. data/test/plugin_helper/data/cert/with_ca/cert-key-pass.pem +0 -30
  198. data/test/plugin_helper/data/cert/with_ca/cert-key.pem +0 -27
  199. data/test/plugin_helper/data/cert/with_ca/cert-pass.pem +0 -21
  200. data/test/plugin_helper/data/cert/with_ca/cert.pem +0 -21
  201. data/test/plugin_helper/data/cert/without_ca/cert-key-pass.pem +0 -30
  202. data/test/plugin_helper/data/cert/without_ca/cert-key.pem +0 -27
  203. data/test/plugin_helper/data/cert/without_ca/cert-pass.pem +0 -20
  204. data/test/plugin_helper/data/cert/without_ca/cert.pem +0 -20
  205. data/test/plugin_helper/http_server/test_app.rb +0 -65
  206. data/test/plugin_helper/http_server/test_route.rb +0 -32
  207. data/test/plugin_helper/service_discovery/test_manager.rb +0 -93
  208. data/test/plugin_helper/service_discovery/test_round_robin_balancer.rb +0 -21
  209. data/test/plugin_helper/test_cert_option.rb +0 -25
  210. data/test/plugin_helper/test_child_process.rb +0 -862
  211. data/test/plugin_helper/test_compat_parameters.rb +0 -358
  212. data/test/plugin_helper/test_event_emitter.rb +0 -80
  213. data/test/plugin_helper/test_event_loop.rb +0 -52
  214. data/test/plugin_helper/test_extract.rb +0 -194
  215. data/test/plugin_helper/test_formatter.rb +0 -255
  216. data/test/plugin_helper/test_http_server_helper.rb +0 -372
  217. data/test/plugin_helper/test_inject.rb +0 -561
  218. data/test/plugin_helper/test_metrics.rb +0 -137
  219. data/test/plugin_helper/test_parser.rb +0 -264
  220. data/test/plugin_helper/test_record_accessor.rb +0 -238
  221. data/test/plugin_helper/test_retry_state.rb +0 -1006
  222. data/test/plugin_helper/test_server.rb +0 -1895
  223. data/test/plugin_helper/test_service_discovery.rb +0 -165
  224. data/test/plugin_helper/test_socket.rb +0 -146
  225. data/test/plugin_helper/test_storage.rb +0 -542
  226. data/test/plugin_helper/test_thread.rb +0 -164
  227. data/test/plugin_helper/test_timer.rb +0 -130
  228. data/test/scripts/exec_script.rb +0 -32
  229. data/test/scripts/fluent/plugin/formatter1/formatter_test1.rb +0 -7
  230. data/test/scripts/fluent/plugin/formatter2/formatter_test2.rb +0 -7
  231. data/test/scripts/fluent/plugin/formatter_known.rb +0 -8
  232. data/test/scripts/fluent/plugin/out_test.rb +0 -81
  233. data/test/scripts/fluent/plugin/out_test2.rb +0 -80
  234. data/test/scripts/fluent/plugin/parser_known.rb +0 -4
  235. data/test/test_capability.rb +0 -74
  236. data/test/test_clock.rb +0 -164
  237. data/test/test_config.rb +0 -369
  238. data/test/test_configdsl.rb +0 -148
  239. data/test/test_daemonizer.rb +0 -91
  240. data/test/test_engine.rb +0 -203
  241. data/test/test_event.rb +0 -531
  242. data/test/test_event_router.rb +0 -348
  243. data/test/test_event_time.rb +0 -199
  244. data/test/test_file_wrapper.rb +0 -53
  245. data/test/test_filter.rb +0 -121
  246. data/test/test_fluent_log_event_router.rb +0 -99
  247. data/test/test_formatter.rb +0 -369
  248. data/test/test_input.rb +0 -31
  249. data/test/test_log.rb +0 -1076
  250. data/test/test_match.rb +0 -148
  251. data/test/test_mixin.rb +0 -351
  252. data/test/test_msgpack_factory.rb +0 -50
  253. data/test/test_oj_options.rb +0 -55
  254. data/test/test_output.rb +0 -278
  255. data/test/test_plugin.rb +0 -251
  256. data/test/test_plugin_classes.rb +0 -370
  257. data/test/test_plugin_helper.rb +0 -81
  258. data/test/test_plugin_id.rb +0 -119
  259. data/test/test_process.rb +0 -14
  260. data/test/test_root_agent.rb +0 -951
  261. data/test/test_static_config_analysis.rb +0 -177
  262. data/test/test_supervisor.rb +0 -821
  263. data/test/test_test_drivers.rb +0 -136
  264. data/test/test_time_formatter.rb +0 -301
  265. data/test/test_time_parser.rb +0 -362
  266. data/test/test_tls.rb +0 -65
  267. data/test/test_unique_id.rb +0 -47
  268. data/test/test_variable_store.rb +0 -65
@@ -1,368 +0,0 @@
1
- require_relative '../helper'
2
- require 'fluent/plugin/filter'
3
- require 'fluent/event'
4
- require 'flexmock/test_unit'
5
-
6
- module FluentPluginFilterTest
7
- class DummyPlugin < Fluent::Plugin::Filter
8
- end
9
- class NumDoublePlugin < Fluent::Plugin::Filter
10
- def filter(tag, time, record)
11
- r = record.dup
12
- r["num"] = r["num"].to_i * 2
13
- r
14
- end
15
- end
16
- class IgnoreForNumPlugin < Fluent::Plugin::Filter
17
- def filter(tag, time, record)
18
- if record["num"].is_a? Numeric
19
- nil
20
- else
21
- record
22
- end
23
- end
24
- end
25
- class RaiseForNumPlugin < Fluent::Plugin::Filter
26
- def filter(tag, time, record)
27
- if record["num"].is_a? Numeric
28
- raise "Value of num is Number!"
29
- end
30
- record
31
- end
32
- end
33
- class NumDoublePluginWithTime < Fluent::Plugin::Filter
34
- def filter_with_time(tag, time, record)
35
- r = record.dup
36
- r["num"] = r["num"].to_i * 2
37
- [time, r]
38
- end
39
- end
40
- class IgnoreForNumPluginWithTime < Fluent::Plugin::Filter
41
- def filter_with_time(tag, time, record)
42
- if record["num"].is_a? Numeric
43
- nil
44
- else
45
- [time, record]
46
- end
47
- end
48
- end
49
- class InvalidPlugin < Fluent::Plugin::Filter
50
- # Because of implementing `filter_with_time` and `filter` methods
51
- def filter_with_time(tag, time, record); end
52
- def filter(tag, time, record); end
53
- end
54
- end
55
-
56
- class FilterPluginTest < Test::Unit::TestCase
57
- DummyRouter = Struct.new(:emits) do
58
- def emit_error_event(tag, time, record, error)
59
- self.emits << [tag, time, record, error]
60
- end
61
- end
62
-
63
- setup do
64
- @p = nil
65
- end
66
-
67
- teardown do
68
- if @p
69
- @p.stop unless @p.stopped?
70
- @p.before_shutdown unless @p.before_shutdown?
71
- @p.shutdown unless @p.shutdown?
72
- @p.after_shutdown unless @p.after_shutdown?
73
- @p.close unless @p.closed?
74
- @p.terminate unless @p.terminated?
75
- end
76
- end
77
-
78
- sub_test_case 'for basic dummy plugin' do
79
- setup do
80
- Fluent::Test.setup
81
- end
82
-
83
- test 'plugin does not define #filter raises error' do
84
- assert_raise NotImplementedError do
85
- FluentPluginFilterTest::DummyPlugin.new
86
- end
87
- end
88
- end
89
-
90
- sub_test_case 'normal filter plugin' do
91
- setup do
92
- Fluent::Test.setup
93
- @p = FluentPluginFilterTest::NumDoublePlugin.new
94
- end
95
-
96
- test 'has healthy lifecycle' do
97
- assert !@p.configured?
98
- @p.configure(config_element)
99
- assert @p.configured?
100
-
101
- assert !@p.started?
102
- @p.start
103
- assert @p.start
104
-
105
- assert !@p.stopped?
106
- @p.stop
107
- assert @p.stopped?
108
-
109
- assert !@p.before_shutdown?
110
- @p.before_shutdown
111
- assert @p.before_shutdown?
112
-
113
- assert !@p.shutdown?
114
- @p.shutdown
115
- assert @p.shutdown?
116
-
117
- assert !@p.after_shutdown?
118
- @p.after_shutdown
119
- assert @p.after_shutdown?
120
-
121
- assert !@p.closed?
122
- @p.close
123
- assert @p.closed?
124
-
125
- assert !@p.terminated?
126
- @p.terminate
127
- assert @p.terminated?
128
- end
129
-
130
- test 'has plugin_id automatically generated' do
131
- assert @p.respond_to?(:plugin_id_configured?)
132
- assert @p.respond_to?(:plugin_id)
133
-
134
- @p.configure(config_element)
135
-
136
- assert !@p.plugin_id_configured?
137
- assert @p.plugin_id
138
- assert{ @p.plugin_id != 'mytest' }
139
- end
140
-
141
- test 'has plugin_id manually configured' do
142
- @p.configure(config_element('ROOT', '', {'@id' => 'mytest'}))
143
- assert @p.plugin_id_configured?
144
- assert_equal 'mytest', @p.plugin_id
145
- end
146
-
147
- test 'has plugin logger' do
148
- assert @p.respond_to?(:log)
149
- assert @p.log
150
-
151
- # default logger
152
- original_logger = @p.log
153
-
154
- @p.configure(config_element('ROOT', '', {'@log_level' => 'debug'}))
155
-
156
- assert(@p.log.object_id != original_logger.object_id)
157
- assert_equal Fluent::Log::LEVEL_DEBUG, @p.log.level
158
- end
159
-
160
- test 'can load plugin helpers' do
161
- assert_nothing_raised do
162
- class FluentPluginFilterTest::DummyPlugin2 < Fluent::Plugin::Filter
163
- helpers :storage
164
- end
165
- end
166
- end
167
-
168
- test 'can use metrics plugins and fallback methods' do
169
- @p.configure(config_element('ROOT', '', {'@log_level' => 'debug'}))
170
-
171
- %w[emit_size_metrics emit_records_metrics].each do |metric_name|
172
- assert_true @p.instance_variable_get(:"@#{metric_name}").is_a?(Fluent::Plugin::Metrics)
173
- end
174
-
175
- assert_equal 0, @p.emit_size
176
- assert_equal 0, @p.emit_records
177
- end
178
-
179
- test 'are available with multi worker configuration in default' do
180
- assert @p.multi_workers_ready?
181
- end
182
-
183
- test 'filters events correctly' do
184
- test_es = [
185
- [event_time('2016-04-19 13:01:00 -0700'), {"num" => "1", "message" => "Hello filters!"}],
186
- [event_time('2016-04-19 13:01:03 -0700'), {"num" => "2", "message" => "Hello filters!"}],
187
- [event_time('2016-04-19 13:01:05 -0700'), {"num" => "3", "message" => "Hello filters!"}],
188
- ]
189
- @p.configure(config_element)
190
- es = @p.filter_stream('testing', test_es)
191
- assert es.is_a? Fluent::EventStream
192
-
193
- ary = []
194
- es.each do |time, r|
195
- ary << [time, r]
196
- end
197
-
198
- assert_equal 3, ary.size
199
-
200
- assert_equal event_time('2016-04-19 13:01:00 -0700'), ary[0][0]
201
- assert_equal "Hello filters!", ary[0][1]["message"]
202
- assert_equal 2, ary[0][1]["num"]
203
-
204
- assert_equal event_time('2016-04-19 13:01:03 -0700'), ary[1][0]
205
- assert_equal 4, ary[1][1]["num"]
206
-
207
- assert_equal event_time('2016-04-19 13:01:05 -0700'), ary[2][0]
208
- assert_equal 6, ary[2][1]["num"]
209
- end
210
- end
211
-
212
- sub_test_case 'filter plugin returns nil for some records' do
213
- setup do
214
- Fluent::Test.setup
215
- @p = FluentPluginFilterTest::IgnoreForNumPlugin.new
216
- end
217
-
218
- test 'filter_stream ignores records which #filter return nil' do
219
- test_es = [
220
- [event_time('2016-04-19 13:01:00 -0700'), {"num" => "1", "message" => "Hello filters!"}],
221
- [event_time('2016-04-19 13:01:03 -0700'), {"num" => 2, "message" => "Ignored, yay!"}],
222
- [event_time('2016-04-19 13:01:05 -0700'), {"num" => "3", "message" => "Hello filters!"}],
223
- ]
224
- @p.configure(config_element)
225
- es = @p.filter_stream('testing', test_es)
226
- assert es.is_a? Fluent::EventStream
227
-
228
- ary = []
229
- es.each do |time, r|
230
- ary << [time, r]
231
- end
232
-
233
- assert_equal 2, ary.size
234
-
235
- assert_equal event_time('2016-04-19 13:01:00 -0700'), ary[0][0]
236
- assert_equal "Hello filters!", ary[0][1]["message"]
237
- assert_equal "1", ary[0][1]["num"]
238
-
239
- assert_equal event_time('2016-04-19 13:01:05 -0700'), ary[1][0]
240
- assert_equal "3", ary[1][1]["num"]
241
- end
242
- end
243
-
244
- sub_test_case 'filter plugin raises error' do
245
- setup do
246
- Fluent::Test.setup
247
- @p = FluentPluginFilterTest::RaiseForNumPlugin.new
248
- end
249
-
250
- test 'has router and can emit events to error streams' do
251
- assert @p.has_router?
252
- @p.configure(config_element)
253
- assert @p.router
254
-
255
- @p.router = DummyRouter.new([])
256
-
257
- test_es = [
258
- [event_time('2016-04-19 13:01:00 -0700'), {"num" => "1", "message" => "Hello filters!"}],
259
- [event_time('2016-04-19 13:01:03 -0700'), {"num" => 2, "message" => "Hello error router!"}],
260
- [event_time('2016-04-19 13:01:05 -0700'), {"num" => "3", "message" => "Hello filters!"}],
261
- ]
262
- es = @p.filter_stream('testing', test_es)
263
- assert es.is_a? Fluent::EventStream
264
-
265
- ary = []
266
- es.each do |time, r|
267
- ary << [time, r]
268
- end
269
-
270
- assert_equal 2, ary.size
271
-
272
- assert_equal event_time('2016-04-19 13:01:00 -0700'), ary[0][0]
273
- assert_equal "Hello filters!", ary[0][1]["message"]
274
- assert_equal "1", ary[0][1]["num"]
275
-
276
- assert_equal event_time('2016-04-19 13:01:05 -0700'), ary[1][0]
277
- assert_equal "3", ary[1][1]["num"]
278
-
279
- assert_equal 1, @p.router.emits.size
280
-
281
- error_emits = @p.router.emits
282
-
283
- assert_equal "testing", error_emits[0][0]
284
- assert_equal event_time('2016-04-19 13:01:03 -0700'), error_emits[0][1]
285
- assert_equal({"num" => 2, "message" => "Hello error router!"}, error_emits[0][2])
286
- assert{ error_emits[0][3].is_a? RuntimeError }
287
- assert_equal "Value of num is Number!", error_emits[0][3].message
288
- end
289
- end
290
-
291
- sub_test_case 'filter plugins that is implemented `filter_with_time`' do
292
- setup do
293
- Fluent::Test.setup
294
- @p = FluentPluginFilterTest::NumDoublePluginWithTime.new
295
- end
296
-
297
- test 'filters events correctly' do
298
- test_es = [
299
- [event_time('2016-04-19 13:01:00 -0700'), {"num" => "1", "message" => "Hello filters!"}],
300
- [event_time('2016-04-19 13:01:03 -0700'), {"num" => "2", "message" => "Hello filters!"}],
301
- [event_time('2016-04-19 13:01:05 -0700'), {"num" => "3", "message" => "Hello filters!"}],
302
- ]
303
- es = @p.filter_stream('testing', test_es)
304
- assert es.is_a? Fluent::EventStream
305
-
306
- ary = []
307
- es.each do |time, r|
308
- ary << [time, r]
309
- end
310
-
311
- assert_equal 3, ary.size
312
-
313
- assert_equal event_time('2016-04-19 13:01:00 -0700'), ary[0][0]
314
- assert_equal "Hello filters!", ary[0][1]["message"]
315
- assert_equal 2, ary[0][1]["num"]
316
-
317
- assert_equal event_time('2016-04-19 13:01:03 -0700'), ary[1][0]
318
- assert_equal 4, ary[1][1]["num"]
319
-
320
- assert_equal event_time('2016-04-19 13:01:05 -0700'), ary[2][0]
321
- assert_equal 6, ary[2][1]["num"]
322
- end
323
- end
324
-
325
- sub_test_case 'filter plugin that is implmented `filter_with_time` and returns nil for some records' do
326
- setup do
327
- Fluent::Test.setup
328
- @p = FluentPluginFilterTest::IgnoreForNumPluginWithTime.new
329
- end
330
-
331
- test 'filter_stream ignores records which #filter_with_time return nil' do
332
- test_es = [
333
- [event_time('2016-04-19 13:01:00 -0700'), {"num" => "1", "message" => "Hello filters!"}],
334
- [event_time('2016-04-19 13:01:03 -0700'), {"num" => 2, "message" => "Ignored, yay!"}],
335
- [event_time('2016-04-19 13:01:05 -0700'), {"num" => "3", "message" => "Hello filters!"}],
336
- ]
337
- @p.configure(config_element)
338
- es = @p.filter_stream('testing', test_es)
339
- assert es.is_a? Fluent::EventStream
340
-
341
- ary = []
342
- es.each do |time, r|
343
- ary << [time, r]
344
- end
345
-
346
- assert_equal 2, ary.size
347
-
348
- assert_equal event_time('2016-04-19 13:01:00 -0700'), ary[0][0]
349
- assert_equal "Hello filters!", ary[0][1]["message"]
350
- assert_equal "1", ary[0][1]["num"]
351
-
352
- assert_equal event_time('2016-04-19 13:01:05 -0700'), ary[1][0]
353
- assert_equal "3", ary[1][1]["num"]
354
- end
355
- end
356
-
357
- sub_test_case 'filter plugins that is implmented both `filter_with_time` and `filter`' do
358
- setup do
359
- Fluent::Test.setup
360
- end
361
-
362
- test 'raises DuplicatedImplementError' do
363
- assert_raise do
364
- FluentPluginFilterTest::InvalidPlugin.new
365
- end
366
- end
367
- end
368
- end