fluentd 0.12.40 → 1.6.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of fluentd might be problematic. Click here for more details.

Files changed (428) hide show
  1. checksums.yaml +5 -5
  2. data/.github/ISSUE_TEMPLATE/bug_report.md +39 -0
  3. data/.github/ISSUE_TEMPLATE/feature_request.md +23 -0
  4. data/.github/ISSUE_TEMPLATE.md +17 -0
  5. data/.github/PULL_REQUEST_TEMPLATE.md +13 -0
  6. data/.gitignore +5 -0
  7. data/.gitlab/cicd-template.yaml +10 -0
  8. data/.gitlab-ci.yml +147 -0
  9. data/.travis.yml +56 -20
  10. data/ADOPTERS.md +5 -0
  11. data/CHANGELOG.md +1369 -0
  12. data/CONTRIBUTING.md +16 -5
  13. data/GOVERNANCE.md +55 -0
  14. data/Gemfile +5 -0
  15. data/GithubWorkflow.md +78 -0
  16. data/LICENSE +202 -0
  17. data/MAINTAINERS.md +7 -0
  18. data/README.md +23 -11
  19. data/Rakefile +48 -2
  20. data/Vagrantfile +17 -0
  21. data/appveyor.yml +37 -0
  22. data/bin/fluent-binlog-reader +7 -0
  23. data/bin/fluent-ca-generate +6 -0
  24. data/bin/fluent-plugin-config-format +5 -0
  25. data/bin/fluent-plugin-generate +5 -0
  26. data/bin/fluentd +3 -0
  27. data/code-of-conduct.md +3 -0
  28. data/example/copy_roundrobin.conf +39 -0
  29. data/example/counter.conf +18 -0
  30. data/example/in_dummy_blocks.conf +17 -0
  31. data/example/in_dummy_with_compression.conf +23 -0
  32. data/example/in_forward.conf +7 -0
  33. data/example/in_forward_client.conf +37 -0
  34. data/example/in_forward_shared_key.conf +15 -0
  35. data/example/in_forward_tls.conf +14 -0
  36. data/example/in_forward_users.conf +24 -0
  37. data/example/in_forward_workers.conf +21 -0
  38. data/example/in_http.conf +3 -1
  39. data/example/in_out_forward.conf +17 -0
  40. data/example/logevents.conf +25 -0
  41. data/example/multi_filters.conf +61 -0
  42. data/example/out_exec_filter.conf +42 -0
  43. data/example/out_forward.conf +13 -13
  44. data/example/out_forward_buf_file.conf +23 -0
  45. data/example/out_forward_client.conf +109 -0
  46. data/example/out_forward_heartbeat_none.conf +16 -0
  47. data/example/out_forward_shared_key.conf +36 -0
  48. data/example/out_forward_tls.conf +18 -0
  49. data/example/out_forward_users.conf +65 -0
  50. data/example/out_null.conf +36 -0
  51. data/example/secondary_file.conf +42 -0
  52. data/example/suppress_config_dump.conf +7 -0
  53. data/example/worker_section.conf +36 -0
  54. data/fluent.conf +29 -0
  55. data/fluentd.gemspec +21 -11
  56. data/lib/fluent/agent.rb +67 -90
  57. data/lib/fluent/clock.rb +62 -0
  58. data/lib/fluent/command/binlog_reader.rb +244 -0
  59. data/lib/fluent/command/ca_generate.rb +181 -0
  60. data/lib/fluent/command/cat.rb +42 -18
  61. data/lib/fluent/command/debug.rb +12 -10
  62. data/lib/fluent/command/fluentd.rb +153 -5
  63. data/lib/fluent/command/plugin_config_formatter.rb +292 -0
  64. data/lib/fluent/command/plugin_generator.rb +324 -0
  65. data/lib/fluent/compat/call_super_mixin.rb +67 -0
  66. data/lib/fluent/compat/detach_process_mixin.rb +33 -0
  67. data/lib/fluent/compat/exec_util.rb +129 -0
  68. data/lib/fluent/compat/file_util.rb +54 -0
  69. data/lib/fluent/compat/filter.rb +68 -0
  70. data/lib/fluent/compat/formatter.rb +111 -0
  71. data/lib/fluent/compat/formatter_utils.rb +85 -0
  72. data/lib/fluent/compat/handle_tag_and_time_mixin.rb +62 -0
  73. data/lib/fluent/compat/handle_tag_name_mixin.rb +53 -0
  74. data/lib/fluent/compat/input.rb +49 -0
  75. data/lib/fluent/compat/output.rb +718 -0
  76. data/lib/fluent/compat/output_chain.rb +60 -0
  77. data/lib/fluent/compat/parser.rb +310 -0
  78. data/lib/fluent/compat/parser_utils.rb +40 -0
  79. data/lib/fluent/compat/propagate_default.rb +62 -0
  80. data/lib/fluent/compat/record_filter_mixin.rb +34 -0
  81. data/lib/fluent/compat/set_tag_key_mixin.rb +50 -0
  82. data/lib/fluent/compat/set_time_key_mixin.rb +69 -0
  83. data/lib/fluent/compat/socket_util.rb +165 -0
  84. data/lib/fluent/compat/string_util.rb +34 -0
  85. data/lib/fluent/compat/structured_format_mixin.rb +26 -0
  86. data/lib/fluent/compat/type_converter.rb +90 -0
  87. data/lib/fluent/config/configure_proxy.rb +210 -62
  88. data/lib/fluent/config/dsl.rb +12 -5
  89. data/lib/fluent/config/element.rb +107 -9
  90. data/lib/fluent/config/literal_parser.rb +9 -3
  91. data/lib/fluent/config/parser.rb +4 -4
  92. data/lib/fluent/config/section.rb +51 -14
  93. data/lib/fluent/config/types.rb +28 -13
  94. data/lib/fluent/config/v1_parser.rb +3 -5
  95. data/lib/fluent/config.rb +23 -20
  96. data/lib/fluent/configurable.rb +79 -21
  97. data/lib/fluent/counter/base_socket.rb +46 -0
  98. data/lib/fluent/counter/client.rb +297 -0
  99. data/lib/fluent/counter/error.rb +86 -0
  100. data/lib/fluent/counter/mutex_hash.rb +163 -0
  101. data/lib/fluent/counter/server.rb +273 -0
  102. data/lib/fluent/counter/store.rb +205 -0
  103. data/lib/fluent/counter/validator.rb +145 -0
  104. data/lib/fluent/counter.rb +23 -0
  105. data/lib/fluent/daemon.rb +15 -0
  106. data/lib/fluent/engine.rb +102 -65
  107. data/lib/fluent/env.rb +7 -3
  108. data/lib/fluent/error.rb +30 -0
  109. data/lib/fluent/event.rb +197 -21
  110. data/lib/fluent/event_router.rb +93 -10
  111. data/lib/fluent/filter.rb +2 -50
  112. data/lib/fluent/formatter.rb +4 -293
  113. data/lib/fluent/input.rb +2 -32
  114. data/lib/fluent/label.rb +10 -2
  115. data/lib/fluent/load.rb +3 -3
  116. data/lib/fluent/log.rb +348 -81
  117. data/lib/fluent/match.rb +37 -36
  118. data/lib/fluent/mixin.rb +12 -176
  119. data/lib/fluent/msgpack_factory.rb +62 -0
  120. data/lib/fluent/output.rb +10 -612
  121. data/lib/fluent/output_chain.rb +23 -0
  122. data/lib/fluent/parser.rb +4 -800
  123. data/lib/fluent/plugin/bare_output.rb +63 -0
  124. data/lib/fluent/plugin/base.rb +192 -0
  125. data/lib/fluent/plugin/buf_file.rb +128 -174
  126. data/lib/fluent/plugin/buf_memory.rb +9 -92
  127. data/lib/fluent/plugin/buffer/chunk.rb +221 -0
  128. data/lib/fluent/plugin/buffer/file_chunk.rb +383 -0
  129. data/lib/fluent/plugin/buffer/memory_chunk.rb +90 -0
  130. data/lib/fluent/plugin/buffer.rb +779 -0
  131. data/lib/fluent/plugin/compressable.rb +92 -0
  132. data/lib/fluent/plugin/exec_util.rb +3 -108
  133. data/lib/fluent/plugin/file_util.rb +4 -34
  134. data/lib/fluent/plugin/file_wrapper.rb +120 -0
  135. data/lib/fluent/plugin/filter.rb +93 -0
  136. data/lib/fluent/plugin/filter_grep.rb +117 -34
  137. data/lib/fluent/plugin/filter_parser.rb +85 -62
  138. data/lib/fluent/plugin/filter_record_transformer.rb +27 -39
  139. data/lib/fluent/plugin/filter_stdout.rb +15 -12
  140. data/lib/fluent/plugin/formatter.rb +50 -0
  141. data/lib/fluent/plugin/formatter_csv.rb +52 -0
  142. data/lib/fluent/plugin/formatter_hash.rb +33 -0
  143. data/lib/fluent/plugin/formatter_json.rb +55 -0
  144. data/lib/fluent/plugin/formatter_ltsv.rb +42 -0
  145. data/lib/fluent/plugin/formatter_msgpack.rb +33 -0
  146. data/lib/fluent/plugin/formatter_out_file.rb +51 -0
  147. data/lib/fluent/plugin/formatter_single_value.rb +34 -0
  148. data/lib/fluent/plugin/formatter_stdout.rb +76 -0
  149. data/lib/fluent/plugin/formatter_tsv.rb +38 -0
  150. data/lib/fluent/plugin/in_debug_agent.rb +17 -6
  151. data/lib/fluent/plugin/in_dummy.rb +47 -20
  152. data/lib/fluent/plugin/in_exec.rb +55 -123
  153. data/lib/fluent/plugin/in_forward.rb +299 -216
  154. data/lib/fluent/plugin/in_gc_stat.rb +14 -36
  155. data/lib/fluent/plugin/in_http.rb +204 -91
  156. data/lib/fluent/plugin/in_monitor_agent.rb +186 -258
  157. data/lib/fluent/plugin/in_object_space.rb +13 -41
  158. data/lib/fluent/plugin/in_syslog.rb +112 -134
  159. data/lib/fluent/plugin/in_tail.rb +408 -745
  160. data/lib/fluent/plugin/in_tcp.rb +66 -9
  161. data/lib/fluent/plugin/in_udp.rb +60 -11
  162. data/lib/fluent/plugin/{in_stream.rb → in_unix.rb} +8 -4
  163. data/lib/fluent/plugin/input.rb +37 -0
  164. data/lib/fluent/plugin/multi_output.rb +158 -0
  165. data/lib/fluent/plugin/out_copy.rb +23 -35
  166. data/lib/fluent/plugin/out_exec.rb +67 -70
  167. data/lib/fluent/plugin/out_exec_filter.rb +204 -271
  168. data/lib/fluent/plugin/out_file.rb +267 -73
  169. data/lib/fluent/plugin/out_forward.rb +854 -325
  170. data/lib/fluent/plugin/out_null.rb +42 -9
  171. data/lib/fluent/plugin/out_relabel.rb +9 -5
  172. data/lib/fluent/plugin/out_roundrobin.rb +18 -37
  173. data/lib/fluent/plugin/out_secondary_file.rb +133 -0
  174. data/lib/fluent/plugin/out_stdout.rb +43 -10
  175. data/lib/fluent/plugin/out_stream.rb +7 -2
  176. data/lib/fluent/plugin/output.rb +1498 -0
  177. data/lib/fluent/plugin/owned_by_mixin.rb +42 -0
  178. data/lib/fluent/plugin/parser.rb +191 -0
  179. data/lib/fluent/plugin/parser_apache.rb +28 -0
  180. data/lib/fluent/plugin/parser_apache2.rb +88 -0
  181. data/lib/fluent/plugin/parser_apache_error.rb +26 -0
  182. data/lib/fluent/plugin/parser_csv.rb +39 -0
  183. data/lib/fluent/plugin/parser_json.rb +94 -0
  184. data/lib/fluent/plugin/parser_ltsv.rb +49 -0
  185. data/lib/fluent/plugin/parser_msgpack.rb +50 -0
  186. data/lib/fluent/plugin/parser_multiline.rb +106 -0
  187. data/lib/fluent/plugin/parser_nginx.rb +28 -0
  188. data/lib/fluent/plugin/parser_none.rb +36 -0
  189. data/lib/fluent/plugin/parser_regexp.rb +68 -0
  190. data/lib/fluent/plugin/parser_syslog.rb +142 -0
  191. data/lib/fluent/plugin/parser_tsv.rb +42 -0
  192. data/lib/fluent/plugin/socket_util.rb +3 -143
  193. data/lib/fluent/plugin/storage.rb +84 -0
  194. data/lib/fluent/plugin/storage_local.rb +164 -0
  195. data/lib/fluent/plugin/string_util.rb +3 -15
  196. data/lib/fluent/plugin.rb +122 -121
  197. data/lib/fluent/plugin_helper/cert_option.rb +178 -0
  198. data/lib/fluent/plugin_helper/child_process.rb +364 -0
  199. data/lib/fluent/plugin_helper/compat_parameters.rb +333 -0
  200. data/lib/fluent/plugin_helper/counter.rb +51 -0
  201. data/lib/fluent/plugin_helper/event_emitter.rb +93 -0
  202. data/lib/fluent/plugin_helper/event_loop.rb +170 -0
  203. data/lib/fluent/plugin_helper/extract.rb +104 -0
  204. data/lib/fluent/plugin_helper/formatter.rb +147 -0
  205. data/lib/fluent/plugin_helper/http_server/app.rb +79 -0
  206. data/lib/fluent/plugin_helper/http_server/compat/server.rb +81 -0
  207. data/lib/fluent/plugin_helper/http_server/compat/webrick_handler.rb +58 -0
  208. data/lib/fluent/plugin_helper/http_server/methods.rb +35 -0
  209. data/lib/fluent/plugin_helper/http_server/request.rb +42 -0
  210. data/lib/fluent/plugin_helper/http_server/router.rb +54 -0
  211. data/lib/fluent/plugin_helper/http_server/server.rb +87 -0
  212. data/lib/fluent/plugin_helper/http_server.rb +76 -0
  213. data/lib/fluent/plugin_helper/inject.rb +151 -0
  214. data/lib/fluent/plugin_helper/parser.rb +147 -0
  215. data/lib/fluent/plugin_helper/record_accessor.rb +210 -0
  216. data/lib/fluent/plugin_helper/retry_state.rb +205 -0
  217. data/lib/fluent/plugin_helper/server.rb +807 -0
  218. data/lib/fluent/plugin_helper/socket.rb +250 -0
  219. data/lib/fluent/plugin_helper/socket_option.rb +80 -0
  220. data/lib/fluent/plugin_helper/storage.rb +349 -0
  221. data/lib/fluent/plugin_helper/thread.rb +179 -0
  222. data/lib/fluent/plugin_helper/timer.rb +92 -0
  223. data/lib/fluent/plugin_helper.rb +73 -0
  224. data/lib/fluent/plugin_id.rb +80 -0
  225. data/lib/fluent/process.rb +3 -489
  226. data/lib/fluent/registry.rb +52 -10
  227. data/lib/fluent/root_agent.rb +204 -42
  228. data/lib/fluent/supervisor.rb +597 -359
  229. data/lib/fluent/system_config.rb +131 -42
  230. data/lib/fluent/test/base.rb +6 -54
  231. data/lib/fluent/test/driver/base.rb +224 -0
  232. data/lib/fluent/test/driver/base_owned.rb +70 -0
  233. data/lib/fluent/test/driver/base_owner.rb +135 -0
  234. data/lib/fluent/test/driver/event_feeder.rb +98 -0
  235. data/lib/fluent/test/driver/filter.rb +57 -0
  236. data/lib/fluent/test/driver/formatter.rb +30 -0
  237. data/lib/fluent/test/driver/input.rb +31 -0
  238. data/lib/fluent/test/driver/multi_output.rb +53 -0
  239. data/lib/fluent/test/driver/output.rb +102 -0
  240. data/lib/fluent/test/driver/parser.rb +30 -0
  241. data/lib/fluent/test/driver/test_event_router.rb +45 -0
  242. data/lib/fluent/test/filter_test.rb +0 -1
  243. data/lib/fluent/test/formatter_test.rb +4 -1
  244. data/lib/fluent/test/helpers.rb +58 -10
  245. data/lib/fluent/test/input_test.rb +27 -19
  246. data/lib/fluent/test/log.rb +79 -0
  247. data/lib/fluent/test/output_test.rb +28 -39
  248. data/lib/fluent/test/parser_test.rb +3 -1
  249. data/lib/fluent/test/startup_shutdown.rb +46 -0
  250. data/lib/fluent/test.rb +33 -1
  251. data/lib/fluent/time.rb +450 -1
  252. data/lib/fluent/timezone.rb +27 -3
  253. data/lib/fluent/{status.rb → unique_id.rb} +15 -24
  254. data/lib/fluent/version.rb +1 -1
  255. data/lib/fluent/winsvc.rb +85 -0
  256. data/templates/new_gem/Gemfile +3 -0
  257. data/templates/new_gem/README.md.erb +43 -0
  258. data/templates/new_gem/Rakefile +13 -0
  259. data/templates/new_gem/fluent-plugin.gemspec.erb +27 -0
  260. data/templates/new_gem/lib/fluent/plugin/filter.rb.erb +14 -0
  261. data/templates/new_gem/lib/fluent/plugin/formatter.rb.erb +14 -0
  262. data/templates/new_gem/lib/fluent/plugin/input.rb.erb +11 -0
  263. data/templates/new_gem/lib/fluent/plugin/output.rb.erb +11 -0
  264. data/templates/new_gem/lib/fluent/plugin/parser.rb.erb +15 -0
  265. data/templates/new_gem/test/helper.rb.erb +8 -0
  266. data/templates/new_gem/test/plugin/test_filter.rb.erb +18 -0
  267. data/templates/new_gem/test/plugin/test_formatter.rb.erb +18 -0
  268. data/templates/new_gem/test/plugin/test_input.rb.erb +18 -0
  269. data/templates/new_gem/test/plugin/test_output.rb.erb +18 -0
  270. data/templates/new_gem/test/plugin/test_parser.rb.erb +18 -0
  271. data/templates/plugin_config_formatter/param.md-compact.erb +25 -0
  272. data/templates/plugin_config_formatter/param.md.erb +34 -0
  273. data/templates/plugin_config_formatter/section.md.erb +12 -0
  274. data/test/command/test_binlog_reader.rb +346 -0
  275. data/test/command/test_ca_generate.rb +70 -0
  276. data/test/command/test_fluentd.rb +901 -0
  277. data/test/command/test_plugin_config_formatter.rb +276 -0
  278. data/test/command/test_plugin_generator.rb +92 -0
  279. data/test/compat/test_calls_super.rb +166 -0
  280. data/test/compat/test_parser.rb +92 -0
  281. data/test/config/test_config_parser.rb +126 -2
  282. data/test/config/test_configurable.rb +946 -187
  283. data/test/config/test_configure_proxy.rb +424 -74
  284. data/test/config/test_dsl.rb +11 -11
  285. data/test/config/test_element.rb +500 -0
  286. data/test/config/test_literal_parser.rb +8 -0
  287. data/test/config/test_plugin_configuration.rb +56 -0
  288. data/test/config/test_section.rb +79 -7
  289. data/test/config/test_system_config.rb +122 -35
  290. data/test/config/test_types.rb +38 -0
  291. data/test/counter/test_client.rb +559 -0
  292. data/test/counter/test_error.rb +44 -0
  293. data/test/counter/test_mutex_hash.rb +179 -0
  294. data/test/counter/test_server.rb +589 -0
  295. data/test/counter/test_store.rb +258 -0
  296. data/test/counter/test_validator.rb +137 -0
  297. data/test/helper.rb +89 -6
  298. data/test/helpers/fuzzy_assert.rb +89 -0
  299. data/test/plugin/test_bare_output.rb +118 -0
  300. data/test/plugin/test_base.rb +115 -0
  301. data/test/plugin/test_buf_file.rb +823 -460
  302. data/test/plugin/test_buf_memory.rb +32 -194
  303. data/test/plugin/test_buffer.rb +1233 -0
  304. data/test/plugin/test_buffer_chunk.rb +198 -0
  305. data/test/plugin/test_buffer_file_chunk.rb +844 -0
  306. data/test/plugin/test_buffer_memory_chunk.rb +338 -0
  307. data/test/plugin/test_compressable.rb +84 -0
  308. data/test/plugin/test_filter.rb +357 -0
  309. data/test/plugin/test_filter_grep.rb +540 -29
  310. data/test/plugin/test_filter_parser.rb +439 -452
  311. data/test/plugin/test_filter_record_transformer.rb +123 -166
  312. data/test/plugin/test_filter_stdout.rb +160 -72
  313. data/test/plugin/test_formatter_csv.rb +111 -0
  314. data/test/plugin/test_formatter_hash.rb +35 -0
  315. data/test/plugin/test_formatter_json.rb +51 -0
  316. data/test/plugin/test_formatter_ltsv.rb +62 -0
  317. data/test/plugin/test_formatter_msgpack.rb +28 -0
  318. data/test/plugin/test_formatter_out_file.rb +95 -0
  319. data/test/plugin/test_formatter_single_value.rb +38 -0
  320. data/test/plugin/test_formatter_tsv.rb +68 -0
  321. data/test/plugin/test_in_debug_agent.rb +24 -1
  322. data/test/plugin/test_in_dummy.rb +111 -18
  323. data/test/plugin/test_in_exec.rb +200 -113
  324. data/test/plugin/test_in_forward.rb +990 -387
  325. data/test/plugin/test_in_gc_stat.rb +10 -8
  326. data/test/plugin/test_in_http.rb +600 -224
  327. data/test/plugin/test_in_monitor_agent.rb +690 -0
  328. data/test/plugin/test_in_object_space.rb +24 -8
  329. data/test/plugin/test_in_syslog.rb +154 -215
  330. data/test/plugin/test_in_tail.rb +1006 -707
  331. data/test/plugin/test_in_tcp.rb +125 -48
  332. data/test/plugin/test_in_udp.rb +204 -63
  333. data/test/plugin/{test_in_stream.rb → test_in_unix.rb} +14 -13
  334. data/test/plugin/test_input.rb +126 -0
  335. data/test/plugin/test_metadata.rb +89 -0
  336. data/test/plugin/test_multi_output.rb +180 -0
  337. data/test/plugin/test_out_copy.rb +117 -112
  338. data/test/plugin/test_out_exec.rb +258 -53
  339. data/test/plugin/test_out_exec_filter.rb +538 -115
  340. data/test/plugin/test_out_file.rb +865 -178
  341. data/test/plugin/test_out_forward.rb +998 -210
  342. data/test/plugin/test_out_null.rb +105 -0
  343. data/test/plugin/test_out_relabel.rb +28 -0
  344. data/test/plugin/test_out_roundrobin.rb +36 -29
  345. data/test/plugin/test_out_secondary_file.rb +458 -0
  346. data/test/plugin/test_out_stdout.rb +135 -37
  347. data/test/plugin/test_out_stream.rb +18 -0
  348. data/test/plugin/test_output.rb +984 -0
  349. data/test/plugin/test_output_as_buffered.rb +2021 -0
  350. data/test/plugin/test_output_as_buffered_backup.rb +312 -0
  351. data/test/plugin/test_output_as_buffered_compress.rb +165 -0
  352. data/test/plugin/test_output_as_buffered_overflow.rb +250 -0
  353. data/test/plugin/test_output_as_buffered_retries.rb +911 -0
  354. data/test/plugin/test_output_as_buffered_secondary.rb +874 -0
  355. data/test/plugin/test_output_as_standard.rb +374 -0
  356. data/test/plugin/test_owned_by.rb +35 -0
  357. data/test/plugin/test_parser.rb +359 -0
  358. data/test/plugin/test_parser_apache.rb +42 -0
  359. data/test/plugin/test_parser_apache2.rb +47 -0
  360. data/test/plugin/test_parser_apache_error.rb +45 -0
  361. data/test/plugin/test_parser_csv.rb +103 -0
  362. data/test/plugin/test_parser_json.rb +138 -0
  363. data/test/plugin/test_parser_labeled_tsv.rb +145 -0
  364. data/test/plugin/test_parser_multiline.rb +100 -0
  365. data/test/plugin/test_parser_nginx.rb +88 -0
  366. data/test/plugin/test_parser_none.rb +52 -0
  367. data/test/plugin/test_parser_regexp.rb +289 -0
  368. data/test/plugin/test_parser_syslog.rb +441 -0
  369. data/test/plugin/test_parser_tsv.rb +122 -0
  370. data/test/plugin/test_storage.rb +167 -0
  371. data/test/plugin/test_storage_local.rb +335 -0
  372. data/test/plugin_helper/data/cert/cert-key.pem +27 -0
  373. data/test/plugin_helper/data/cert/cert-with-no-newline.pem +19 -0
  374. data/test/plugin_helper/data/cert/cert.pem +19 -0
  375. data/test/plugin_helper/http_server/test_app.rb +65 -0
  376. data/test/plugin_helper/http_server/test_route.rb +32 -0
  377. data/test/plugin_helper/test_cert_option.rb +16 -0
  378. data/test/plugin_helper/test_child_process.rb +794 -0
  379. data/test/plugin_helper/test_compat_parameters.rb +353 -0
  380. data/test/plugin_helper/test_event_emitter.rb +51 -0
  381. data/test/plugin_helper/test_event_loop.rb +52 -0
  382. data/test/plugin_helper/test_extract.rb +194 -0
  383. data/test/plugin_helper/test_formatter.rb +255 -0
  384. data/test/plugin_helper/test_http_server_helper.rb +205 -0
  385. data/test/plugin_helper/test_inject.rb +519 -0
  386. data/test/plugin_helper/test_parser.rb +264 -0
  387. data/test/plugin_helper/test_record_accessor.rb +197 -0
  388. data/test/plugin_helper/test_retry_state.rb +442 -0
  389. data/test/plugin_helper/test_server.rb +1714 -0
  390. data/test/plugin_helper/test_storage.rb +542 -0
  391. data/test/plugin_helper/test_thread.rb +164 -0
  392. data/test/plugin_helper/test_timer.rb +132 -0
  393. data/test/scripts/exec_script.rb +0 -6
  394. data/test/scripts/fluent/plugin/formatter1/formatter_test1.rb +7 -0
  395. data/test/scripts/fluent/plugin/formatter2/formatter_test2.rb +7 -0
  396. data/test/scripts/fluent/plugin/out_test.rb +23 -15
  397. data/test/scripts/fluent/plugin/out_test2.rb +80 -0
  398. data/test/test_clock.rb +164 -0
  399. data/test/test_config.rb +16 -7
  400. data/test/test_configdsl.rb +2 -2
  401. data/test/test_event.rb +360 -13
  402. data/test/test_event_router.rb +108 -11
  403. data/test/test_event_time.rb +199 -0
  404. data/test/test_filter.rb +48 -6
  405. data/test/test_formatter.rb +11 -391
  406. data/test/test_input.rb +1 -1
  407. data/test/test_log.rb +591 -31
  408. data/test/test_mixin.rb +1 -1
  409. data/test/test_output.rb +121 -185
  410. data/test/test_plugin.rb +251 -0
  411. data/test/test_plugin_classes.rb +177 -10
  412. data/test/test_plugin_helper.rb +81 -0
  413. data/test/test_plugin_id.rb +101 -0
  414. data/test/test_process.rb +8 -42
  415. data/test/test_root_agent.rb +766 -21
  416. data/test/test_supervisor.rb +481 -0
  417. data/test/test_test_drivers.rb +135 -0
  418. data/test/test_time_formatter.rb +282 -0
  419. data/test/test_time_parser.rb +231 -0
  420. data/test/test_unique_id.rb +47 -0
  421. metadata +454 -60
  422. data/COPYING +0 -14
  423. data/ChangeLog +0 -666
  424. data/lib/fluent/buffer.rb +0 -365
  425. data/lib/fluent/plugin/in_status.rb +0 -76
  426. data/test/plugin/test_in_status.rb +0 -38
  427. data/test/test_buffer.rb +0 -624
  428. data/test/test_parser.rb +0 -1305
@@ -0,0 +1,39 @@
1
+ <source>
2
+ @type dummy
3
+ @label @test
4
+ tag test.copy
5
+ auto_increment_key id
6
+ </source>
7
+
8
+ <source>
9
+ @type dummy
10
+ @label @test
11
+ tag test.rr
12
+ auto_increment_key id
13
+ </source>
14
+
15
+ <label @test>
16
+ <match test.copy>
17
+ @type copy
18
+ <store>
19
+ @type stdout
20
+ output_type json
21
+ </store>
22
+ <store>
23
+ @type stdout
24
+ output_type ltsv
25
+ </store>
26
+ </match>
27
+
28
+ <match test.rr>
29
+ @type roundrobin
30
+ <store>
31
+ @type stdout
32
+ output_type json
33
+ </store>
34
+ <store>
35
+ @type stdout
36
+ output_type ltsv
37
+ </store>
38
+ </match>
39
+ </label>
@@ -0,0 +1,18 @@
1
+ <system>
2
+ <counter_server>
3
+ scope server1
4
+ bind 127.0.0.1
5
+ port 24321
6
+ path tmp/back
7
+ </counter_server>
8
+ </system>
9
+
10
+ <source>
11
+ @type dummy
12
+ tag "test.data"
13
+ auto_increment_key number
14
+ </source>
15
+
16
+ <match>
17
+ @type stdout
18
+ </match>
@@ -0,0 +1,17 @@
1
+ <source>
2
+ @type dummy
3
+ tag dummy
4
+ rate 100
5
+ dummy {"message":"yaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaay"}
6
+ </source>
7
+
8
+ <match dummy>
9
+ @type null
10
+ never_flush true
11
+ <buffer>
12
+ @type memory
13
+ overflow_action block
14
+ chunk_limit_size 1k
15
+ total_limit_size 2k
16
+ </buffer>
17
+ </match>
@@ -0,0 +1,23 @@
1
+ <source>
2
+ @type dummy
3
+ @label @main
4
+ tag "test.data"
5
+ size 2
6
+ rate 10
7
+ dummy {"message":"yaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaay"}
8
+ auto_increment_key number
9
+ </source>
10
+
11
+ <label @main>
12
+ <match test.data>
13
+ @type buffered_stdout
14
+ <buffer>
15
+ @type file
16
+ path "#{Dir.pwd}/compressed_buffers"
17
+ flush_at_shutdown false
18
+ chunk_limit_size 1m
19
+ flush_interval 10s
20
+ compress gzip
21
+ </buffer>
22
+ </match>
23
+ </label>
@@ -1,7 +1,14 @@
1
+ <system>
2
+ rpc_endpoint 0.0.0.0:24444
3
+ </system>
4
+
1
5
  <source>
2
6
  @type forward
3
7
  </source>
4
8
 
5
9
  <match test>
6
10
  @type stdout
11
+ # <buffer>
12
+ # flush_interval 10s
13
+ # </buffer>
7
14
  </match>
@@ -0,0 +1,37 @@
1
+ <system>
2
+ rpc_endpoint 0.0.0.0:24444
3
+ </system>
4
+
5
+ <source>
6
+ @type forward
7
+ port 24224
8
+ bind 0.0.0.0
9
+ <security>
10
+ self_hostname input.testing.local
11
+ shared_key secure_communication_is_awesome
12
+ user_auth yes
13
+ allow_anonymous_source no
14
+ <user>
15
+ username user1
16
+ password yes_this_is_user1
17
+ </user>
18
+ <user>
19
+ username user2
20
+ password yes_this_is_really_user2
21
+ </user>
22
+ <user>
23
+ username user3
24
+ password noooooo_this_may_not_be_user3
25
+ </user>
26
+ <client>
27
+ # host 127.0.0.1
28
+ network 127.0.0.0/24
29
+ shared_key using_different_key_makes_us_secure
30
+ users user1,user2
31
+ </client>
32
+ </security>
33
+ </source>
34
+
35
+ <match {test,test2,test3,test4}>
36
+ @type stdout
37
+ </match>
@@ -0,0 +1,15 @@
1
+ <system>
2
+ rpc_endpoint 0.0.0.0:24444
3
+ </system>
4
+
5
+ <source>
6
+ @type forward
7
+ <security>
8
+ self_hostname input.testing.local
9
+ shared_key secure_communication_is_awesome
10
+ </security>
11
+ </source>
12
+
13
+ <match test>
14
+ @type stdout
15
+ </match>
@@ -0,0 +1,14 @@
1
+ <source>
2
+ @type forward
3
+ port 24224
4
+ <transport tls>
5
+ insecure true
6
+ </transport>
7
+ </source>
8
+
9
+ <match test>
10
+ @type stdout
11
+ # <buffer>
12
+ # flush_interval 10s
13
+ # </buffer>
14
+ </match>
@@ -0,0 +1,24 @@
1
+ <system>
2
+ rpc_endpoint 0.0.0.0:24444
3
+ </system>
4
+
5
+ <source>
6
+ @type forward
7
+ <security>
8
+ self_hostname input.testing.local
9
+ shared_key secure_communication_is_awesome
10
+ user_auth yes
11
+ <user>
12
+ username user1
13
+ password yes_this_is_user1
14
+ </user>
15
+ <user>
16
+ username user2
17
+ password yes_this_is_really_user2
18
+ </user>
19
+ </security>
20
+ </source>
21
+
22
+ <match {test,test2,test3}>
23
+ @type stdout
24
+ </match>
@@ -0,0 +1,21 @@
1
+ <system>
2
+ workers 3
3
+ root_dir "#{File.join(Dir.pwd, 'test', 'tmp', 'root')}"
4
+ </system>
5
+
6
+ <source>
7
+ @type forward
8
+ @id forward_in_1
9
+ </source>
10
+
11
+ <match test>
12
+ @type stdout
13
+ @id stdout_out_1
14
+ <inject>
15
+ worker_id_key worker_id
16
+ </inject>
17
+ <buffer>
18
+ @type file
19
+ flush_interval 1s
20
+ </buffer>
21
+ </match>
data/example/in_http.conf CHANGED
@@ -6,7 +6,9 @@
6
6
  keepalive_timeout 10
7
7
  # backlog 0
8
8
  add_http_headers false
9
- format default
9
+ <parse>
10
+ @type json
11
+ </parse>
10
12
  </source>
11
13
 
12
14
  <match test>
@@ -0,0 +1,17 @@
1
+ <source>
2
+ @type forward
3
+ port 24224
4
+ </source>
5
+
6
+ <match test.**>
7
+ @type forward
8
+ buffer_type file
9
+ buffer_path /tmp/fluentd.forward.buffer
10
+ num_threads 10
11
+ flush_interval 1s
12
+ <server>
13
+ host 127.0.0.1
14
+ port 24225
15
+ </server>
16
+ </match>
17
+
@@ -0,0 +1,25 @@
1
+ <source>
2
+ @type dummy
3
+ @label @dummylog
4
+ tag "data"
5
+ dummy {"message":"yay"}
6
+ </source>
7
+ <label @dummylog>
8
+ <match **>
9
+ @type stdout
10
+ </match>
11
+ </label>
12
+ <label @FLUENT_LOG>
13
+ <match fluent.debug fluent.info fluent.warn fluent.error fluent.fatal>
14
+ @type stdout
15
+ <inject>
16
+ hostname_key "host"
17
+ </inject>
18
+ </match>
19
+ # <match fluent.{info,warn,error,fatal}>
20
+ # @type stdout
21
+ # <inject>
22
+ # hostname_key "host"
23
+ # </inject>
24
+ # </match>
25
+ </label>
@@ -0,0 +1,61 @@
1
+ # This example is to measure optimized filter pipeline performance.
2
+
3
+ <source>
4
+ @type dummy
5
+ tag test
6
+ size 1000
7
+ </source>
8
+
9
+ <filter test>
10
+ @type grep
11
+ exclude1 hello .
12
+ </filter>
13
+
14
+ <filter test>
15
+ @type grep
16
+ exclude1 hello .
17
+ </filter>
18
+
19
+ <filter test>
20
+ @type grep
21
+ exclude1 hello .
22
+ </filter>
23
+
24
+ <filter test>
25
+ @type grep
26
+ exclude1 hello .
27
+ </filter>
28
+
29
+ <filter test>
30
+ @type grep
31
+ exclude1 hello .
32
+ </filter>
33
+
34
+ <filter test>
35
+ @type grep
36
+ exclude1 hello .
37
+ </filter>
38
+
39
+ <filter test>
40
+ @type grep
41
+ exclude1 hello .
42
+ </filter>
43
+
44
+ <filter test>
45
+ @type grep
46
+ exclude1 hello .
47
+ </filter>
48
+
49
+ <filter test>
50
+ @type grep
51
+ exclude1 hello .
52
+ </filter>
53
+
54
+ <filter test>
55
+ @type grep
56
+ exclude1 hello .
57
+ </filter>
58
+
59
+ <match test>
60
+ @type buffered_null
61
+ </match>
@@ -0,0 +1,42 @@
1
+ <source>
2
+ @type dummy
3
+ @label @exec
4
+ tag exec_input
5
+ rate 10
6
+ auto_increment_key num
7
+ dummy {"data":"mydata"}
8
+ </source>
9
+
10
+ <label @exec>
11
+ <match exec_input>
12
+ @type exec_filter
13
+ @label @stdout
14
+ tag result
15
+ command ruby -e 'STDOUT.sync = true; proc = ->(){line = STDIN.readline.chomp; puts line + "\t" + Process.pid.to_s}; 1000.times{ proc.call }'
16
+ num_children 3
17
+ child_respawn -1
18
+ <inject>
19
+ time_key time
20
+ time_type float
21
+ </inject>
22
+ <format>
23
+ @type tsv
24
+ keys data, num, time
25
+ </format>
26
+ <parse>
27
+ @type tsv
28
+ keys data, num, time, pid
29
+ </parse>
30
+ <extract>
31
+ time_key time
32
+ time_type float
33
+ </extract>
34
+ </match>
35
+ </label>
36
+
37
+ <label @stdout>
38
+ <match result>
39
+ @type stdout
40
+ </match>
41
+ </label>
42
+
@@ -8,22 +8,22 @@
8
8
 
9
9
  <server>
10
10
  # first server
11
- host localhost
11
+ host 127.0.0.1
12
12
  port 24224
13
13
  </server>
14
- <server>
15
- # second server
16
- host localhost
17
- port 24225
18
- </server>
19
- <server>
20
- # second server
21
- host localhost
22
- port 24226
23
- standby
24
- </server>
14
+ # <server>
15
+ # # second server
16
+ # host localhost
17
+ # port 24225
18
+ # </server>
19
+ # <server>
20
+ # # second server
21
+ # host localhost
22
+ # port 24226
23
+ # standby
24
+ # </server>
25
25
 
26
- flush_interval 1
26
+ flush_interval 0
27
27
  send_timeout 60
28
28
  heartbeat_type udp
29
29
  heartbeat_interval 1
@@ -0,0 +1,23 @@
1
+ <source>
2
+ @type dummy
3
+ tag test
4
+ </source>
5
+
6
+ <source>
7
+ @type monitor_agent
8
+ emit_interval 5
9
+ </source>
10
+
11
+ <match test>
12
+ @type forward
13
+ buffer_path /tmp/fluentd.forward
14
+ buffer_type file
15
+ flush_interval 5
16
+ send_timeout 60
17
+ heartbeat_type tcp
18
+ heartbeat_interval 1
19
+ <server>
20
+ host 127.0.0.1
21
+ port 24224
22
+ </server>
23
+ </match>
@@ -0,0 +1,109 @@
1
+ <source>
2
+ @type dummy
3
+ tag test
4
+ </source>
5
+ <source>
6
+ @type dummy
7
+ tag test2
8
+ </source>
9
+ <source>
10
+ @type dummy
11
+ tag test3
12
+ </source>
13
+ <source>
14
+ @type dummy
15
+ tag test4
16
+ </source>
17
+ <source>
18
+ @type dummy
19
+ tag test5
20
+ </source>
21
+
22
+ <match test>
23
+ @type forward
24
+ flush_interval 0
25
+ <security>
26
+ self_hostname output.testing.local
27
+ shared_key secure_communication_is_awesome
28
+ </security>
29
+ <server>
30
+ host 127.0.0.1
31
+ port 24224
32
+ username user1
33
+ password yes_this_is_user1
34
+ shared_key using_different_key_makes_us_secure
35
+ </server>
36
+ </match>
37
+
38
+ <match test2>
39
+ @type forward
40
+ flush_interval 0
41
+ <security>
42
+ self_hostname output-alt1.testing.local
43
+ shared_key using_different_key_makes_us_secure
44
+ </security>
45
+ <server>
46
+ host 127.0.0.1
47
+ port 24224
48
+ username user1
49
+ password yes_this_is_user1
50
+ </server>
51
+ <server>
52
+ host 127.0.0.1
53
+ port 24224
54
+ username user2
55
+ password yes_this_is_really_user2
56
+ </server>
57
+ </match>
58
+
59
+ <match test3>
60
+ @type forward
61
+ flush_interval 0
62
+ <security>
63
+ self_hostname output-fail1.testing.local
64
+ # default key: fail
65
+ shared_key secure_communication_is_awesome
66
+ </security>
67
+ <server>
68
+ host 127.0.0.1
69
+ port 24224
70
+ username user1
71
+ password yes_this_is_user1
72
+ # [warn]: Shared key mismatch address="127.0.0.1" hostname="output-fail1.testing.local"
73
+ </server>
74
+ </match>
75
+
76
+ <match test4>
77
+ @type forward
78
+ flush_interval 0
79
+ <security>
80
+ self_hostname output-fail2.testing.local
81
+ shared_key using_different_key_makes_us_secure
82
+ </security>
83
+ <server>
84
+ host 127.0.0.1
85
+ port 24224
86
+ username user3
87
+ # user3 (user denied): fail
88
+ password noooooo_this_may_not_be_user3
89
+ # [warn]: Authentication failed address="127.0.0.1" hostname="output-fail2.testing.local" username="user3"
90
+ </server>
91
+ </match>
92
+
93
+ <match test5>
94
+ @type forward
95
+ flush_interval 0
96
+ <security>
97
+ self_hostname output-fail3.testing.local
98
+ shared_key using_different_key_makes_us_secure
99
+ </security>
100
+ <server>
101
+ # another ip (host rejected): fail
102
+ # This pattern will work only with Ruby 2.3
103
+ host "#{Socket.getifaddrs.select{|i| i.addr.ipv4? }.reject{|i| i.addr.ip_address == '127.0.0.1' }.first.addr.ip_address}"
104
+ port 24224
105
+ username user1
106
+ password yes_this_is_user1
107
+ # [warn]: Anonymous client disallowed address="192.168.1.75" hostname="output-fail3.testing.local"
108
+ </server>
109
+ </match>
@@ -0,0 +1,16 @@
1
+ <source>
2
+ @type dummy
3
+ tag test
4
+ </source>
5
+
6
+ <match test>
7
+ @type forward
8
+ heartbeat_type none
9
+ <server>
10
+ host 127.0.0.1
11
+ port 24224
12
+ </server>
13
+ <buffer>
14
+ flush_mode immediate
15
+ </buffer>
16
+ </match>
@@ -0,0 +1,36 @@
1
+ <source>
2
+ @type dummy
3
+ tag test
4
+ </source>
5
+ <source>
6
+ @type dummy
7
+ tag test2
8
+ </source>
9
+
10
+ <match test>
11
+ @type forward
12
+ flush_interval 0
13
+ <security>
14
+ self_hostname output.testing.local
15
+ shared_key secure_communication_is_awesome
16
+ </security>
17
+ <server>
18
+ host 127.0.0.1
19
+ port 24224
20
+ </server>
21
+ </match>
22
+
23
+ <match test2>
24
+ @type forward
25
+ flush_interval 0
26
+ <security>
27
+ self_hostname output-fail.testing.local
28
+ shared_key secure_communication_is_not_awesome
29
+ # input plugin shows warning for wrong shared_key
30
+ # 2016-08-08 16:27:00 +0900 [warn]: Shared key mismatch address="127.0.0.1" hostname="output-fail.testing.local"
31
+ </security>
32
+ <server>
33
+ host 127.0.0.1
34
+ port 24224
35
+ </server>
36
+ </match>
@@ -0,0 +1,18 @@
1
+ <source>
2
+ @type dummy
3
+ tag test
4
+ </source>
5
+
6
+ <match test>
7
+ @type forward
8
+ transport tls
9
+ tls_insecure_mode true
10
+ <server>
11
+ # first server
12
+ host 127.0.0.1
13
+ port 24224
14
+ </server>
15
+ <buffer>
16
+ flush_interval 0
17
+ </buffer>
18
+ </match>