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.
- checksums.yaml +5 -5
- data/.github/ISSUE_TEMPLATE/bug_report.md +39 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +23 -0
- data/.github/ISSUE_TEMPLATE.md +17 -0
- data/.github/PULL_REQUEST_TEMPLATE.md +13 -0
- data/.gitignore +5 -0
- data/.gitlab/cicd-template.yaml +10 -0
- data/.gitlab-ci.yml +147 -0
- data/.travis.yml +56 -20
- data/ADOPTERS.md +5 -0
- data/CHANGELOG.md +1369 -0
- data/CONTRIBUTING.md +16 -5
- data/GOVERNANCE.md +55 -0
- data/Gemfile +5 -0
- data/GithubWorkflow.md +78 -0
- data/LICENSE +202 -0
- data/MAINTAINERS.md +7 -0
- data/README.md +23 -11
- data/Rakefile +48 -2
- data/Vagrantfile +17 -0
- data/appveyor.yml +37 -0
- data/bin/fluent-binlog-reader +7 -0
- data/bin/fluent-ca-generate +6 -0
- data/bin/fluent-plugin-config-format +5 -0
- data/bin/fluent-plugin-generate +5 -0
- data/bin/fluentd +3 -0
- data/code-of-conduct.md +3 -0
- data/example/copy_roundrobin.conf +39 -0
- data/example/counter.conf +18 -0
- data/example/in_dummy_blocks.conf +17 -0
- data/example/in_dummy_with_compression.conf +23 -0
- data/example/in_forward.conf +7 -0
- data/example/in_forward_client.conf +37 -0
- data/example/in_forward_shared_key.conf +15 -0
- data/example/in_forward_tls.conf +14 -0
- data/example/in_forward_users.conf +24 -0
- data/example/in_forward_workers.conf +21 -0
- data/example/in_http.conf +3 -1
- data/example/in_out_forward.conf +17 -0
- data/example/logevents.conf +25 -0
- data/example/multi_filters.conf +61 -0
- data/example/out_exec_filter.conf +42 -0
- data/example/out_forward.conf +13 -13
- data/example/out_forward_buf_file.conf +23 -0
- data/example/out_forward_client.conf +109 -0
- data/example/out_forward_heartbeat_none.conf +16 -0
- data/example/out_forward_shared_key.conf +36 -0
- data/example/out_forward_tls.conf +18 -0
- data/example/out_forward_users.conf +65 -0
- data/example/out_null.conf +36 -0
- data/example/secondary_file.conf +42 -0
- data/example/suppress_config_dump.conf +7 -0
- data/example/worker_section.conf +36 -0
- data/fluent.conf +29 -0
- data/fluentd.gemspec +21 -11
- data/lib/fluent/agent.rb +67 -90
- data/lib/fluent/clock.rb +62 -0
- data/lib/fluent/command/binlog_reader.rb +244 -0
- data/lib/fluent/command/ca_generate.rb +181 -0
- data/lib/fluent/command/cat.rb +42 -18
- data/lib/fluent/command/debug.rb +12 -10
- data/lib/fluent/command/fluentd.rb +153 -5
- data/lib/fluent/command/plugin_config_formatter.rb +292 -0
- data/lib/fluent/command/plugin_generator.rb +324 -0
- data/lib/fluent/compat/call_super_mixin.rb +67 -0
- data/lib/fluent/compat/detach_process_mixin.rb +33 -0
- data/lib/fluent/compat/exec_util.rb +129 -0
- data/lib/fluent/compat/file_util.rb +54 -0
- data/lib/fluent/compat/filter.rb +68 -0
- data/lib/fluent/compat/formatter.rb +111 -0
- data/lib/fluent/compat/formatter_utils.rb +85 -0
- data/lib/fluent/compat/handle_tag_and_time_mixin.rb +62 -0
- data/lib/fluent/compat/handle_tag_name_mixin.rb +53 -0
- data/lib/fluent/compat/input.rb +49 -0
- data/lib/fluent/compat/output.rb +718 -0
- data/lib/fluent/compat/output_chain.rb +60 -0
- data/lib/fluent/compat/parser.rb +310 -0
- data/lib/fluent/compat/parser_utils.rb +40 -0
- data/lib/fluent/compat/propagate_default.rb +62 -0
- data/lib/fluent/compat/record_filter_mixin.rb +34 -0
- data/lib/fluent/compat/set_tag_key_mixin.rb +50 -0
- data/lib/fluent/compat/set_time_key_mixin.rb +69 -0
- data/lib/fluent/compat/socket_util.rb +165 -0
- data/lib/fluent/compat/string_util.rb +34 -0
- data/lib/fluent/compat/structured_format_mixin.rb +26 -0
- data/lib/fluent/compat/type_converter.rb +90 -0
- data/lib/fluent/config/configure_proxy.rb +210 -62
- data/lib/fluent/config/dsl.rb +12 -5
- data/lib/fluent/config/element.rb +107 -9
- data/lib/fluent/config/literal_parser.rb +9 -3
- data/lib/fluent/config/parser.rb +4 -4
- data/lib/fluent/config/section.rb +51 -14
- data/lib/fluent/config/types.rb +28 -13
- data/lib/fluent/config/v1_parser.rb +3 -5
- data/lib/fluent/config.rb +23 -20
- data/lib/fluent/configurable.rb +79 -21
- data/lib/fluent/counter/base_socket.rb +46 -0
- data/lib/fluent/counter/client.rb +297 -0
- data/lib/fluent/counter/error.rb +86 -0
- data/lib/fluent/counter/mutex_hash.rb +163 -0
- data/lib/fluent/counter/server.rb +273 -0
- data/lib/fluent/counter/store.rb +205 -0
- data/lib/fluent/counter/validator.rb +145 -0
- data/lib/fluent/counter.rb +23 -0
- data/lib/fluent/daemon.rb +15 -0
- data/lib/fluent/engine.rb +102 -65
- data/lib/fluent/env.rb +7 -3
- data/lib/fluent/error.rb +30 -0
- data/lib/fluent/event.rb +197 -21
- data/lib/fluent/event_router.rb +93 -10
- data/lib/fluent/filter.rb +2 -50
- data/lib/fluent/formatter.rb +4 -293
- data/lib/fluent/input.rb +2 -32
- data/lib/fluent/label.rb +10 -2
- data/lib/fluent/load.rb +3 -3
- data/lib/fluent/log.rb +348 -81
- data/lib/fluent/match.rb +37 -36
- data/lib/fluent/mixin.rb +12 -176
- data/lib/fluent/msgpack_factory.rb +62 -0
- data/lib/fluent/output.rb +10 -612
- data/lib/fluent/output_chain.rb +23 -0
- data/lib/fluent/parser.rb +4 -800
- data/lib/fluent/plugin/bare_output.rb +63 -0
- data/lib/fluent/plugin/base.rb +192 -0
- data/lib/fluent/plugin/buf_file.rb +128 -174
- data/lib/fluent/plugin/buf_memory.rb +9 -92
- data/lib/fluent/plugin/buffer/chunk.rb +221 -0
- data/lib/fluent/plugin/buffer/file_chunk.rb +383 -0
- data/lib/fluent/plugin/buffer/memory_chunk.rb +90 -0
- data/lib/fluent/plugin/buffer.rb +779 -0
- data/lib/fluent/plugin/compressable.rb +92 -0
- data/lib/fluent/plugin/exec_util.rb +3 -108
- data/lib/fluent/plugin/file_util.rb +4 -34
- data/lib/fluent/plugin/file_wrapper.rb +120 -0
- data/lib/fluent/plugin/filter.rb +93 -0
- data/lib/fluent/plugin/filter_grep.rb +117 -34
- data/lib/fluent/plugin/filter_parser.rb +85 -62
- data/lib/fluent/plugin/filter_record_transformer.rb +27 -39
- data/lib/fluent/plugin/filter_stdout.rb +15 -12
- data/lib/fluent/plugin/formatter.rb +50 -0
- data/lib/fluent/plugin/formatter_csv.rb +52 -0
- data/lib/fluent/plugin/formatter_hash.rb +33 -0
- data/lib/fluent/plugin/formatter_json.rb +55 -0
- data/lib/fluent/plugin/formatter_ltsv.rb +42 -0
- data/lib/fluent/plugin/formatter_msgpack.rb +33 -0
- data/lib/fluent/plugin/formatter_out_file.rb +51 -0
- data/lib/fluent/plugin/formatter_single_value.rb +34 -0
- data/lib/fluent/plugin/formatter_stdout.rb +76 -0
- data/lib/fluent/plugin/formatter_tsv.rb +38 -0
- data/lib/fluent/plugin/in_debug_agent.rb +17 -6
- data/lib/fluent/plugin/in_dummy.rb +47 -20
- data/lib/fluent/plugin/in_exec.rb +55 -123
- data/lib/fluent/plugin/in_forward.rb +299 -216
- data/lib/fluent/plugin/in_gc_stat.rb +14 -36
- data/lib/fluent/plugin/in_http.rb +204 -91
- data/lib/fluent/plugin/in_monitor_agent.rb +186 -258
- data/lib/fluent/plugin/in_object_space.rb +13 -41
- data/lib/fluent/plugin/in_syslog.rb +112 -134
- data/lib/fluent/plugin/in_tail.rb +408 -745
- data/lib/fluent/plugin/in_tcp.rb +66 -9
- data/lib/fluent/plugin/in_udp.rb +60 -11
- data/lib/fluent/plugin/{in_stream.rb → in_unix.rb} +8 -4
- data/lib/fluent/plugin/input.rb +37 -0
- data/lib/fluent/plugin/multi_output.rb +158 -0
- data/lib/fluent/plugin/out_copy.rb +23 -35
- data/lib/fluent/plugin/out_exec.rb +67 -70
- data/lib/fluent/plugin/out_exec_filter.rb +204 -271
- data/lib/fluent/plugin/out_file.rb +267 -73
- data/lib/fluent/plugin/out_forward.rb +854 -325
- data/lib/fluent/plugin/out_null.rb +42 -9
- data/lib/fluent/plugin/out_relabel.rb +9 -5
- data/lib/fluent/plugin/out_roundrobin.rb +18 -37
- data/lib/fluent/plugin/out_secondary_file.rb +133 -0
- data/lib/fluent/plugin/out_stdout.rb +43 -10
- data/lib/fluent/plugin/out_stream.rb +7 -2
- data/lib/fluent/plugin/output.rb +1498 -0
- data/lib/fluent/plugin/owned_by_mixin.rb +42 -0
- data/lib/fluent/plugin/parser.rb +191 -0
- data/lib/fluent/plugin/parser_apache.rb +28 -0
- data/lib/fluent/plugin/parser_apache2.rb +88 -0
- data/lib/fluent/plugin/parser_apache_error.rb +26 -0
- data/lib/fluent/plugin/parser_csv.rb +39 -0
- data/lib/fluent/plugin/parser_json.rb +94 -0
- data/lib/fluent/plugin/parser_ltsv.rb +49 -0
- data/lib/fluent/plugin/parser_msgpack.rb +50 -0
- data/lib/fluent/plugin/parser_multiline.rb +106 -0
- data/lib/fluent/plugin/parser_nginx.rb +28 -0
- data/lib/fluent/plugin/parser_none.rb +36 -0
- data/lib/fluent/plugin/parser_regexp.rb +68 -0
- data/lib/fluent/plugin/parser_syslog.rb +142 -0
- data/lib/fluent/plugin/parser_tsv.rb +42 -0
- data/lib/fluent/plugin/socket_util.rb +3 -143
- data/lib/fluent/plugin/storage.rb +84 -0
- data/lib/fluent/plugin/storage_local.rb +164 -0
- data/lib/fluent/plugin/string_util.rb +3 -15
- data/lib/fluent/plugin.rb +122 -121
- data/lib/fluent/plugin_helper/cert_option.rb +178 -0
- data/lib/fluent/plugin_helper/child_process.rb +364 -0
- data/lib/fluent/plugin_helper/compat_parameters.rb +333 -0
- data/lib/fluent/plugin_helper/counter.rb +51 -0
- data/lib/fluent/plugin_helper/event_emitter.rb +93 -0
- data/lib/fluent/plugin_helper/event_loop.rb +170 -0
- data/lib/fluent/plugin_helper/extract.rb +104 -0
- data/lib/fluent/plugin_helper/formatter.rb +147 -0
- data/lib/fluent/plugin_helper/http_server/app.rb +79 -0
- data/lib/fluent/plugin_helper/http_server/compat/server.rb +81 -0
- data/lib/fluent/plugin_helper/http_server/compat/webrick_handler.rb +58 -0
- data/lib/fluent/plugin_helper/http_server/methods.rb +35 -0
- data/lib/fluent/plugin_helper/http_server/request.rb +42 -0
- data/lib/fluent/plugin_helper/http_server/router.rb +54 -0
- data/lib/fluent/plugin_helper/http_server/server.rb +87 -0
- data/lib/fluent/plugin_helper/http_server.rb +76 -0
- data/lib/fluent/plugin_helper/inject.rb +151 -0
- data/lib/fluent/plugin_helper/parser.rb +147 -0
- data/lib/fluent/plugin_helper/record_accessor.rb +210 -0
- data/lib/fluent/plugin_helper/retry_state.rb +205 -0
- data/lib/fluent/plugin_helper/server.rb +807 -0
- data/lib/fluent/plugin_helper/socket.rb +250 -0
- data/lib/fluent/plugin_helper/socket_option.rb +80 -0
- data/lib/fluent/plugin_helper/storage.rb +349 -0
- data/lib/fluent/plugin_helper/thread.rb +179 -0
- data/lib/fluent/plugin_helper/timer.rb +92 -0
- data/lib/fluent/plugin_helper.rb +73 -0
- data/lib/fluent/plugin_id.rb +80 -0
- data/lib/fluent/process.rb +3 -489
- data/lib/fluent/registry.rb +52 -10
- data/lib/fluent/root_agent.rb +204 -42
- data/lib/fluent/supervisor.rb +597 -359
- data/lib/fluent/system_config.rb +131 -42
- data/lib/fluent/test/base.rb +6 -54
- data/lib/fluent/test/driver/base.rb +224 -0
- data/lib/fluent/test/driver/base_owned.rb +70 -0
- data/lib/fluent/test/driver/base_owner.rb +135 -0
- data/lib/fluent/test/driver/event_feeder.rb +98 -0
- data/lib/fluent/test/driver/filter.rb +57 -0
- data/lib/fluent/test/driver/formatter.rb +30 -0
- data/lib/fluent/test/driver/input.rb +31 -0
- data/lib/fluent/test/driver/multi_output.rb +53 -0
- data/lib/fluent/test/driver/output.rb +102 -0
- data/lib/fluent/test/driver/parser.rb +30 -0
- data/lib/fluent/test/driver/test_event_router.rb +45 -0
- data/lib/fluent/test/filter_test.rb +0 -1
- data/lib/fluent/test/formatter_test.rb +4 -1
- data/lib/fluent/test/helpers.rb +58 -10
- data/lib/fluent/test/input_test.rb +27 -19
- data/lib/fluent/test/log.rb +79 -0
- data/lib/fluent/test/output_test.rb +28 -39
- data/lib/fluent/test/parser_test.rb +3 -1
- data/lib/fluent/test/startup_shutdown.rb +46 -0
- data/lib/fluent/test.rb +33 -1
- data/lib/fluent/time.rb +450 -1
- data/lib/fluent/timezone.rb +27 -3
- data/lib/fluent/{status.rb → unique_id.rb} +15 -24
- data/lib/fluent/version.rb +1 -1
- data/lib/fluent/winsvc.rb +85 -0
- data/templates/new_gem/Gemfile +3 -0
- data/templates/new_gem/README.md.erb +43 -0
- data/templates/new_gem/Rakefile +13 -0
- data/templates/new_gem/fluent-plugin.gemspec.erb +27 -0
- data/templates/new_gem/lib/fluent/plugin/filter.rb.erb +14 -0
- data/templates/new_gem/lib/fluent/plugin/formatter.rb.erb +14 -0
- data/templates/new_gem/lib/fluent/plugin/input.rb.erb +11 -0
- data/templates/new_gem/lib/fluent/plugin/output.rb.erb +11 -0
- data/templates/new_gem/lib/fluent/plugin/parser.rb.erb +15 -0
- data/templates/new_gem/test/helper.rb.erb +8 -0
- data/templates/new_gem/test/plugin/test_filter.rb.erb +18 -0
- data/templates/new_gem/test/plugin/test_formatter.rb.erb +18 -0
- data/templates/new_gem/test/plugin/test_input.rb.erb +18 -0
- data/templates/new_gem/test/plugin/test_output.rb.erb +18 -0
- data/templates/new_gem/test/plugin/test_parser.rb.erb +18 -0
- data/templates/plugin_config_formatter/param.md-compact.erb +25 -0
- data/templates/plugin_config_formatter/param.md.erb +34 -0
- data/templates/plugin_config_formatter/section.md.erb +12 -0
- data/test/command/test_binlog_reader.rb +346 -0
- data/test/command/test_ca_generate.rb +70 -0
- data/test/command/test_fluentd.rb +901 -0
- data/test/command/test_plugin_config_formatter.rb +276 -0
- data/test/command/test_plugin_generator.rb +92 -0
- data/test/compat/test_calls_super.rb +166 -0
- data/test/compat/test_parser.rb +92 -0
- data/test/config/test_config_parser.rb +126 -2
- data/test/config/test_configurable.rb +946 -187
- data/test/config/test_configure_proxy.rb +424 -74
- data/test/config/test_dsl.rb +11 -11
- data/test/config/test_element.rb +500 -0
- data/test/config/test_literal_parser.rb +8 -0
- data/test/config/test_plugin_configuration.rb +56 -0
- data/test/config/test_section.rb +79 -7
- data/test/config/test_system_config.rb +122 -35
- data/test/config/test_types.rb +38 -0
- data/test/counter/test_client.rb +559 -0
- data/test/counter/test_error.rb +44 -0
- data/test/counter/test_mutex_hash.rb +179 -0
- data/test/counter/test_server.rb +589 -0
- data/test/counter/test_store.rb +258 -0
- data/test/counter/test_validator.rb +137 -0
- data/test/helper.rb +89 -6
- data/test/helpers/fuzzy_assert.rb +89 -0
- data/test/plugin/test_bare_output.rb +118 -0
- data/test/plugin/test_base.rb +115 -0
- data/test/plugin/test_buf_file.rb +823 -460
- data/test/plugin/test_buf_memory.rb +32 -194
- data/test/plugin/test_buffer.rb +1233 -0
- data/test/plugin/test_buffer_chunk.rb +198 -0
- data/test/plugin/test_buffer_file_chunk.rb +844 -0
- data/test/plugin/test_buffer_memory_chunk.rb +338 -0
- data/test/plugin/test_compressable.rb +84 -0
- data/test/plugin/test_filter.rb +357 -0
- data/test/plugin/test_filter_grep.rb +540 -29
- data/test/plugin/test_filter_parser.rb +439 -452
- data/test/plugin/test_filter_record_transformer.rb +123 -166
- data/test/plugin/test_filter_stdout.rb +160 -72
- data/test/plugin/test_formatter_csv.rb +111 -0
- data/test/plugin/test_formatter_hash.rb +35 -0
- data/test/plugin/test_formatter_json.rb +51 -0
- data/test/plugin/test_formatter_ltsv.rb +62 -0
- data/test/plugin/test_formatter_msgpack.rb +28 -0
- data/test/plugin/test_formatter_out_file.rb +95 -0
- data/test/plugin/test_formatter_single_value.rb +38 -0
- data/test/plugin/test_formatter_tsv.rb +68 -0
- data/test/plugin/test_in_debug_agent.rb +24 -1
- data/test/plugin/test_in_dummy.rb +111 -18
- data/test/plugin/test_in_exec.rb +200 -113
- data/test/plugin/test_in_forward.rb +990 -387
- data/test/plugin/test_in_gc_stat.rb +10 -8
- data/test/plugin/test_in_http.rb +600 -224
- data/test/plugin/test_in_monitor_agent.rb +690 -0
- data/test/plugin/test_in_object_space.rb +24 -8
- data/test/plugin/test_in_syslog.rb +154 -215
- data/test/plugin/test_in_tail.rb +1006 -707
- data/test/plugin/test_in_tcp.rb +125 -48
- data/test/plugin/test_in_udp.rb +204 -63
- data/test/plugin/{test_in_stream.rb → test_in_unix.rb} +14 -13
- data/test/plugin/test_input.rb +126 -0
- data/test/plugin/test_metadata.rb +89 -0
- data/test/plugin/test_multi_output.rb +180 -0
- data/test/plugin/test_out_copy.rb +117 -112
- data/test/plugin/test_out_exec.rb +258 -53
- data/test/plugin/test_out_exec_filter.rb +538 -115
- data/test/plugin/test_out_file.rb +865 -178
- data/test/plugin/test_out_forward.rb +998 -210
- data/test/plugin/test_out_null.rb +105 -0
- data/test/plugin/test_out_relabel.rb +28 -0
- data/test/plugin/test_out_roundrobin.rb +36 -29
- data/test/plugin/test_out_secondary_file.rb +458 -0
- data/test/plugin/test_out_stdout.rb +135 -37
- data/test/plugin/test_out_stream.rb +18 -0
- data/test/plugin/test_output.rb +984 -0
- data/test/plugin/test_output_as_buffered.rb +2021 -0
- data/test/plugin/test_output_as_buffered_backup.rb +312 -0
- data/test/plugin/test_output_as_buffered_compress.rb +165 -0
- data/test/plugin/test_output_as_buffered_overflow.rb +250 -0
- data/test/plugin/test_output_as_buffered_retries.rb +911 -0
- data/test/plugin/test_output_as_buffered_secondary.rb +874 -0
- data/test/plugin/test_output_as_standard.rb +374 -0
- data/test/plugin/test_owned_by.rb +35 -0
- data/test/plugin/test_parser.rb +359 -0
- data/test/plugin/test_parser_apache.rb +42 -0
- data/test/plugin/test_parser_apache2.rb +47 -0
- data/test/plugin/test_parser_apache_error.rb +45 -0
- data/test/plugin/test_parser_csv.rb +103 -0
- data/test/plugin/test_parser_json.rb +138 -0
- data/test/plugin/test_parser_labeled_tsv.rb +145 -0
- data/test/plugin/test_parser_multiline.rb +100 -0
- data/test/plugin/test_parser_nginx.rb +88 -0
- data/test/plugin/test_parser_none.rb +52 -0
- data/test/plugin/test_parser_regexp.rb +289 -0
- data/test/plugin/test_parser_syslog.rb +441 -0
- data/test/plugin/test_parser_tsv.rb +122 -0
- data/test/plugin/test_storage.rb +167 -0
- data/test/plugin/test_storage_local.rb +335 -0
- data/test/plugin_helper/data/cert/cert-key.pem +27 -0
- data/test/plugin_helper/data/cert/cert-with-no-newline.pem +19 -0
- data/test/plugin_helper/data/cert/cert.pem +19 -0
- data/test/plugin_helper/http_server/test_app.rb +65 -0
- data/test/plugin_helper/http_server/test_route.rb +32 -0
- data/test/plugin_helper/test_cert_option.rb +16 -0
- data/test/plugin_helper/test_child_process.rb +794 -0
- data/test/plugin_helper/test_compat_parameters.rb +353 -0
- data/test/plugin_helper/test_event_emitter.rb +51 -0
- data/test/plugin_helper/test_event_loop.rb +52 -0
- data/test/plugin_helper/test_extract.rb +194 -0
- data/test/plugin_helper/test_formatter.rb +255 -0
- data/test/plugin_helper/test_http_server_helper.rb +205 -0
- data/test/plugin_helper/test_inject.rb +519 -0
- data/test/plugin_helper/test_parser.rb +264 -0
- data/test/plugin_helper/test_record_accessor.rb +197 -0
- data/test/plugin_helper/test_retry_state.rb +442 -0
- data/test/plugin_helper/test_server.rb +1714 -0
- data/test/plugin_helper/test_storage.rb +542 -0
- data/test/plugin_helper/test_thread.rb +164 -0
- data/test/plugin_helper/test_timer.rb +132 -0
- data/test/scripts/exec_script.rb +0 -6
- data/test/scripts/fluent/plugin/formatter1/formatter_test1.rb +7 -0
- data/test/scripts/fluent/plugin/formatter2/formatter_test2.rb +7 -0
- data/test/scripts/fluent/plugin/out_test.rb +23 -15
- data/test/scripts/fluent/plugin/out_test2.rb +80 -0
- data/test/test_clock.rb +164 -0
- data/test/test_config.rb +16 -7
- data/test/test_configdsl.rb +2 -2
- data/test/test_event.rb +360 -13
- data/test/test_event_router.rb +108 -11
- data/test/test_event_time.rb +199 -0
- data/test/test_filter.rb +48 -6
- data/test/test_formatter.rb +11 -391
- data/test/test_input.rb +1 -1
- data/test/test_log.rb +591 -31
- data/test/test_mixin.rb +1 -1
- data/test/test_output.rb +121 -185
- data/test/test_plugin.rb +251 -0
- data/test/test_plugin_classes.rb +177 -10
- data/test/test_plugin_helper.rb +81 -0
- data/test/test_plugin_id.rb +101 -0
- data/test/test_process.rb +8 -42
- data/test/test_root_agent.rb +766 -21
- data/test/test_supervisor.rb +481 -0
- data/test/test_test_drivers.rb +135 -0
- data/test/test_time_formatter.rb +282 -0
- data/test/test_time_parser.rb +231 -0
- data/test/test_unique_id.rb +47 -0
- metadata +454 -60
- data/COPYING +0 -14
- data/ChangeLog +0 -666
- data/lib/fluent/buffer.rb +0 -365
- data/lib/fluent/plugin/in_status.rb +0 -76
- data/test/plugin/test_in_status.rb +0 -38
- data/test/test_buffer.rb +0 -624
- data/test/test_parser.rb +0 -1305
@@ -1,7 +1,21 @@
|
|
1
1
|
require_relative '../helper'
|
2
|
-
require 'fluent/test'
|
2
|
+
require 'fluent/test/driver/input'
|
3
|
+
require 'fluent/plugin/in_object_space'
|
4
|
+
|
5
|
+
require 'timeout'
|
3
6
|
|
4
7
|
class ObjectSpaceInputTest < Test::Unit::TestCase
|
8
|
+
def waiting(seconds, instance)
|
9
|
+
begin
|
10
|
+
Timeout.timeout(seconds) do
|
11
|
+
yield
|
12
|
+
end
|
13
|
+
rescue Timeout::Error
|
14
|
+
STDERR.print(*instance.log.out.logs)
|
15
|
+
raise
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
5
19
|
class FailObject
|
6
20
|
def self.class
|
7
21
|
raise "error"
|
@@ -19,7 +33,7 @@ class ObjectSpaceInputTest < Test::Unit::TestCase
|
|
19
33
|
]
|
20
34
|
|
21
35
|
def create_driver(conf=TESTCONFIG)
|
22
|
-
Fluent::Test::
|
36
|
+
Fluent::Test::Driver::Input.new(Fluent::Plugin::ObjectSpaceInput).configure(conf)
|
23
37
|
end
|
24
38
|
|
25
39
|
def test_configure
|
@@ -32,17 +46,19 @@ class ObjectSpaceInputTest < Test::Unit::TestCase
|
|
32
46
|
def test_emit
|
33
47
|
d = create_driver
|
34
48
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
49
|
+
d.run do
|
50
|
+
waiting(10, d.instance) do
|
51
|
+
sleep 0.5 until d.events.size > 3
|
52
|
+
end
|
53
|
+
end
|
39
54
|
|
40
|
-
emits = d.
|
41
|
-
|
55
|
+
emits = d.events
|
56
|
+
assert{ emits.length > 0 }
|
42
57
|
|
43
58
|
emits.each { |tag, time, record|
|
44
59
|
assert_equal d.instance.tag, tag
|
45
60
|
assert_equal d.instance.top, record.keys.size
|
61
|
+
assert(time.is_a?(Fluent::EventTime))
|
46
62
|
}
|
47
63
|
end
|
48
64
|
end
|
@@ -1,10 +1,10 @@
|
|
1
1
|
require_relative '../helper'
|
2
|
-
require 'fluent/test'
|
2
|
+
require 'fluent/test/driver/input'
|
3
|
+
require 'fluent/plugin/in_syslog'
|
3
4
|
|
4
5
|
class SyslogInputTest < Test::Unit::TestCase
|
5
6
|
def setup
|
6
7
|
Fluent::Test.setup
|
7
|
-
require 'fluent/plugin/socket_util'
|
8
8
|
end
|
9
9
|
|
10
10
|
PORT = unused_port
|
@@ -21,18 +21,20 @@ class SyslogInputTest < Test::Unit::TestCase
|
|
21
21
|
]
|
22
22
|
|
23
23
|
def create_driver(conf=CONFIG)
|
24
|
-
Fluent::Test::
|
24
|
+
Fluent::Test::Driver::Input.new(Fluent::Plugin::SyslogInput).configure(conf)
|
25
25
|
end
|
26
26
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
27
|
+
data(
|
28
|
+
ipv4: ['127.0.0.1', CONFIG, ::Socket::AF_INET],
|
29
|
+
ipv6: ['::1', IPv6_CONFIG, ::Socket::AF_INET6],
|
30
|
+
)
|
31
|
+
def test_configure(data)
|
32
|
+
bind_addr, config, family = data
|
33
|
+
omit "IPv6 unavailable" if family == ::Socket::AF_INET6 && !ipv6_enabled?
|
34
|
+
|
35
|
+
d = create_driver(config)
|
36
|
+
assert_equal PORT, d.instance.port
|
37
|
+
assert_equal bind_addr, d.instance.bind
|
36
38
|
end
|
37
39
|
|
38
40
|
sub_test_case 'source_hostname_key and source_address_key features' do
|
@@ -45,90 +47,69 @@ EOS
|
|
45
47
|
}
|
46
48
|
end
|
47
49
|
|
48
|
-
LOCALHOST_HOSTNAME_GETTER = ->(){sock = UDPSocket.new(::Socket::AF_INET); sock.do_not_reverse_lookup = false; sock.connect("127.0.0.1", 2048); sock.peeraddr[2] }
|
49
|
-
LOCALHOST_HOSTNAME = LOCALHOST_HOSTNAME_GETTER.call
|
50
|
-
DUMMY_SOCK = Struct.new(:remote_host, :remote_addr, :remote_port).new(LOCALHOST_HOSTNAME, "127.0.0.1", 0)
|
51
|
-
data(
|
52
|
-
both: [:hostname, :address],
|
53
|
-
hostname: [:hostname],
|
54
|
-
address: [:address],
|
55
|
-
)
|
56
|
-
test 'source_hostname_key and source_address_key parameter feature should add record(s)' do |keys|
|
57
|
-
conf = CONFIG.dup
|
58
|
-
if keys.include?(:hostname)
|
59
|
-
conf << <<EOL
|
60
|
-
source_hostname_key source_hostname
|
61
|
-
EOL
|
62
|
-
end
|
63
|
-
if keys.include?(:address)
|
64
|
-
conf << <<EOL
|
65
|
-
source_address_key source_address
|
66
|
-
EOL
|
67
|
-
end
|
68
|
-
tests = create_test_case
|
69
|
-
d = create_driver(conf)
|
70
|
-
|
71
|
-
d.run do
|
72
|
-
u = UDPSocket.new
|
73
|
-
u.connect('127.0.0.1', PORT)
|
74
|
-
tests.each {|test|
|
75
|
-
u.send(test['msg'], 0)
|
76
|
-
}
|
77
|
-
sleep 1
|
78
|
-
end
|
79
|
-
|
80
|
-
d.emits.each { |tag, _time, record|
|
81
|
-
if keys.include?(:hostname)
|
82
|
-
assert_true record.has_key?('source_hostname')
|
83
|
-
assert_equal DUMMY_SOCK.remote_host, record['source_hostname']
|
84
|
-
unless keys.include?(:address)
|
85
|
-
assert_false record.has_key?('source_address')
|
86
|
-
end
|
87
|
-
end
|
88
|
-
if keys.include?(:address)
|
89
|
-
assert_true record.has_key?('source_address')
|
90
|
-
assert_equal DUMMY_SOCK.remote_addr, record['source_address']
|
91
|
-
unless keys.include?(:hostname)
|
92
|
-
assert_false record.has_key?('source_hostname')
|
93
|
-
end
|
94
|
-
end
|
95
|
-
}
|
96
|
-
end
|
97
|
-
|
98
50
|
data('resolve_hostname' => 'resolve_hostname true',
|
99
51
|
'source_hostname_key' => 'source_hostname_key source_host')
|
100
|
-
def
|
52
|
+
def test_configure_resolve_hostname(param)
|
101
53
|
d = create_driver([CONFIG, param].join("\n"))
|
102
54
|
assert_true d.instance.resolve_hostname
|
103
55
|
end
|
104
56
|
end
|
105
57
|
|
106
|
-
|
107
|
-
|
108
|
-
|
58
|
+
data('Use protocol_type' => ['protocol_type tcp', :tcp, :udp],
|
59
|
+
'Use transport' => ["<transport tcp>\n </transport>", nil, :tcp],
|
60
|
+
'Use transport and protocol' => ["protocol_type udp\n<transport tcp>\n </transport>", :udp, :tcp])
|
61
|
+
def test_configure_protocol(param)
|
62
|
+
conf, proto_type, transport_proto_type = *param
|
63
|
+
d = create_driver([CONFIG, conf].join("\n"))
|
109
64
|
|
110
|
-
|
111
|
-
|
65
|
+
assert_equal(d.instance.protocol_type, proto_type)
|
66
|
+
assert_equal(d.instance.transport_config.protocol, transport_proto_type)
|
67
|
+
end
|
112
68
|
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
69
|
+
# For backward compat
|
70
|
+
def test_respect_protocol_type_than_transport
|
71
|
+
d = create_driver([CONFIG, "<transport tcp> \n</transport>", "protocol_type udp"].join("\n"))
|
72
|
+
tests = create_test_case
|
117
73
|
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
74
|
+
d.run(expect_emits: 2) do
|
75
|
+
u = UDPSocket.new
|
76
|
+
u.connect('127.0.0.1', PORT)
|
77
|
+
tests.each {|test|
|
78
|
+
u.send(test['msg'], 0)
|
79
|
+
}
|
80
|
+
end
|
81
|
+
|
82
|
+
assert(d.events.size > 0)
|
83
|
+
compare_test_result(d.events, tests)
|
84
|
+
end
|
85
|
+
|
86
|
+
|
87
|
+
data(
|
88
|
+
ipv4: ['127.0.0.1', CONFIG, ::Socket::AF_INET],
|
89
|
+
ipv6: ['::1', IPv6_CONFIG, ::Socket::AF_INET6],
|
90
|
+
)
|
91
|
+
def test_time_format(data)
|
92
|
+
bind_addr, config, family = data
|
93
|
+
omit "IPv6 unavailable" if family == ::Socket::AF_INET6 && !ipv6_enabled?
|
126
94
|
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
95
|
+
d = create_driver(config)
|
96
|
+
|
97
|
+
tests = [
|
98
|
+
{'msg' => '<6>Dec 11 00:00:00 localhost logger: foo', 'expected' => Fluent::EventTime.from_time(Time.strptime('Dec 11 00:00:00', '%b %d %H:%M:%S'))},
|
99
|
+
{'msg' => '<6>Dec 1 00:00:00 localhost logger: foo', 'expected' => Fluent::EventTime.from_time(Time.strptime('Dec 1 00:00:00', '%b %d %H:%M:%S'))},
|
100
|
+
]
|
101
|
+
d.run(expect_emits: 2) do
|
102
|
+
u = UDPSocket.new(family)
|
103
|
+
u.connect(bind_addr, PORT)
|
104
|
+
tests.each {|test|
|
105
|
+
u.send(test['msg'], 0)
|
131
106
|
}
|
107
|
+
end
|
108
|
+
|
109
|
+
events = d.events
|
110
|
+
assert(events.size > 0)
|
111
|
+
events.each_index {|i|
|
112
|
+
assert_equal_event_time(tests[i]['expected'], events[i][1])
|
132
113
|
}
|
133
114
|
end
|
134
115
|
|
@@ -136,70 +117,66 @@ EOL
|
|
136
117
|
d = create_driver
|
137
118
|
tests = create_test_case
|
138
119
|
|
139
|
-
d.run do
|
120
|
+
d.run(expect_emits: 2) do
|
140
121
|
u = UDPSocket.new
|
141
122
|
u.connect('127.0.0.1', PORT)
|
142
123
|
tests.each {|test|
|
143
124
|
u.send(test['msg'], 0)
|
144
125
|
}
|
145
|
-
sleep 1
|
146
126
|
end
|
147
127
|
|
148
|
-
|
149
|
-
compare_test_result(d.
|
128
|
+
assert(d.events.size > 0)
|
129
|
+
compare_test_result(d.events, tests)
|
150
130
|
end
|
151
131
|
|
152
132
|
def test_msg_size_udp_for_large_msg
|
153
133
|
d = create_driver(CONFIG + %[
|
154
134
|
message_length_limit 5k
|
155
135
|
])
|
156
|
-
tests = create_test_case(true)
|
136
|
+
tests = create_test_case(large_message: true)
|
157
137
|
|
158
|
-
d.run do
|
138
|
+
d.run(expect_emits: 3) do
|
159
139
|
u = UDPSocket.new
|
160
140
|
u.connect('127.0.0.1', PORT)
|
161
141
|
tests.each {|test|
|
162
142
|
u.send(test['msg'], 0)
|
163
143
|
}
|
164
|
-
sleep 1
|
165
144
|
end
|
166
145
|
|
167
|
-
|
168
|
-
compare_test_result(d.
|
146
|
+
assert(d.events.size > 0)
|
147
|
+
compare_test_result(d.events, tests)
|
169
148
|
end
|
170
149
|
|
171
150
|
def test_msg_size_with_tcp
|
172
|
-
d = create_driver([CONFIG,
|
151
|
+
d = create_driver([CONFIG, "<transport tcp> \n</transport>"].join("\n"))
|
173
152
|
tests = create_test_case
|
174
153
|
|
175
|
-
d.run do
|
154
|
+
d.run(expect_emits: 2) do
|
176
155
|
tests.each {|test|
|
177
156
|
TCPSocket.open('127.0.0.1', PORT) do |s|
|
178
157
|
s.send(test['msg'], 0)
|
179
158
|
end
|
180
159
|
}
|
181
|
-
sleep 1
|
182
160
|
end
|
183
161
|
|
184
|
-
|
185
|
-
compare_test_result(d.
|
162
|
+
assert(d.events.size > 0)
|
163
|
+
compare_test_result(d.events, tests)
|
186
164
|
end
|
187
165
|
|
188
166
|
def test_msg_size_with_same_tcp_connection
|
189
|
-
d = create_driver([CONFIG,
|
167
|
+
d = create_driver([CONFIG, "<transport tcp> \n</transport>"].join("\n"))
|
190
168
|
tests = create_test_case
|
191
169
|
|
192
|
-
d.run do
|
170
|
+
d.run(expect_emits: 2) do
|
193
171
|
TCPSocket.open('127.0.0.1', PORT) do |s|
|
194
172
|
tests.each {|test|
|
195
173
|
s.send(test['msg'], 0)
|
196
174
|
}
|
197
175
|
end
|
198
|
-
sleep 1
|
199
176
|
end
|
200
177
|
|
201
|
-
|
202
|
-
compare_test_result(d.
|
178
|
+
assert(d.events.size > 0)
|
179
|
+
compare_test_result(d.events, tests)
|
203
180
|
end
|
204
181
|
|
205
182
|
def test_msg_size_with_json_format
|
@@ -210,149 +187,108 @@ EOL
|
|
210
187
|
{'msg' => '<6>' + event.to_json + "\n", 'expected' => msg}
|
211
188
|
}
|
212
189
|
|
213
|
-
d.run do
|
190
|
+
d.run(expect_emits: 2) do
|
214
191
|
u = UDPSocket.new
|
215
192
|
u.connect('127.0.0.1', PORT)
|
216
193
|
tests.each {|test|
|
217
194
|
u.send(test['msg'], 0)
|
218
195
|
}
|
219
|
-
sleep 1
|
220
196
|
end
|
221
197
|
|
222
|
-
|
223
|
-
compare_test_result(d.
|
198
|
+
assert(d.events.size > 0)
|
199
|
+
compare_test_result(d.events, tests)
|
224
200
|
end
|
225
201
|
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
data('old parameter' => 'include_source_host',
|
230
|
-
'new parameter' => 'source_hostname_key source_host')
|
231
|
-
def test_msg_size_with_include_source_host(param)
|
232
|
-
d = create_driver([CONFIG, param].join("\n"))
|
202
|
+
def test_msg_size_with_include_source_host
|
203
|
+
d = create_driver([CONFIG, 'include_source_host true'].join("\n"))
|
233
204
|
tests = create_test_case
|
234
205
|
|
235
|
-
|
206
|
+
host = nil
|
207
|
+
d.run(expect_emits: 2) do
|
236
208
|
u = UDPSocket.new
|
237
209
|
u.connect('127.0.0.1', PORT)
|
210
|
+
host = u.peeraddr[2]
|
238
211
|
tests.each {|test|
|
239
212
|
u.send(test['msg'], 0)
|
240
213
|
}
|
241
|
-
sleep 1
|
242
214
|
end
|
243
215
|
|
244
|
-
|
245
|
-
compare_test_result(d.
|
216
|
+
assert(d.events.size > 0)
|
217
|
+
compare_test_result(d.events, tests, {host: host})
|
246
218
|
end
|
247
219
|
|
248
|
-
def
|
220
|
+
def test_msg_size_with_priority_key
|
249
221
|
d = create_driver([CONFIG, 'priority_key priority'].join("\n"))
|
250
222
|
tests = create_test_case
|
251
223
|
|
252
224
|
priority = 'info'
|
253
|
-
d.run do
|
225
|
+
d.run(expect_emits: 2) do
|
254
226
|
u = UDPSocket.new
|
255
227
|
u.connect('127.0.0.1', PORT)
|
256
228
|
tests.each {|test|
|
257
229
|
u.send(test['msg'], 0)
|
258
230
|
}
|
259
|
-
sleep 1
|
260
231
|
end
|
261
232
|
|
262
|
-
|
263
|
-
compare_test_result(d.
|
233
|
+
assert(d.events.size > 0)
|
234
|
+
compare_test_result(d.events, tests, {priority: priority})
|
264
235
|
end
|
265
236
|
|
266
|
-
def
|
237
|
+
def test_msg_size_with_facility_key
|
267
238
|
d = create_driver([CONFIG, 'facility_key facility'].join("\n"))
|
268
239
|
tests = create_test_case
|
269
240
|
|
270
241
|
facility = 'kern'
|
271
|
-
d.run do
|
272
|
-
u = UDPSocket.new
|
273
|
-
u.connect('127.0.0.1', PORT)
|
274
|
-
tests.each {|test|
|
275
|
-
u.send(test['msg'], 0)
|
276
|
-
}
|
277
|
-
sleep 1
|
278
|
-
end
|
279
|
-
|
280
|
-
assert_equal 2, d.emits.size
|
281
|
-
compare_test_result(d.emits, tests, {facility: facility})
|
282
|
-
end
|
283
|
-
|
284
|
-
def test_allow_without_priority_with_default_format
|
285
|
-
d = create_driver([CONFIG, 'allow_without_priority true'].join("\n"))
|
286
|
-
|
287
|
-
tests = [
|
288
|
-
{'msg' => '<6>Sep 10 00:00:00 localhost logger: ' + 'x' * 100 + "\n", 'expected' => 'x' * 100},
|
289
|
-
{'msg' => 'Sep 10 00:00:00 localhost logger: ' + 'x' * 1024 + "\n", 'expected' => 'x' * 1024, 'tag' => 'syslog.user.notice'},
|
290
|
-
]
|
291
|
-
|
292
|
-
d.run do
|
242
|
+
d.run(expect_emits: 2) do
|
293
243
|
u = UDPSocket.new
|
294
244
|
u.connect('127.0.0.1', PORT)
|
295
245
|
tests.each {|test|
|
296
246
|
u.send(test['msg'], 0)
|
297
247
|
}
|
298
|
-
sleep 1
|
299
248
|
end
|
300
249
|
|
301
|
-
|
302
|
-
compare_test_result(d.
|
250
|
+
assert(d.events.size > 0)
|
251
|
+
compare_test_result(d.events, tests, {facility: facility})
|
303
252
|
end
|
304
253
|
|
305
|
-
def
|
306
|
-
d = create_driver([CONFIG,
|
307
|
-
|
308
|
-
format json
|
309
|
-
]].join("\n"))
|
310
|
-
|
311
|
-
message = 'foo'
|
312
|
-
tests = [
|
313
|
-
{'msg' => '<6>' + {'message' => message}.to_json + "\n", 'expected' => message},
|
314
|
-
{'msg' => {'message' => message}.to_json + "\n", 'expected' => message, 'tag' => 'syslog.user.notice'},
|
315
|
-
]
|
254
|
+
def test_msg_size_with_source_address_key
|
255
|
+
d = create_driver([CONFIG, 'source_address_key source_address'].join("\n"))
|
256
|
+
tests = create_test_case
|
316
257
|
|
317
|
-
|
258
|
+
address = nil
|
259
|
+
d.run(expect_emits: 2) do
|
318
260
|
u = UDPSocket.new
|
319
261
|
u.connect('127.0.0.1', PORT)
|
262
|
+
address = u.peeraddr[3]
|
320
263
|
tests.each {|test|
|
321
264
|
u.send(test['msg'], 0)
|
322
265
|
}
|
323
|
-
sleep 1
|
324
266
|
end
|
325
267
|
|
326
|
-
|
327
|
-
compare_test_result(d.
|
268
|
+
assert(d.events.size > 0)
|
269
|
+
compare_test_result(d.events, tests, {address: address})
|
328
270
|
end
|
329
271
|
|
330
|
-
def
|
331
|
-
d = create_driver([CONFIG,
|
332
|
-
|
333
|
-
default_priority 100
|
334
|
-
]].join("\n"))
|
335
|
-
|
336
|
-
tests = [
|
337
|
-
{'msg' => '<6>Sep 10 00:00:00 localhost logger: ' + 'x' * 100 + "\n", 'expected' => 'x' * 100},
|
338
|
-
{'msg' => 'Sep 10 00:00:00 localhost logger: ' + 'x' * 1024 + "\n", 'expected' => 'x' * 1024, 'tag' => 'syslog.ntp.warn'},
|
339
|
-
]
|
272
|
+
def test_msg_size_with_source_hostname_key
|
273
|
+
d = create_driver([CONFIG, 'source_hostname_key source_hostname'].join("\n"))
|
274
|
+
tests = create_test_case
|
340
275
|
|
341
|
-
|
276
|
+
hostname = nil
|
277
|
+
d.run(expect_emits: 2) do
|
342
278
|
u = UDPSocket.new
|
279
|
+
u.do_not_reverse_lookup = false
|
343
280
|
u.connect('127.0.0.1', PORT)
|
281
|
+
hostname = u.peeraddr[2]
|
344
282
|
tests.each {|test|
|
345
283
|
u.send(test['msg'], 0)
|
346
284
|
}
|
347
|
-
sleep 1
|
348
285
|
end
|
349
286
|
|
350
|
-
|
351
|
-
compare_test_result(d.
|
352
|
-
|
287
|
+
assert(d.events.size > 0)
|
288
|
+
compare_test_result(d.events, tests, {hostname: hostname})
|
353
289
|
end
|
354
290
|
|
355
|
-
def create_test_case(large_message
|
291
|
+
def create_test_case(large_message: false)
|
356
292
|
# actual syslog message has "\n"
|
357
293
|
if large_message
|
358
294
|
[
|
@@ -370,56 +306,59 @@ EOL
|
|
370
306
|
|
371
307
|
def compare_test_result(events, tests, options = {})
|
372
308
|
events.each_index { |i|
|
373
|
-
assert_equal(
|
309
|
+
assert_equal('syslog.kern.info', events[i][0]) # <6> means kern.info
|
374
310
|
assert_equal(tests[i]['expected'], events[i][2]['message'])
|
375
311
|
assert_equal(options[:host], events[i][2]['source_host']) if options[:host]
|
312
|
+
assert_equal(options[:address], events[i][2]['source_address']) if options[:address]
|
313
|
+
assert_equal(options[:hostname], events[i][2]['source_hostname']) if options[:hostname]
|
376
314
|
assert_equal(options[:priority], events[i][2]['priority']) if options[:priority]
|
377
315
|
assert_equal(options[:facility], events[i][2]['facility']) if options[:facility]
|
378
316
|
}
|
379
317
|
end
|
380
318
|
|
381
|
-
|
382
|
-
def
|
383
|
-
d = create_driver(CONFIG
|
384
|
-
tests =
|
385
|
-
'<16>1 2017-02-06T13:14:15.003Z 192.168.0.1 fluentd - - - Hi, from Fluentd!',
|
386
|
-
'<16>1 2017-02-06T13:14:15.003Z 192.168.0.1 fluentd 11111 ID24224 [exampleSDID@20224 iut="3" eventSource="Application" eventID="11211"] Hi, from Fluentd!'
|
387
|
-
]
|
388
|
-
|
389
|
-
run_tests(d, tests)
|
390
|
-
compare_test_result(d)
|
391
|
-
end
|
319
|
+
sub_test_case 'octet counting frame' do
|
320
|
+
def test_msg_size_with_tcp
|
321
|
+
d = create_driver([CONFIG, "<transport tcp> \n</transport>", 'frame_type octet_count'].join("\n"))
|
322
|
+
tests = create_test_case
|
392
323
|
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
324
|
+
d.run(expect_emits: 2) do
|
325
|
+
tests.each {|test|
|
326
|
+
TCPSocket.open('127.0.0.1', PORT) do |s|
|
327
|
+
s.send(test['msg'], 0)
|
328
|
+
end
|
329
|
+
}
|
330
|
+
end
|
399
331
|
|
400
|
-
|
401
|
-
compare_test_result(d)
|
332
|
+
assert(d.events.size > 0)
|
333
|
+
compare_test_result(d.events, tests)
|
402
334
|
end
|
403
335
|
|
404
|
-
def
|
405
|
-
d.
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
336
|
+
def test_msg_size_with_same_tcp_connection
|
337
|
+
d = create_driver([CONFIG, "<transport tcp> \n</transport>", 'frame_type octet_count'].join("\n"))
|
338
|
+
tests = create_test_case
|
339
|
+
|
340
|
+
d.run(expect_emits: 2) do
|
341
|
+
TCPSocket.open('127.0.0.1', PORT) do |s|
|
342
|
+
tests.each {|test|
|
343
|
+
s.send(test['msg'], 0)
|
344
|
+
}
|
345
|
+
end
|
412
346
|
end
|
347
|
+
|
348
|
+
assert(d.events.size > 0)
|
349
|
+
compare_test_result(d.events, tests)
|
413
350
|
end
|
414
351
|
|
415
|
-
def
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
352
|
+
def create_test_case(large_message: false)
|
353
|
+
msgs = [
|
354
|
+
{'msg' => '<6>Sep 10 00:00:00 localhost logger: ' + 'x' * 100, 'expected' => 'x' * 100},
|
355
|
+
{'msg' => '<6>Sep 10 00:00:00 localhost logger: ' + 'x' * 1024, 'expected' => 'x' * 1024},
|
356
|
+
]
|
357
|
+
msgs.each { |msg|
|
358
|
+
m = msg['msg']
|
359
|
+
msg['msg'] = "#{m.size + 1} #{m}"
|
422
360
|
}
|
361
|
+
msgs
|
423
362
|
end
|
424
363
|
end
|
425
364
|
end
|