Showing preview only (3,830K chars total). Download the full file or copy to clipboard to get everything.
Repository: fluent/fluentd
Branch: master
Commit: 357c753e92b2
Files: 578
Total size: 3.6 MB
Directory structure:
gitextract_m1i_qpi2/
├── .deepsource.toml
├── .github/
│ ├── DISCUSSION_TEMPLATE/
│ │ ├── q-a-japanese.yml
│ │ └── q-a.yml
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.yml
│ │ ├── config.yml
│ │ └── feature_request.yml
│ ├── ISSUE_TEMPLATE.md
│ ├── PULL_REQUEST_TEMPLATE.md
│ ├── dependabot.yml
│ └── workflows/
│ ├── backport.yml
│ ├── benchmark.yml
│ ├── rubocop.yml
│ ├── scorecards.yml
│ ├── stale-actions.yml
│ ├── test-ruby-head.yml
│ └── test.yml
├── .gitignore
├── .rubocop.yml
├── ADOPTERS.md
├── AUTHORS
├── CHANGELOG.md
├── CONTRIBUTING.md
├── GOVERNANCE.md
├── Gemfile
├── GithubWorkflow.md
├── LICENSE
├── MAINTAINERS.md
├── README.md
├── Rakefile
├── SECURITY.md
├── bin/
│ ├── fluent-binlog-reader
│ ├── fluent-ca-generate
│ ├── fluent-cap-ctl
│ ├── fluent-ctl
│ ├── fluent-debug
│ ├── fluent-plugin-config-format
│ └── fluent-plugin-generate
├── code-of-conduct.md
├── example/
│ ├── copy_roundrobin.conf
│ ├── counter.conf
│ ├── filter_stdout.conf
│ ├── in_forward.conf
│ ├── in_forward_client.conf
│ ├── in_forward_shared_key.conf
│ ├── in_forward_tls.conf
│ ├── in_forward_users.conf
│ ├── in_forward_workers.conf
│ ├── in_http.conf
│ ├── in_out_forward.conf
│ ├── in_sample_blocks.conf
│ ├── in_sample_with_compression.conf
│ ├── in_syslog.conf
│ ├── in_tail.conf
│ ├── in_tcp.conf
│ ├── in_udp.conf
│ ├── logevents.conf
│ ├── multi_filters.conf
│ ├── out_copy.conf
│ ├── out_exec_filter.conf
│ ├── out_file.conf
│ ├── out_forward.conf
│ ├── out_forward_buf_file.conf
│ ├── out_forward_client.conf
│ ├── out_forward_heartbeat_none.conf
│ ├── out_forward_sd.conf
│ ├── out_forward_shared_key.conf
│ ├── out_forward_tls.conf
│ ├── out_forward_users.conf
│ ├── out_null.conf
│ ├── sd.yaml
│ ├── secondary_file.conf
│ ├── suppress_config_dump.conf
│ ├── v0_12_filter.conf
│ ├── v1_literal_example.conf
│ └── worker_section.conf
├── fluent.conf
├── fluentd.gemspec
├── lib/
│ └── fluent/
│ ├── agent.rb
│ ├── capability.rb
│ ├── clock.rb
│ ├── command/
│ │ ├── binlog_reader.rb
│ │ ├── bundler_injection.rb
│ │ ├── ca_generate.rb
│ │ ├── cap_ctl.rb
│ │ ├── cat.rb
│ │ ├── ctl.rb
│ │ ├── debug.rb
│ │ ├── fluentd.rb
│ │ ├── plugin_config_formatter.rb
│ │ └── plugin_generator.rb
│ ├── compat/
│ │ ├── call_super_mixin.rb
│ │ ├── detach_process_mixin.rb
│ │ ├── exec_util.rb
│ │ ├── file_util.rb
│ │ ├── filter.rb
│ │ ├── formatter.rb
│ │ ├── formatter_utils.rb
│ │ ├── handle_tag_and_time_mixin.rb
│ │ ├── handle_tag_name_mixin.rb
│ │ ├── input.rb
│ │ ├── output.rb
│ │ ├── output_chain.rb
│ │ ├── parser.rb
│ │ ├── parser_utils.rb
│ │ ├── propagate_default.rb
│ │ ├── record_filter_mixin.rb
│ │ ├── set_tag_key_mixin.rb
│ │ ├── set_time_key_mixin.rb
│ │ ├── socket_util.rb
│ │ ├── string_util.rb
│ │ ├── structured_format_mixin.rb
│ │ └── type_converter.rb
│ ├── config/
│ │ ├── basic_parser.rb
│ │ ├── configure_proxy.rb
│ │ ├── dsl.rb
│ │ ├── element.rb
│ │ ├── error.rb
│ │ ├── literal_parser.rb
│ │ ├── parser.rb
│ │ ├── section.rb
│ │ ├── types.rb
│ │ ├── v1_parser.rb
│ │ ├── yaml_parser/
│ │ │ ├── fluent_value.rb
│ │ │ ├── loader.rb
│ │ │ ├── parser.rb
│ │ │ └── section_builder.rb
│ │ └── yaml_parser.rb
│ ├── config.rb
│ ├── configurable.rb
│ ├── counter/
│ │ ├── base_socket.rb
│ │ ├── client.rb
│ │ ├── error.rb
│ │ ├── mutex_hash.rb
│ │ ├── server.rb
│ │ ├── store.rb
│ │ └── validator.rb
│ ├── counter.rb
│ ├── daemon.rb
│ ├── daemonizer.rb
│ ├── engine.rb
│ ├── env.rb
│ ├── error.rb
│ ├── event.rb
│ ├── event_router.rb
│ ├── ext_monitor_require.rb
│ ├── file_wrapper.rb
│ ├── filter.rb
│ ├── fluent_log_event_router.rb
│ ├── formatter.rb
│ ├── input.rb
│ ├── label.rb
│ ├── load.rb
│ ├── log/
│ │ └── console_adapter.rb
│ ├── log.rb
│ ├── match.rb
│ ├── mixin.rb
│ ├── msgpack_factory.rb
│ ├── oj_options.rb
│ ├── output.rb
│ ├── output_chain.rb
│ ├── parser.rb
│ ├── plugin/
│ │ ├── bare_output.rb
│ │ ├── base.rb
│ │ ├── buf_file.rb
│ │ ├── buf_file_single.rb
│ │ ├── buf_memory.rb
│ │ ├── buffer/
│ │ │ ├── chunk.rb
│ │ │ ├── file_chunk.rb
│ │ │ ├── file_single_chunk.rb
│ │ │ └── memory_chunk.rb
│ │ ├── buffer.rb
│ │ ├── compressable.rb
│ │ ├── exec_util.rb
│ │ ├── file_util.rb
│ │ ├── filter.rb
│ │ ├── filter_grep.rb
│ │ ├── filter_parser.rb
│ │ ├── filter_record_transformer.rb
│ │ ├── filter_stdout.rb
│ │ ├── formatter.rb
│ │ ├── formatter_csv.rb
│ │ ├── formatter_hash.rb
│ │ ├── formatter_json.rb
│ │ ├── formatter_ltsv.rb
│ │ ├── formatter_msgpack.rb
│ │ ├── formatter_out_file.rb
│ │ ├── formatter_single_value.rb
│ │ ├── formatter_stdout.rb
│ │ ├── formatter_tsv.rb
│ │ ├── in_debug_agent.rb
│ │ ├── in_dummy.rb
│ │ ├── in_exec.rb
│ │ ├── in_forward.rb
│ │ ├── in_gc_stat.rb
│ │ ├── in_http.rb
│ │ ├── in_monitor_agent.rb
│ │ ├── in_object_space.rb
│ │ ├── in_sample.rb
│ │ ├── in_syslog.rb
│ │ ├── in_tail/
│ │ │ ├── group_watch.rb
│ │ │ └── position_file.rb
│ │ ├── in_tail.rb
│ │ ├── in_tcp.rb
│ │ ├── in_udp.rb
│ │ ├── in_unix.rb
│ │ ├── input.rb
│ │ ├── metrics.rb
│ │ ├── metrics_local.rb
│ │ ├── multi_output.rb
│ │ ├── out_buffer.rb
│ │ ├── out_copy.rb
│ │ ├── out_exec.rb
│ │ ├── out_exec_filter.rb
│ │ ├── out_file.rb
│ │ ├── out_forward/
│ │ │ ├── ack_handler.rb
│ │ │ ├── connection_manager.rb
│ │ │ ├── error.rb
│ │ │ ├── failure_detector.rb
│ │ │ ├── handshake_protocol.rb
│ │ │ ├── load_balancer.rb
│ │ │ └── socket_cache.rb
│ │ ├── out_forward.rb
│ │ ├── out_http.rb
│ │ ├── out_null.rb
│ │ ├── out_relabel.rb
│ │ ├── out_roundrobin.rb
│ │ ├── out_secondary_file.rb
│ │ ├── out_stdout.rb
│ │ ├── out_stream.rb
│ │ ├── output.rb
│ │ ├── owned_by_mixin.rb
│ │ ├── parser.rb
│ │ ├── parser_apache.rb
│ │ ├── parser_apache2.rb
│ │ ├── parser_apache_error.rb
│ │ ├── parser_csv.rb
│ │ ├── parser_json.rb
│ │ ├── parser_ltsv.rb
│ │ ├── parser_msgpack.rb
│ │ ├── parser_multiline.rb
│ │ ├── parser_nginx.rb
│ │ ├── parser_none.rb
│ │ ├── parser_regexp.rb
│ │ ├── parser_syslog.rb
│ │ ├── parser_tsv.rb
│ │ ├── sd_file.rb
│ │ ├── sd_srv.rb
│ │ ├── sd_static.rb
│ │ ├── service_discovery.rb
│ │ ├── socket_util.rb
│ │ ├── storage.rb
│ │ ├── storage_local.rb
│ │ └── string_util.rb
│ ├── plugin.rb
│ ├── plugin_helper/
│ │ ├── cert_option.rb
│ │ ├── child_process.rb
│ │ ├── compat_parameters.rb
│ │ ├── counter.rb
│ │ ├── event_emitter.rb
│ │ ├── event_loop.rb
│ │ ├── extract.rb
│ │ ├── formatter.rb
│ │ ├── http_server/
│ │ │ ├── app.rb
│ │ │ ├── methods.rb
│ │ │ ├── request.rb
│ │ │ ├── router.rb
│ │ │ ├── server.rb
│ │ │ └── ssl_context_builder.rb
│ │ ├── http_server.rb
│ │ ├── inject.rb
│ │ ├── metrics.rb
│ │ ├── parser.rb
│ │ ├── record_accessor.rb
│ │ ├── retry_state.rb
│ │ ├── server.rb
│ │ ├── service_discovery/
│ │ │ ├── manager.rb
│ │ │ └── round_robin_balancer.rb
│ │ ├── service_discovery.rb
│ │ ├── socket.rb
│ │ ├── socket_option.rb
│ │ ├── storage.rb
│ │ ├── thread.rb
│ │ └── timer.rb
│ ├── plugin_helper.rb
│ ├── plugin_id.rb
│ ├── process.rb
│ ├── registry.rb
│ ├── root_agent.rb
│ ├── rpc.rb
│ ├── source_only_buffer_agent.rb
│ ├── static_config_analysis.rb
│ ├── supervisor.rb
│ ├── system_config.rb
│ ├── test/
│ │ ├── base.rb
│ │ ├── driver/
│ │ │ ├── base.rb
│ │ │ ├── base_owned.rb
│ │ │ ├── base_owner.rb
│ │ │ ├── event_feeder.rb
│ │ │ ├── filter.rb
│ │ │ ├── formatter.rb
│ │ │ ├── input.rb
│ │ │ ├── multi_output.rb
│ │ │ ├── output.rb
│ │ │ ├── parser.rb
│ │ │ ├── storage.rb
│ │ │ └── test_event_router.rb
│ │ ├── filter_test.rb
│ │ ├── formatter_test.rb
│ │ ├── helpers.rb
│ │ ├── input_test.rb
│ │ ├── log.rb
│ │ ├── output_test.rb
│ │ ├── parser_test.rb
│ │ └── startup_shutdown.rb
│ ├── test.rb
│ ├── time.rb
│ ├── timezone.rb
│ ├── tls.rb
│ ├── unique_id.rb
│ ├── variable_store.rb
│ ├── version.rb
│ ├── win32api.rb
│ └── winsvc.rb
├── tasks/
│ ├── backport/
│ │ └── backporter.rb
│ ├── backport.rb
│ ├── benchmark/
│ │ ├── conf/
│ │ │ └── in_tail.conf
│ │ └── patch_in_tail.rb
│ └── benchmark.rb
├── templates/
│ ├── new_gem/
│ │ ├── Gemfile
│ │ ├── README.md.erb
│ │ ├── Rakefile
│ │ ├── fluent-plugin.gemspec.erb
│ │ ├── lib/
│ │ │ └── fluent/
│ │ │ └── plugin/
│ │ │ ├── filter.rb.erb
│ │ │ ├── formatter.rb.erb
│ │ │ ├── input.rb.erb
│ │ │ ├── output.rb.erb
│ │ │ ├── parser.rb.erb
│ │ │ └── storage.rb.erb
│ │ └── test/
│ │ ├── helper.rb.erb
│ │ └── plugin/
│ │ ├── test_filter.rb.erb
│ │ ├── test_formatter.rb.erb
│ │ ├── test_input.rb.erb
│ │ ├── test_output.rb.erb
│ │ ├── test_parser.rb.erb
│ │ └── test_storage.rb.erb
│ └── plugin_config_formatter/
│ ├── param.md-compact.erb
│ ├── param.md-table.erb
│ ├── param.md.erb
│ └── section.md.erb
└── test/
├── command/
│ ├── test_binlog_reader.rb
│ ├── test_ca_generate.rb
│ ├── test_cap_ctl.rb
│ ├── test_cat.rb
│ ├── test_ctl.rb
│ ├── test_fluentd.rb
│ ├── test_plugin_config_formatter.rb
│ └── test_plugin_generator.rb
├── compat/
│ ├── test_calls_super.rb
│ └── test_parser.rb
├── config/
│ ├── assertions.rb
│ ├── test_config_parser.rb
│ ├── test_configurable.rb
│ ├── test_configure_proxy.rb
│ ├── test_dsl.rb
│ ├── test_element.rb
│ ├── test_literal_parser.rb
│ ├── test_plugin_configuration.rb
│ ├── test_section.rb
│ ├── test_system_config.rb
│ ├── test_types.rb
│ └── test_yaml_parser.rb
├── counter/
│ ├── test_client.rb
│ ├── test_error.rb
│ ├── test_mutex_hash.rb
│ ├── test_server.rb
│ ├── test_store.rb
│ └── test_validator.rb
├── helper.rb
├── helpers/
│ ├── fuzzy_assert.rb
│ └── process_extenstion.rb
├── log/
│ └── test_console_adapter.rb
├── plugin/
│ ├── data/
│ │ ├── 2010/
│ │ │ └── 01/
│ │ │ ├── 20100102-030405.log
│ │ │ ├── 20100102-030406.log
│ │ │ └── 20100102.log
│ │ ├── log/
│ │ │ ├── bar
│ │ │ ├── foo/
│ │ │ │ ├── bar.log
│ │ │ │ └── bar2
│ │ │ └── test.log
│ │ ├── log_numeric/
│ │ │ ├── 01.log
│ │ │ ├── 02.log
│ │ │ ├── 12.log
│ │ │ └── 14.log
│ │ └── sd_file/
│ │ ├── config
│ │ ├── config.json
│ │ ├── config.yaml
│ │ ├── config.yml
│ │ └── invalid_config.yml
│ ├── in_tail/
│ │ ├── test_fifo.rb
│ │ ├── test_io_handler.rb
│ │ └── test_position_file.rb
│ ├── out_forward/
│ │ ├── test_ack_handler.rb
│ │ ├── test_connection_manager.rb
│ │ ├── test_handshake_protocol.rb
│ │ ├── test_load_balancer.rb
│ │ └── test_socket_cache.rb
│ ├── test_bare_output.rb
│ ├── test_base.rb
│ ├── test_buf_file.rb
│ ├── test_buf_file_single.rb
│ ├── test_buf_memory.rb
│ ├── test_buffer.rb
│ ├── test_buffer_chunk.rb
│ ├── test_buffer_file_chunk.rb
│ ├── test_buffer_file_single_chunk.rb
│ ├── test_buffer_memory_chunk.rb
│ ├── test_compressable.rb
│ ├── test_file_util.rb
│ ├── test_filter.rb
│ ├── test_filter_grep.rb
│ ├── test_filter_parser.rb
│ ├── test_filter_record_transformer.rb
│ ├── test_filter_stdout.rb
│ ├── test_formatter_csv.rb
│ ├── test_formatter_hash.rb
│ ├── test_formatter_json.rb
│ ├── test_formatter_ltsv.rb
│ ├── test_formatter_msgpack.rb
│ ├── test_formatter_out_file.rb
│ ├── test_formatter_single_value.rb
│ ├── test_formatter_tsv.rb
│ ├── test_in_debug_agent.rb
│ ├── test_in_exec.rb
│ ├── test_in_forward.rb
│ ├── test_in_gc_stat.rb
│ ├── test_in_http.rb
│ ├── test_in_monitor_agent.rb
│ ├── test_in_object_space.rb
│ ├── test_in_sample.rb
│ ├── test_in_syslog.rb
│ ├── test_in_tail.rb
│ ├── test_in_tcp.rb
│ ├── test_in_udp.rb
│ ├── test_in_unix.rb
│ ├── test_input.rb
│ ├── test_metadata.rb
│ ├── test_metrics.rb
│ ├── test_metrics_local.rb
│ ├── test_multi_output.rb
│ ├── test_out_buffer.rb
│ ├── test_out_copy.rb
│ ├── test_out_exec.rb
│ ├── test_out_exec_filter.rb
│ ├── test_out_file.rb
│ ├── test_out_forward.rb
│ ├── test_out_http.rb
│ ├── test_out_null.rb
│ ├── test_out_relabel.rb
│ ├── test_out_roundrobin.rb
│ ├── test_out_secondary_file.rb
│ ├── test_out_stdout.rb
│ ├── test_out_stream.rb
│ ├── test_output.rb
│ ├── test_output_as_buffered.rb
│ ├── test_output_as_buffered_backup.rb
│ ├── test_output_as_buffered_compress.rb
│ ├── test_output_as_buffered_overflow.rb
│ ├── test_output_as_buffered_retries.rb
│ ├── test_output_as_buffered_secondary.rb
│ ├── test_output_as_standard.rb
│ ├── test_owned_by.rb
│ ├── test_parser.rb
│ ├── test_parser_apache.rb
│ ├── test_parser_apache2.rb
│ ├── test_parser_apache_error.rb
│ ├── test_parser_csv.rb
│ ├── test_parser_json.rb
│ ├── test_parser_labeled_tsv.rb
│ ├── test_parser_msgpack.rb
│ ├── test_parser_multiline.rb
│ ├── test_parser_nginx.rb
│ ├── test_parser_none.rb
│ ├── test_parser_regexp.rb
│ ├── test_parser_syslog.rb
│ ├── test_parser_tsv.rb
│ ├── test_sd_file.rb
│ ├── test_sd_srv.rb
│ ├── test_storage.rb
│ ├── test_storage_local.rb
│ └── test_string_util.rb
├── plugin_helper/
│ ├── data/
│ │ └── cert/
│ │ ├── cert-key.pem
│ │ ├── cert-with-CRLF.pem
│ │ ├── cert-with-no-newline.pem
│ │ ├── cert.pem
│ │ ├── cert_chains/
│ │ │ ├── ca-cert-key.pem
│ │ │ ├── ca-cert.pem
│ │ │ ├── cert-key.pem
│ │ │ └── cert.pem
│ │ ├── empty.pem
│ │ ├── generate_cert.rb
│ │ ├── with_ca/
│ │ │ ├── ca-cert-key-pass.pem
│ │ │ ├── ca-cert-key.pem
│ │ │ ├── ca-cert-pass.pem
│ │ │ ├── ca-cert.pem
│ │ │ ├── cert-key-pass.pem
│ │ │ ├── cert-key.pem
│ │ │ ├── cert-pass.pem
│ │ │ └── cert.pem
│ │ └── without_ca/
│ │ ├── cert-key-pass.pem
│ │ ├── cert-key.pem
│ │ ├── cert-pass.pem
│ │ └── cert.pem
│ ├── http_server/
│ │ ├── test_app.rb
│ │ ├── test_request.rb
│ │ └── test_route.rb
│ ├── service_discovery/
│ │ ├── test_manager.rb
│ │ └── test_round_robin_balancer.rb
│ ├── test_cert_option.rb
│ ├── test_child_process.rb
│ ├── test_compat_parameters.rb
│ ├── test_event_emitter.rb
│ ├── test_event_loop.rb
│ ├── test_extract.rb
│ ├── test_formatter.rb
│ ├── test_http_server_helper.rb
│ ├── test_inject.rb
│ ├── test_metrics.rb
│ ├── test_parser.rb
│ ├── test_record_accessor.rb
│ ├── test_retry_state.rb
│ ├── test_server.rb
│ ├── test_service_discovery.rb
│ ├── test_socket.rb
│ ├── test_storage.rb
│ ├── test_thread.rb
│ └── test_timer.rb
├── scripts/
│ ├── exec_script.rb
│ ├── fluent/
│ │ └── plugin/
│ │ ├── formatter1/
│ │ │ └── formatter_test1.rb
│ │ ├── formatter2/
│ │ │ └── formatter_test2.rb
│ │ ├── formatter_known.rb
│ │ ├── out_test.rb
│ │ ├── out_test2.rb
│ │ └── parser_known.rb
│ └── windows_service_test.ps1
├── test_capability.rb
├── test_clock.rb
├── test_config.rb
├── test_configdsl.rb
├── test_daemonizer.rb
├── test_engine.rb
├── test_event.rb
├── test_event_router.rb
├── test_event_time.rb
├── test_file_wrapper.rb
├── test_filter.rb
├── test_fluent_log_event_router.rb
├── test_formatter.rb
├── test_input.rb
├── test_log.rb
├── test_match.rb
├── test_mixin.rb
├── test_msgpack_factory.rb
├── test_oj_options.rb
├── test_output.rb
├── test_plugin.rb
├── test_plugin_classes.rb
├── test_plugin_helper.rb
├── test_plugin_id.rb
├── test_process.rb
├── test_root_agent.rb
├── test_source_only_buffer_agent.rb
├── test_static_config_analysis.rb
├── test_supervisor.rb
├── test_test_drivers.rb
├── test_time_formatter.rb
├── test_time_parser.rb
├── test_tls.rb
├── test_unique_id.rb
└── test_variable_store.rb
================================================
FILE CONTENTS
================================================
================================================
FILE: .deepsource.toml
================================================
version = 1
test_patterns = ["test/**/test_*.rb"]
exclude_patterns = [
"bin/**",
"docs/**",
"example/**"
]
[[analyzers]]
name = "ruby"
enabled = true
================================================
FILE: .github/DISCUSSION_TEMPLATE/q-a-japanese.yml
================================================
title: "[QA (Japanese)]"
labels: ["Q&A (Japanese)"]
body:
- type: markdown
attributes:
value: |
日本語で気軽に質問するためのカテゴリです。もし他の人が困っているのを見つけたらぜひ回答してあげてください。
- type: textarea
id: question
attributes:
label: やりたいこと
description: |
何について困っているのかを書いてください。試したことや実際の結果を示してください。
期待する挙動と実際の結果の違いがあればそれも書くのをおすすめします。
validations:
required: true
- type: textarea
id: configuration
attributes:
label: 設定した内容
description: |
どのような設定をして期待する挙動を実現しようとしたのかを書いてください。(例: fluentd.confの内容を貼り付ける)
render: apache
- type: textarea
id: logs
attributes:
label: ログの内容
description: |
Fluentdのログを提示してください。エラーログがあると回答の助けになります。(例: fluentd.logの内容を貼り付ける)
render: shell
- type: textarea
id: environment
attributes:
label: 環境について
description: |
- Fluentd or td-agent version: `fluentd --version` or `td-agent --version`
- Operating system: `cat /etc/os-release`
- Kernel version: `uname -r`
どんな環境で困っているかの情報がないと、再現できないため誰も回答できないことがあります。
必要な情報を記入することをおすすめします。
value: |
- Fluentd version:
- TD Agent version:
- Fluent Package version:
- Docker image (tag):
- Operating system:
- Kernel version:
render: markdown
================================================
FILE: .github/DISCUSSION_TEMPLATE/q-a.yml
================================================
title: "[Q&A]"
labels: ["Q&A"]
body:
- type: markdown
attributes:
value: |
It is recommended to support each other.
- type: textarea
id: question
attributes:
label: What is a problem?
description: |
A clear and concise description of what you want to happen.
What exactly did you do (or not do) that was effective (or ineffective)?
validations:
required: true
- type: textarea
id: configuration
attributes:
label: Describe the configuration of Fluentd
description: |
If there is the actual configuration of Fluentd, it will help.
- type: textarea
id: logs
attributes:
label: Describe the logs of Fluentd
description: |
If there are error logs of Fluentd, it will help.
- type: textarea
id: environment
attributes:
label: Environment
description: |
- Fluentd or td-agent version: `fluentd --version` or `td-agent --version`
- Operating system: `cat /etc/os-release`
- Kernel version: `uname -r`
Please describe your environment information. If will help to support.
value: |
- Fluentd version:
- TD Agent version:
- Fluent Package version:
- Docker image (tag):
- Operating system:
- Kernel version:
render: markdown
================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.yml
================================================
name: Bug Report
description: Create a report with a procedure for reproducing the bug
labels: "waiting-for-triage"
body:
- type: markdown
attributes:
value: |
Check [CONTRIBUTING guideline](https://github.com/fluent/fluentd/blob/master/CONTRIBUTING.md) first and here is the list to help us investigate the problem.
- type: textarea
id: description
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is
validations:
required: true
- type: textarea
id: reproduce
attributes:
label: To Reproduce
description: Steps to reproduce the behavior
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected behavior
description: A clear and concise description of what you expected to happen
validations:
required: true
- type: textarea
id: environment
attributes:
label: Your Environment
description: |
- Fluentd or its package version: `fluentd --version` (Fluentd, fluent-package) or `td-agent --version` (td-agent)
- Operating system: `cat /etc/os-release`
- Kernel version: `uname -r`
Tip: If you hit the problem with older fluentd version, try latest version first.
value: |
- Fluentd version:
- Package version:
- Operating system:
- Kernel version:
render: markdown
validations:
required: true
- type: textarea
id: configuration
attributes:
label: Your Configuration
description: |
Write your configuration here. Minimum reproducible fluentd.conf is recommended.
render: apache
validations:
required: true
- type: textarea
id: logs
attributes:
label: Your Error Log
description: Write your ALL error log here
render: shell
validations:
required: true
- type: textarea
id: addtional-context
attributes:
label: Additional context
description: Add any other context about the problem here.
validations:
required: false
================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
- name: Ask a Question
url: https://github.com/fluent/fluentd/discussions
about: I have questions about Fluentd and plugins. Please ask and answer questions at https://github.com/fluent/fluentd/discussions
- name: Feedback a Fluentd Use-Case/Testimonial
url: https://github.com/fluent/fluentd-website/issues/new?template=testimonials.yml
about: Feedback your Fluentd use-case/testimonial, How do you use Fluentd in your service?
================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.yml
================================================
name: Feature request
description: Suggest an idea for this project
labels: "waiting-for-triage"
body:
- type: markdown
attributes:
value: |
Check [CONTRIBUTING guideline](https://github.com/fluent/fluentd/blob/master/CONTRIBUTING.md) first and here is the list to help us investigate the problem.
- type: textarea
id: description
attributes:
label: Is your feature request related to a problem? Please describe.
description: |
A clear and concise description of what the problem is.
Ex. I'm always frustrated when [...]
validations:
required: true
- type: textarea
id: solution
attributes:
label: Describe the solution you'd like
description: A clear and concise description of what you want to happen.
validations:
required: true
- type: textarea
id: alternative
attributes:
label: Describe alternatives you've considered
description: A clear and concise description of any alternative solutions or features you've considered.
validations:
required: true
- type: textarea
id: addtional-context
attributes:
label: Additional context
description: Add any other context or screenshots about the feature request here.
validations:
required: false
================================================
FILE: .github/ISSUE_TEMPLATE.md
================================================
Check [CONTRIBUTING guideline](https://github.com/fluent/fluentd/blob/master/CONTRIBUTING.md) first and here is the list to help us investigate the problem.
**Got a question or problem?**
RESOURCES of [Official site](https://www.fluentd.org/) and [Fluentd documentation](https://docs.fluentd.org/) may help you.
If you have further questions about Fluentd and plugins, please direct these to [Mailing List](https://groups.google.com/forum/#!forum/fluentd).
Don't use Github issue for asking questions. Here are examples:
- I installed xxx plugin but it doesn't work. Why?
- Fluentd starts but logs are not sent to xxx. Am I wrong?
- I want to do xxx. How to realize it with plugins?
We may close such questions to keep clear repository for developers and users.
Github issue is mainly for submitting a bug report or feature request. See below.
If you can't judge your case is a bug or not, use mailing list or slack first.
================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
<!--
Thank you for contributing to Fluentd!
Your commits need to follow DCO: https://probot.github.io/apps/dco/
And please provide the following information to help us make the most of your pull request:
-->
**Which issue(s) this PR fixes**:
Fixes #
**What this PR does / why we need it**:
**Docs Changes**:
**Release Note**:
================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: 'weekly'
================================================
FILE: .github/workflows/backport.yml
================================================
name: Backport Pull Requests
on:
schedule:
# Sun 10:00 (JST)
- cron: '0 1 * * 0'
workflow_dispatch:
permissions:
contents: read
concurrency:
group: ${{ github.head_ref || github.sha }}-${{ github.workflow }}
cancel-in-progress: true
jobs:
test:
permissions:
contents: write
pull-requests: write
runs-on: ubuntu-latest
continue-on-error: false
strategy:
fail-fast: false
matrix:
ruby-version: ['3.4']
task: ['backport:v1_19']
name: Backport PR ( ${{ matrix.task }} )
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
# fetch all history for all branches to execute cherry-pick
fetch-depth: 0
- name: Set up Ruby
uses: ruby/setup-ruby@dffb23f65a78bba8db45d387d5ea1bbd6be3ef18 # v1.293.0
with:
ruby-version: ${{ matrix.ruby-version }}
bundler-cache: true
- name: Set up git identity
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
- name: Run backport task ( ${{ matrix.task }} )
shell: bash
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
bundle exec rake ${{ matrix.task }}
================================================
FILE: .github/workflows/benchmark.yml
================================================
name: Benchmark
on:
push:
branches: [master]
pull_request:
branches: [master]
workflow_dispatch:
permissions: read-all
concurrency:
group: ${{ github.head_ref || github.sha }}-${{ github.workflow }}
cancel-in-progress: true
jobs:
test:
runs-on: ${{ matrix.os }}
continue-on-error: false
strategy:
fail-fast: false
matrix:
os: ['ubuntu-latest', 'macos-latest', 'windows-latest']
ruby-version: ['4.0']
name: Ruby ${{ matrix.ruby-version }} on ${{ matrix.os }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up Ruby
uses: ruby/setup-ruby@dffb23f65a78bba8db45d387d5ea1bbd6be3ef18 # v1.293.0
with:
ruby-version: ${{ matrix.ruby-version }}
- name: Install dependencies
run: bundle install
- name: Run Benchmark
shell: bash # Ensure to use bash shell on all platforms
run: |
bundle exec rake benchmark:run:in_tail | tee -a $GITHUB_STEP_SUMMARY
================================================
FILE: .github/workflows/rubocop.yml
================================================
name: RucoCop Security & Performance Check
on:
push:
paths-ignore:
- '*.md'
- 'lib/fluent/version.rb'
pull_request:
paths-ignore:
- '*.md'
- 'lib/fluent/version.rb'
workflow_dispatch:
concurrency:
group: ${{ github.head_ref || github.sha }}-${{ github.workflow }}
cancel-in-progress: true
permissions: read-all
jobs:
rubocop:
runs-on: ubuntu-latest
continue-on-error: false
strategy:
fail-fast: false
matrix:
ruby-version: ['4.0']
name: Ruby ${{ matrix.ruby-version }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up Ruby
uses: ruby/setup-ruby@dffb23f65a78bba8db45d387d5ea1bbd6be3ef18 # v1.293.0
with:
ruby-version: ${{ matrix.ruby-version }}
- name: Install dependencies
run: |
bundle install
gem install rubocop-performance
- name: Run RuboCop
run: rubocop
================================================
FILE: .github/workflows/scorecards.yml
================================================
name: Scorecard supply-chain security
on:
# For Branch-Protection check. Only the default branch is supported. See
# https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection
branch_protection_rule:
# To guarantee Maintained check is occasionally updated. See
# https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained
schedule:
- cron: '38 12 * * 2'
push:
branches: [ "master" ]
# Declare default permissions as read only.
permissions: read-all
jobs:
analysis:
name: Scorecard analysis
runs-on: ubuntu-latest
permissions:
# Needed to upload the results to code-scanning dashboard.
security-events: write
# Needed to publish results and get a badge (see publish_results below).
id-token: write
# Uncomment the permissions below if installing in a private repository.
# contents: read
# actions: read
steps:
- name: "Checkout code"
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: "Run analysis"
uses: ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a # v2.4.3
with:
results_file: results.sarif
results_format: sarif
# (Optional) "write" PAT token. Uncomment the `repo_token` line below if:
# - you want to enable the Branch-Protection check on a *public* repository, or
# - you are installing Scorecard on a *private* repository
# To create the PAT, follow the steps in https://github.com/ossf/scorecard-action?tab=readme-ov-file#authentication-with-fine-grained-pat-optional.
# repo_token: ${{ secrets.SCORECARD_TOKEN }}
# Public repositories:
# - Publish results to OpenSSF REST API for easy access by consumers
# - Allows the repository to include the Scorecard badge.
# - See https://github.com/ossf/scorecard-action#publishing-results.
# For private repositories:
# - `publish_results` will always be set to `false`, regardless
# of the value entered here.
publish_results: true
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
# format to the repository Actions tab.
- name: "Upload artifact"
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: SARIF file
path: results.sarif
retention-days: 5
# Upload the results to GitHub's code scanning dashboard (optional).
# Commenting out will disable upload of results to your repo's Code Scanning dashboard
- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@b1bff81932f5cdfc8695c7752dcee935dcd061c8 # v4.33.0
with:
sarif_file: results.sarif
================================================
FILE: .github/workflows/stale-actions.yml
================================================
name: "Mark or close stale issues and PRs"
on:
schedule:
- cron: "00 10 * * *"
permissions: read-all
jobs:
stale:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/stale@b5d41d4e1d5dceea10e7104786b73624c18a190f # v10.2.0
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
days-before-stale: 30
days-before-close: 7
stale-issue-message: "This issue has been automatically marked as stale because it has been open 30 days with no activity. Remove stale label or comment or this issue will be closed in 7 days"
stale-pr-message: "This PR has been automatically marked as stale because it has been open 30 days with no activity. Remove stale label or comment or this PR will be closed in 7 days"
close-issue-message: "This issue was automatically closed because of stale in 7 days"
close-pr-message: "This PR was automatically closed because of stale in 7 days"
stale-pr-label: "stale"
stale-issue-label: "stale"
exempt-issue-labels: "waiting-for-triage,bug,enhancement,feature request,pending,work-in-progress,v1,v2"
exempt-pr-labels: "waiting-for-triage,bug,enhancement,feature request,pending,work-in-progress,v1,v2"
exempt-all-assignees: true
exempt-all-milestones: true
================================================
FILE: .github/workflows/test-ruby-head.yml
================================================
name: Test with Ruby head
on:
schedule:
- cron: '11 14 * * 0'
workflow_dispatch:
permissions: read-all
jobs:
test:
runs-on: ${{ matrix.os }}
continue-on-error: false
strategy:
fail-fast: false
matrix:
os: ['ubuntu-latest', 'macos-latest', 'windows-latest']
ruby-version: ['head']
env:
RUBYOPT: "--disable-frozen_string_literal"
name: Ruby ${{ matrix.ruby-version }} on ${{ matrix.os }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up Ruby
uses: ruby/setup-ruby@dffb23f65a78bba8db45d387d5ea1bbd6be3ef18 # v1.293.0
with:
ruby-version: ${{ matrix.ruby-version }}
- name: Install addons
if: ${{ matrix.os == 'ubuntu-latest' }}
run: sudo apt-get install libgmp3-dev libcap-ng-dev
- name: Install dependencies
run: bundle install
- name: Run tests
run: bundle exec rake test TESTOPTS="-v --report-slow-tests --no-show-detail-immediately"
================================================
FILE: .github/workflows/test.yml
================================================
name: Test
on:
push:
branches: [master]
paths-ignore:
- '*.md'
- 'lib/fluent/version.rb'
pull_request:
branches: [master]
paths-ignore:
- '*.md'
- 'lib/fluent/version.rb'
workflow_dispatch:
concurrency:
group: ${{ github.head_ref || github.sha }}-${{ github.workflow }}
cancel-in-progress: true
permissions: read-all
jobs:
test:
runs-on: ${{ matrix.os }}
continue-on-error: false
strategy:
fail-fast: false
matrix:
os: ['ubuntu-latest', 'macos-latest', 'windows-latest']
ruby-version: ['4.0', '3.4', '3.3', '3.2']
env:
RUBYOPT: "--disable-frozen_string_literal"
name: Ruby ${{ matrix.ruby-version }} on ${{ matrix.os }}
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up Ruby
uses: ruby/setup-ruby@dffb23f65a78bba8db45d387d5ea1bbd6be3ef18 # v1.293.0
with:
ruby-version: ${{ matrix.ruby-version }}
- name: Install addons
if: ${{ matrix.os == 'ubuntu-latest' }}
run: sudo apt-get install libgmp3-dev libcap-ng-dev
- name: Install dependencies
run: bundle install
- name: Run tests
run: bundle exec rake test TESTOPTS="-v --report-slow-tests --no-show-detail-immediately"
test-windows-service:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
ruby-version: ['4.0', '3.4', '3.3', '3.2']
name: Windows service (Ruby ${{ matrix.ruby-version }})
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up Ruby
uses: ruby/setup-ruby@dffb23f65a78bba8db45d387d5ea1bbd6be3ef18 # v1.293.0
with:
ruby-version: ${{ matrix.ruby-version }}
- name: Install dependencies
run: |
bundle install
rake install
- name: Run tests
run: test\scripts\windows_service_test.ps1
================================================
FILE: .gitignore
================================================
Gemfile.lock
INSTALL
NEWS
Makefile
Makefile.in
README
ac
aclocal.m4
autom4te.cache
confdefs.h
config.log
config.status
configure
deps/
fluent-cat
fluent-gem
fluentd
pkg/*
tmp/*
test/tmp/*
test/config/tmp/*
make_dist.sh
Gemfile.local
.ruby-version
*.swp
coverage/*
.vagrant/
cov-int/
cov-fluentd.tar.gz
.vscode
.idea/
.bundle/
/vendor/
================================================
FILE: .rubocop.yml
================================================
plugins:
- rubocop-performance
AllCops:
Exclude:
- 'vendor/**/*'
NewCops: enable
SuggestExtensions: false
TargetRubyVersion: 3.4
#
# Policy: Check Security & Performance in primary use-cases
# (Disable most of cosmetic rules)
#
Lint:
Enabled: false
Style:
Enabled: false
Gemspec:
Enabled: false
Naming:
Enabled: false
Layout:
Enabled: false
Metrics:
Enabled: false
Security:
Enabled: true
Performance:
Enabled: true
#
# False positive or exceptional cases
#
# False positive because it's intentional
Security/Open:
Exclude:
- lib/fluent/plugin/buffer/chunk.rb
Enabled: true
# False positive because it's intentional
Security/Eval:
Exclude:
- lib/fluent/config/dsl.rb
- lib/fluent/plugin.rb
- lib/fluent/plugin/in_debug_agent.rb
Enabled: true
# False positive because send method must accept literals.
Performance/StringIdentifierArgument:
Exclude:
- test/plugin/test_in_tcp.rb
- test/plugin/test_in_udp.rb
- test/counter/test_server.rb
- test/plugin/test_out_forward.rb
- lib/fluent/plugin/out_forward.rb
Enabled: true
Performance/StringInclude:
Exclude:
- 'test/**/*'
# It was not improved with String#include?
- lib/fluent/command/plugin_config_formatter.rb
Enabled: true
# False positive for include? against constant ranges.
# Almost same between include? and cover?.
# See https://github.com/rubocop/rubocop-jp/issues/20
Performance/RangeInclude:
Exclude:
- lib/fluent/plugin/parser_multiline.rb
Enabled: true
# Allow using &method(:func)
Performance/MethodObjectAsBlock:
Exclude:
- 'test/**/*'
Enabled: false
# Allow block.call
Performance/RedundantBlockCall:
Exclude:
- 'test/**/*'
- 'lib/fluent/plugin_helper/*.rb'
- 'lib/fluent/plugin/*.rb'
- 'lib/fluent/compat/*.rb'
- 'lib/fluent/config/*.rb'
- 'lib/fluent/*.rb'
Enabled: true
#
# TODO: low priority to be fixed
#
Performance/ConstantRegexp:
Exclude:
- 'test/**/*'
Enabled: true
Performance/Sum:
Exclude:
- 'test/**/*'
Enabled: true
Performance/CollectionLiteralInLoop:
Exclude:
- 'test/**/*'
Enabled: true
================================================
FILE: ADOPTERS.md
================================================
# Fluentd Adopters
Fluentd is widely used by hundred of companies, please refer to the testimonial section of our project website to learn more about it:
https://www.fluentd.org/testimonials
================================================
FILE: AUTHORS
================================================
FURUHASHI Sadayuki <frsyuki _at_ gmail.com>
NAKAGAWA Masahiro <repeatedly _at_ gmail.com>
================================================
FILE: CHANGELOG.md
================================================
# v1.20
## Release v1.20.0 - TBD
### Bug fix
* http_server helper: Fix IPv6 bind address support in URI construction
* Fixed `URI::InvalidURIError` when binding to IPv6 addresses (e.g., `::`, `::1`)
* IPv6 addresses are now properly bracketed in URIs per RFC 3986 (e.g., `http://[::]:24231`)
* Handles pre-bracketed addresses correctly to avoid double-bracketing
* Affects all plugins using http_server helper with IPv6 bind addresses
# v1.19
## Release v1.19.2 - 2026/02/13
### Bug Fix
* out_forward: add timeout to establish_connection to prevent infinite loop https://github.com/fluent/fluentd/pull/5138
* gem: use latest net-http to solve IPv6 addr error https://github.com/fluent/fluentd/pull/5192
* in_tail: fix error when files without read permission are included in glob patterns https://github.com/fluent/fluentd/pull/5222
* command/fluentd: load win32/registry when edit registry for Ruby 4.0 https://github.com/fluent/fluentd/pull/5221
* plugin_helper/http_server: Ensure request body is closed to prevent socket leaks in POST requests https://github.com/fluent/fluentd/pull/5234
* config: fix duplicate config file loading in config_include_dir https://github.com/fluent/fluentd/pull/5235
* gem: add ostruct gem as dependency for Ruby 4.0 https://github.com/fluent/fluentd/pull/5251
### Misc
* config: warn when backed-up config file will be included https://github.com/fluent/fluentd/pull/5252
* filter_record_transformer: use cgi/escape to avoid Ruby 4.0 deprecation https://github.com/fluent/fluentd/pull/5256
* CI fixes
* https://github.com/fluent/fluentd/pull/5257
* https://github.com/fluent/fluentd/pull/5229
* https://github.com/fluent/fluentd/pull/5225
* https://github.com/fluent/fluentd/pull/5186
* https://github.com/fluent/fluentd/pull/5184
* https://github.com/fluent/fluentd/pull/5176
## Release v1.19.1 - 2025/11/06
### Bug Fix
* YAML config: Supports parsing array format https://github.com/fluent/fluentd/pull/5139
### Misc
* gem: fix uri gem version to keep IPv6 tests https://github.com/fluent/fluentd/pull/5144
* CI fixes
* https://github.com/fluent/fluentd/pull/5055
* https://github.com/fluent/fluentd/pull/5057
* https://github.com/fluent/fluentd/pull/5063
* https://github.com/fluent/fluentd/pull/5064
* https://github.com/fluent/fluentd/pull/5077
* https://github.com/fluent/fluentd/pull/5078
* https://github.com/fluent/fluentd/pull/5136
* https://github.com/fluent/fluentd/pull/5140
## Release v1.19.0 - 2025/07/30
### Enhancement
New features:
* Add zstd compression support https://github.com/fluent/fluentd/pull/4657
* Buffer: add `zstd` to `compress` option.
* out_file: add `zstd` to `compress` option.
* out_forward: add `zstd` to `compress` option. (Experimental)
* in_forward: support `zstd` format.
* buffer: add feature to evacuate chunk files when retry limit
https://github.com/fluent/fluentd/pull/4986
* out_http: TLS1.3 support
https://github.com/fluent/fluentd/pull/4859
* out_stdout: support output to STDOUT independently of Fluentd logger by setting `use_logger` to `false`
https://github.com/fluent/fluentd/pull/5036
* out_file: add symlink_path_use_relative option to use relative path instead of absolute path in symlink_path
https://github.com/fluent/fluentd/pull/4904
* System configuration: Add forced_stacktrace_level to force the log level of stacktraces.
https://github.com/fluent/fluentd/pull/5008
* System configuration: support built-in config files
https://github.com/fluent/fluentd/pull/4893
Metrics:
* metrics: enable input metrics by default
https://github.com/fluent/fluentd/pull/4966
* in_tail: add "tracked_file_count" metrics to see how many log files are being tracked
https://github.com/fluent/fluentd/pull/4980
* output: add metrics for number of writing events in secondary
https://github.com/fluent/fluentd/pull/4971
* output: add metrics for dropped oldest chunk count
https://github.com/fluent/fluentd/pull/4981
Others:
* in_forward: enable skip_invalid_event by default not to process broken data
https://github.com/fluent/fluentd/pull/5003
* buf_file: reinforce buffer file corruption check
https://github.com/fluent/fluentd/pull/4998
* in_http: allow empty Origin header requests to pass CORS checks
https://github.com/fluent/fluentd/pull/4866
* in_tail: add warning for directory permission
https://github.com/fluent/fluentd/pull/4865
* Add logging for errors about loading dependencies on startup
https://github.com/fluent/fluentd/pull/4858
* Performance improvements
* https://github.com/fluent/fluentd/pull/4759
https://github.com/fluent/fluentd/pull/4760
https://github.com/fluent/fluentd/pull/4763
https://github.com/fluent/fluentd/pull/4764
https://github.com/fluent/fluentd/pull/4769
https://github.com/fluent/fluentd/pull/4813
https://github.com/fluent/fluentd/pull/4817
https://github.com/fluent/fluentd/pull/4835
https://github.com/fluent/fluentd/pull/4845
https://github.com/fluent/fluentd/pull/4881
https://github.com/fluent/fluentd/pull/4884
https://github.com/fluent/fluentd/pull/4886
https://github.com/fluent/fluentd/pull/4930
https://github.com/fluent/fluentd/pull/4931
https://github.com/fluent/fluentd/pull/4932
https://github.com/fluent/fluentd/pull/4933
https://github.com/fluent/fluentd/pull/4934
https://github.com/fluent/fluentd/pull/4995
### Bug Fix
* in_tail: fixed where specifying only encoding parameter might cause data corruption (affects since v0.14.12).
https://github.com/fluent/fluentd/pull/5010
* formatter_csv: fix memory leak
https://github.com/fluent/fluentd/pull/4864
* server plugin helper: ensure to close all connections at shutdown
https://github.com/fluent/fluentd/pull/5026
* Fixed a bug where the default `umask` was not set to `0` when using `--daemon` (td-agent, fluent-package) since v1.14.6.
https://github.com/fluent/fluentd/pull/4836
* `--umask` command line option: Fixed so that it is applied when Fluentd runs with `--daemon` (fluent-package) as well as when Fluentd runs with `--no-supervisor`.
https://github.com/fluent/fluentd/pull/4836
* Windows: Stop the service when the supervisor is dead
https://github.com/fluent/fluentd/pull/4909
* Windows: Fixed an issue where stopping the service immediately after startup could leave the processes.
https://github.com/fluent/fluentd/pull/4782
* Windows: Fixed an issue where stopping service sometimes can not be completed forever.
https://github.com/fluent/fluentd/pull/4782
### Misc
* in_monitor_agent: stop using CGI.parse due to support Ruby 3.5
https://github.com/fluent/fluentd/pull/4962
* HTTP server plugin helper: stop using CGI.parse due to support Ruby 3.5
https://github.com/fluent/fluentd/pull/4962
* config: change inspect format
https://github.com/fluent/fluentd/pull/4914
* console_adapter: support console gem v1.30
https://github.com/fluent/fluentd/pull/4857
* gemspec: fix io-event and io-stream version to avoid unstable behavior on Windows
https://github.com/fluent/fluentd/pull/5042
* in_http: replace WEBrick::HTTPUtils.parse_query with URI
Note that at least, this makes it unable to use ; delimiter.
https://github.com/fluent/fluentd/pull/4900
* http_server: stop fallback to WEBrick
https://github.com/fluent/fluentd/pull/4899
* metrics: add getter method automatically
https://github.com/fluent/fluentd/pull/4978
* http_server helper: add `header` method for `Request`
https://github.com/fluent/fluentd/pull/4903
* multi_output: fix metrics name
https://github.com/fluent/fluentd/pull/4979
* plugin_id: fix typo
https://github.com/fluent/fluentd/pull/4964
* CI fixes
* https://github.com/fluent/fluentd/pull/4728
https://github.com/fluent/fluentd/pull/4730
https://github.com/fluent/fluentd/pull/4746
https://github.com/fluent/fluentd/pull/4747
https://github.com/fluent/fluentd/pull/4748
https://github.com/fluent/fluentd/pull/4750
https://github.com/fluent/fluentd/pull/4755
https://github.com/fluent/fluentd/pull/4820
https://github.com/fluent/fluentd/pull/4874
https://github.com/fluent/fluentd/pull/4877
* Fixes RuboCop's remarks
https://github.com/fluent/fluentd/pull/4928
* CI: Add benchmark scripts
https://github.com/fluent/fluentd/pull/4989
# v1.18
## Release v1.18.0 - 2024/11/29
### Enhancement
* Add zero-downtime-restart feature for non-Windows
https://github.com/fluent/fluentd/pull/4624
* Add with-source-only feature
https://github.com/fluent/fluentd/pull/4661
* `fluentd` command: Add `--with-source-only` option
* System configuration: Add `with_source_only` option
* Embedded plugin: Add `out_buffer` plugin, which can be used for buffering and relabeling events
https://github.com/fluent/fluentd/pull/4661
* Config File Syntax: Extend Embedded Ruby Code support for Hashes and Arrays
https://github.com/fluent/fluentd/pull/4580
* Example: `key {"foo":"#{1 + 1}"} => key {"foo":"2"}`
* Please note that this is not backward compatible, although we assume that this will never affect to actual existing configs.
* In case the behavior changes unintentionally, you can disable this feature by surrounding the entire value with single quotes.
* `key '{"foo":"#{1 + 1}"}' => key {"foo":"#{1 + 1}"}`
* transport tls: Use SSL_VERIFY_NONE by default
https://github.com/fluent/fluentd/pull/4718
* transport tls: Add ensure_fips option to ensure FIPS compliant mode
https://github.com/fluent/fluentd/pull/4720
* plugin_helper/server: Add receive_buffer_size parameter in transport section
https://github.com/fluent/fluentd/pull/4649
* filter_parser: Now able to handle multiple parsed results
https://github.com/fluent/fluentd/pull/4620
* in_http: add `add_tag_prefix` option
https://github.com/fluent/fluentd/pull/4655
* System configuration: add `path` option in `log` section
https://github.com/fluent/fluentd/pull/4604
### Bug Fix
* command: fix NoMethodError of --daemon under Windows
https://github.com/fluent/fluentd/pull/4716
* `fluentd` command: fix `--plugin` (`-p`) option not to overwrite default value
https://github.com/fluent/fluentd/pull/4605
### Misc
* http_server: Ready to support Async 2.0 gem
https://github.com/fluent/fluentd/pull/4619
* Minor code refactoring
* https://github.com/fluent/fluentd/pull/4641
* CI fixes
* https://github.com/fluent/fluentd/pull/4638
* https://github.com/fluent/fluentd/pull/4644
* https://github.com/fluent/fluentd/pull/4675
* https://github.com/fluent/fluentd/pull/4676
* https://github.com/fluent/fluentd/pull/4677
* https://github.com/fluent/fluentd/pull/4686
# v1.17
## Release v1.17.1 - 2024/08/19
### Enhancement
* out_http: Add `compress gzip` option
https://github.com/fluent/fluentd/pull/4528
* in_exec: Add `encoding` option to handle non-ascii characters
https://github.com/fluent/fluentd/pull/4533
* in_tail: Add throttling metrics
https://github.com/fluent/fluentd/pull/4578
* compat: Improve method call performance
https://github.com/fluent/fluentd/pull/4588
* in_sample: Add `reuse_record` parameter to reuse the sample data
https://github.com/fluent/fluentd/pull/4586
* `in_sample` has changed to copy sample data by default to avoid the impact of destructive changes by subsequent plugins.
* This increases the load when generating large amounts of sample data.
* You can use this new parameter to have the same performance as before.
### Bug Fix
* logger: Fix LoadError with console gem v1.25
https://github.com/fluent/fluentd/pull/4492
* parser_json: Fix wrong LoadError warning
https://github.com/fluent/fluentd/pull/4522
* in_tail: Fix an issue where a large single line could consume a large amount of memory even though `max_line_size` is set
https://github.com/fluent/fluentd/pull/4530
* yaml_parser: Support $log_level element
https://github.com/fluent/fluentd/pull/4482
### Misc
* Comment out inappropriate default configuration about out_forward
https://github.com/fluent/fluentd/pull/4523
* gemspec: Remove unnecessary files from released gem
https://github.com/fluent/fluentd/pull/4534
* plugin-generator: Update gemspec to remove unnecessary files
https://github.com/fluent/fluentd/pull/4535
* Suppress non-parenthesis warnings
https://github.com/fluent/fluentd/pull/4594
* Fix FrozenError in http_server plugin helper
https://github.com/fluent/fluentd/pull/4598
* Add logger gem dependency for Ruby 3.5
https://github.com/fluent/fluentd/pull/4589
* out_file: Add warn message for symlink_path setting
https://github.com/fluent/fluentd/pull/4502
## Release v1.17.0 - 2024/04/30
### Enhancement
* in_http: Recognize CSP reports as JSON data
https://github.com/fluent/fluentd/pull/4282
* out_http: Add option to reuse connections
https://github.com/fluent/fluentd/pull/4330
* in_tail: Expand glob capability for square brackets and one character matcher
https://github.com/fluent/fluentd/pull/4401
* out_http: Support AWS Signature Version 4 authentication
https://github.com/fluent/fluentd/pull/4459
### Bug Fix
* Make sure `parser_json` and `parser_msgpack` return `Hash`.
Make `parser_json` and `parser_msgpack` accept only `Hash` or `Array` of `Hash`.
https://github.com/fluent/fluentd/pull/4474
* filter_parser: Add error event for multiple parsed results
https://github.com/fluent/fluentd/pull/4478
### Misc
* Raise minimum required ruby version
https://github.com/fluent/fluentd/pull/4288
* Require missing dependent gems as of Ruby 3.4-dev
https://github.com/fluent/fluentd/pull/4411
* Minor code refactoring
https://github.com/fluent/fluentd/pull/4294
https://github.com/fluent/fluentd/pull/4299
https://github.com/fluent/fluentd/pull/4302
https://github.com/fluent/fluentd/pull/4320
* CI fixes
https://github.com/fluent/fluentd/pull/4369
https://github.com/fluent/fluentd/pull/4433
https://github.com/fluent/fluentd/pull/4452
https://github.com/fluent/fluentd/pull/4477
* github: unify YAML file extension to .yml
https://github.com/fluent/fluentd/pull/4429
# v1.16
## Release v1.16.10 - 2025/09/12
### Bug Fix
* server plugin helper: ensure to close all connections at shutdown
https://github.com/fluent/fluentd/pull/5088
### Misc
* CI improvemnts
https://github.com/fluent/fluentd/pull/5083
https://github.com/fluent/fluentd/pull/5085
https://github.com/fluent/fluentd/pull/5086
https://github.com/fluent/fluentd/pull/5091
https://github.com/fluent/fluentd/pull/5092
## Release v1.16.9 - 2025/05/14
### Bug Fix
* winsvc: Fix bug where service accidentally stops after starting.
The previous version (v1.16.8) should not be used for Windows Service.
https://github.com/fluent/fluentd/pull/4955
### Misc
* CI improvements
https://github.com/fluent/fluentd/pull/4956
## Release v1.16.8 - 2025/05/01
**This version has a critical bug about Windows Service. Do not use this version.**
(https://github.com/fluent/fluentd/pull/4955)
### Bug Fix
* winsvc: Stop the service when the supervisor is dead
https://github.com/fluent/fluentd/pull/4942
* formatter_csv: Fix memory leak
https://github.com/fluent/fluentd/pull/4920
### Misc
* Add fiddle as dependency gem for Ruby 3.5 on Windows
https://github.com/fluent/fluentd/pull/4919
* Refactoring code
https://github.com/fluent/fluentd/pull/4921
https://github.com/fluent/fluentd/pull/4922
https://github.com/fluent/fluentd/pull/4926
https://github.com/fluent/fluentd/pull/4943
* CI improvements
https://github.com/fluent/fluentd/pull/4821
https://github.com/fluent/fluentd/pull/4850
https://github.com/fluent/fluentd/pull/4851
https://github.com/fluent/fluentd/pull/4862
https://github.com/fluent/fluentd/pull/4915
https://github.com/fluent/fluentd/pull/4923
https://github.com/fluent/fluentd/pull/4925
https://github.com/fluent/fluentd/pull/4927
## Release v1.16.7 - 2025/01/29
### Bug Fix
* Windows: Fix `NoMethodError` of `--daemon` option
https://github.com/fluent/fluentd/pull/4796
* Windows: Fixed an issue where stopping the service immediately after startup could leave the processes
https://github.com/fluent/fluentd/pull/4782
* Windows: Fixed an issue where stopping service sometimes can not be completed forever
https://github.com/fluent/fluentd/pull/4782
### Misc
* Windows: Add workaround for unexpected exception
https://github.com/fluent/fluentd/pull/4747
* README: remove deprecated google analytics beacon
https://github.com/fluent/fluentd/pull/4797
* CI improvements
https://github.com/fluent/fluentd/pull/4723
https://github.com/fluent/fluentd/pull/4788
https://github.com/fluent/fluentd/pull/4789
https://github.com/fluent/fluentd/pull/4790
https://github.com/fluent/fluentd/pull/4791
https://github.com/fluent/fluentd/pull/4793
https://github.com/fluent/fluentd/pull/4794
https://github.com/fluent/fluentd/pull/4795
https://github.com/fluent/fluentd/pull/4798
https://github.com/fluent/fluentd/pull/4799
https://github.com/fluent/fluentd/pull/4800
https://github.com/fluent/fluentd/pull/4801
https://github.com/fluent/fluentd/pull/4803
## Release v1.16.6 - 2024/08/16
### Bug Fix
* YAML config syntax: Fix issue where `$log_level` element was not supported correctly
https://github.com/fluent/fluentd/pull/4486
* parser_json: Fix wrong LoadError warning
https://github.com/fluent/fluentd/pull/4592
* `fluentd` command: Fix `--plugin` (`-p`) option not to overwrite default value
https://github.com/fluent/fluentd/pull/4605
### Misc
* out_file: Add warn message for symlink_path setting
https://github.com/fluent/fluentd/pull/4512
* Keep console gem v1.23 to avoid LoadError
https://github.com/fluent/fluentd/pull/4510
## Release v1.16.5 - 2024/03/27
### Bug Fix
* Buffer: Fix emit error of v1.16.4 sometimes failing to process large data
exceeding chunk size limit
https://github.com/fluent/fluentd/pull/4447
## Release v1.16.4 - 2024/03/14
### Bug Fix
* Fix to avoid processing discarded chunks in write_step_by_step.
It fixes not to raise pile of IOError when many `chunk
bytes limit exceeds` errors are occurred.
https://github.com/fluent/fluentd/pull/4342
* in_tail: Fix tail watchers in `rotate_wait` state not being managed.
https://github.com/fluent/fluentd/pull/4334
### Misc
* buffer: Avoid unnecessary log processing. It will improve performance.
https://github.com/fluent/fluentd/pull/4331
## Release v1.16.3 - 2023/11/14
### Bug Fix
* in_tail: Fix a stall bug on !follow_inode case
https://github.com/fluent/fluentd/pull/4327
* in_tail: add warning for silent stop on !follow_inodes case
https://github.com/fluent/fluentd/pull/4339
* Buffer: Fix NoMethodError with empty unstaged chunk arrays
https://github.com/fluent/fluentd/pull/4303
* Fix for rotate_age where Fluentd passes as Symbol
https://github.com/fluent/fluentd/pull/4311
## Release v1.16.2 - 2023/07/14
### Bug Fix
* in_tail: Fix new watcher is wrongly detached on rotation when `follow_inodes`,
which causes stopping tailing the file
https://github.com/fluent/fluentd/pull/4208
* in_tail: Prevent wrongly unwatching when `follow_inodes`, which causes log
duplication
https://github.com/fluent/fluentd/pull/4237
* in_tail: Fix warning log about overwriting entry when `follow_inodes`
https://github.com/fluent/fluentd/pull/4214
* in_tail: Ensure to discard TailWatcher with missing target when `follow_inodes`
https://github.com/fluent/fluentd/pull/4239
* MessagePackFactory: Make sure to reset local unpacker to prevent received
broken data from affecting other receiving data
https://github.com/fluent/fluentd/pull/4178
* Fix failure to launch Fluentd on Windows when the log path isn't specified in
the command line
https://github.com/fluent/fluentd/pull/4188
* logger: Prevent growing cache size of `ignore_same_log_interval` unlimitedly
https://github.com/fluent/fluentd/pull/4229
* Update sigdump to 0.2.5 to fix wrong value of object counts
https://github.com/fluent/fluentd/pull/4225
### Misc
* in_tail: Check detaching inode when `follow_inodes`
https://github.com/fluent/fluentd/pull/4191
* in_tail: Add debug log for pos file compaction
https://github.com/fluent/fluentd/pull/4228
* Code improvements detected by RuboCop Performance
https://github.com/fluent/fluentd/pull/4201
https://github.com/fluent/fluentd/pull/4210
* Add notice for unused argument `unpacker` of `ChunkMessagePackEventStreamer.each`
https://github.com/fluent/fluentd/pull/4159
## Release v1.16.1 - 2023/04/17
### Enhancement
* in_tcp: Add `message_length_limit` to drop large incoming data
https://github.com/fluent/fluentd/pull/4137
### Bug Fix
* Fix NameError of `SecondaryFileOutput` when setting secondary other than
`out_secondary_file`
https://github.com/fluent/fluentd/pull/4124
* Server helper: Suppress error of `UDPServer` over `max_bytes` on Windows
https://github.com/fluent/fluentd/pull/4131
* Buffer: Fix that `compress` setting causes unexpected error when receiving
already compressed MessagePack
https://github.com/fluent/fluentd/pull/4147
### Misc
* Update MAINTAINERS.md
https://github.com/fluent/fluentd/pull/4119
* Update security policy
https://github.com/fluent/fluentd/pull/4123
* Plugin template: Remove unnecessary code
https://github.com/fluent/fluentd/pull/4128
* Revive issue auto closer
https://github.com/fluent/fluentd/pull/4116
* Fix a link for the repository of td-agent
https://github.com/fluent/fluentd/pull/4145
* in_udp: add test of message_length_limit
https://github.com/fluent/fluentd/pull/4117
* Fix a typo of an argument of `Fluent::EventStream#each`
https://github.com/fluent/fluentd/pull/4148
* Test in_tcp: Fix undesirable way to assert logs
https://github.com/fluent/fluentd/pull/4138
## Release v1.16.0 - 2023/03/29
### Enhancement
* in_tcp: Add `send_keepalive_packet` option
https://github.com/fluent/fluentd/pull/3961
* buffer: backup broken file chunk
https://github.com/fluent/fluentd/pull/4025
* Add warning messages for restoring buffer with `flush_at_shutdown true`
https://github.com/fluent/fluentd/pull/4027
* Add logs for time period of restored buffer possibly broken
https://github.com/fluent/fluentd/pull/4028
### Bug Fix
* http_server_helper: Fix format of log messages originating from Async gem
https://github.com/fluent/fluentd/pull/3987
* Change to not generate a sigdump file after receiving a `SIGTERM` signal on
non-Windows
https://github.com/fluent/fluentd/pull/4034
https://github.com/fluent/fluentd/pull/4043
* out_forward: fix error of ack handling conflict on stopping with
`require_ack_response` enabled
https://github.com/fluent/fluentd/pull/4030
* Fix problem that some `system` configs are not reflected
https://github.com/fluent/fluentd/pull/4064
https://github.com/fluent/fluentd/pull/4065
https://github.com/fluent/fluentd/pull/4086
https://github.com/fluent/fluentd/pull/4090
https://github.com/fluent/fluentd/pull/4096
* Fix bug that the logger outputs some initial log messages without applying
some settings such as `format`
https://github.com/fluent/fluentd/pull/4091
* Windows: Fix a bug that the wrong log file is reopened with log rotate setting
when flushing or graceful reloading
https://github.com/fluent/fluentd/pull/4054
* Fix race condition of out_secondary_file
https://github.com/fluent/fluentd/pull/4081
* Suppress warning using different secondary for out_secondary_file
https://github.com/fluent/fluentd/pull/4087
* Fix value of `system_config.workers` at `run_configure`.
Change argument type of `Fluent::Plugin::Base::configure()` to
`Fluent::Config::Element` only.
https://github.com/fluent/fluentd/pull/4066
* Fix bug that Fluentd sometimes tries to use an unavailable port and fails to
start on Windows
https://github.com/fluent/fluentd/pull/4092
### Misc
* Add method for testing `filtered_with_time`
https://github.com/fluent/fluentd/pull/3899
* Replace `$$` with `Process.pid`
https://github.com/fluent/fluentd/pull/4040
* Relax required webric gem version
https://github.com/fluent/fluentd/pull/4061
* CI fixes to support Ruby 3.2
https://github.com/fluent/fluentd/pull/3968
https://github.com/fluent/fluentd/pull/3996
https://github.com/fluent/fluentd/pull/3997
* Other CI fixes
https://github.com/fluent/fluentd/pull/3969
https://github.com/fluent/fluentd/pull/3990
https://github.com/fluent/fluentd/pull/4013
https://github.com/fluent/fluentd/pull/4033
https://github.com/fluent/fluentd/pull/4044
https://github.com/fluent/fluentd/pull/4050
https://github.com/fluent/fluentd/pull/4062
https://github.com/fluent/fluentd/pull/4074
https://github.com/fluent/fluentd/pull/4082
https://github.com/fluent/fluentd/pull/4085
* Update MAINTAINERS.md
https://github.com/fluent/fluentd/pull/4026
https://github.com/fluent/fluentd/pull/4069
# v1.15
## Release v1.15.3 - 2022/11/02
### Bug Fix
* Support glob for `!include` directive in YAML config format
https://github.com/fluent/fluentd/pull/3917
* Remove meaningless oj options
https://github.com/fluent/fluentd/pull/3929
* Fix log initializer to correctly create per-process files on Windows
https://github.com/fluent/fluentd/pull/3939
* out_file: Fix the multi-worker check with `<worker 0-N>` directive
https://github.com/fluent/fluentd/pull/3942
### Misc
* Fix broken tests on Ruby 3.2
https://github.com/fluent/fluentd/pull/3883
https://github.com/fluent/fluentd/pull/3922
## Release v1.15.2 - 2022/08/22
### Enhancement
* Add a new system configuration `enable_jit`
https://github.com/fluent/fluentd/pull/3857
### Bug Fix
* out_file: Fix append mode with `--daemon` flag
https://github.com/fluent/fluentd/pull/3864
* child_process: Plug file descriptor leak
https://github.com/fluent/fluentd/pull/3844
### Misc
* Drop win32-api gem to support Ruby 3.2
https://github.com/fluent/fluentd/pull/3849
https://github.com/fluent/fluentd/pull/3866
## Release v1.15.1 - 2022/07/27
### Bug Fix
* Add support for concurrent append in out_file
https://github.com/fluent/fluentd/pull/3808
### Misc
* in_tail: Show more information on skipping update_watcher
https://github.com/fluent/fluentd/pull/3829
## Release v1.15.0 - 2022/06/29
### Enhancement
* in_tail: Add log throttling in files based on group rules
https://github.com/fluent/fluentd/pull/3535
https://github.com/fluent/fluentd/pull/3771
* Add `dump` command to fluent-ctl
https://github.com/fluent/fluentd/pull/3680
* Handle YAML configuration format on configuration file
https://github.com/fluent/fluentd/pull/3712
* Add `restart_worker_interval` parameter in `<system>` directive to set
interval to restart workers that has stopped for some reason.
https://github.com/fluent/fluentd/pull/3768
### Bug fixes
* out_forward: Fix to update timeout of cached sockets
https://github.com/fluent/fluentd/pull/3711
* in_tail: Fix a possible crash on file rotation when `follow_inodes true`
https://github.com/fluent/fluentd/pull/3754
* output: Fix a possible crash of flush thread
https://github.com/fluent/fluentd/pull/3755
* in_tail: Fix crash bugs on Ruby 3.1 on Windows
https://github.com/fluent/fluentd/pull/3766
* in_tail: Fix a bug that in_tail cannot open non-ascii path on Windows
https://github.com/fluent/fluentd/pull/3774
* Fix a bug that fluentd doesn't release its own log file even after rotated by
external tools
https://github.com/fluent/fluentd/pull/3782
### Misc
* in_tail: Simplify TargetInfo related code
https://github.com/fluent/fluentd/pull/3489
* Fix a wrong issue number in CHANGELOG
https://github.com/fluent/fluentd/pull/3700
* server helper: Add comments to linger_timeout behavior about Windows
https://github.com/fluent/fluentd/pull/3701
* service_discovery: Fix typo
https://github.com/fluent/fluentd/pull/3724
* test: Fix unstable tests and warnings
https://github.com/fluent/fluentd/pull/3745
https://github.com/fluent/fluentd/pull/3753
https://github.com/fluent/fluentd/pull/3767
https://github.com/fluent/fluentd/pull/3783
https://github.com/fluent/fluentd/pull/3784
https://github.com/fluent/fluentd/pull/3785
https://github.com/fluent/fluentd/pull/3787
# v1.14
## Release v1.14.6 - 2022/03/31
### Enhancement
* Enable server plugins to specify socket-option `SO_LINGER`
https://github.com/fluent/fluentd/pull/3644
* Add `--umask` command line parameter
https://github.com/fluent/fluentd/pull/3671
https://github.com/fluent/fluentd/pull/3679
### Bug fixes
* Fix metric name typo
https://github.com/fluent/fluentd/pull/3630
https://github.com/fluent/fluentd/pull/3673
* Apply modifications in pipeline to the records being passed to `@ERROR` label
https://github.com/fluent/fluentd/pull/3631
* Fix wrong calculation of retry interval
https://github.com/fluent/fluentd/pull/3640
https://github.com/fluent/fluentd/pull/3649
https://github.com/fluent/fluentd/pull/3685
https://github.com/fluent/fluentd/pull/3686
* Support IPv6 address for `rpc_endpoint` in `system` config
https://github.com/fluent/fluentd/pull/3641
### Misc
* CI: Support Ruby 3.1 except Windows
https://github.com/fluent/fluentd/pull/3619
* Switch to GitHub Discussions
https://github.com/fluent/fluentd/pull/3654
* Fix CHANGELOG.md heading styles
https://github.com/fluent/fluentd/pull/3648
* Declare `null_value_pattern` as `regexp`
https://github.com/fluent/fluentd/pull/3650
## Release v1.14.5 - 2022/02/09
### Enhancement
* Add support for "application/x-ndjson" to `in_http`
https://github.com/fluent/fluentd/pull/3616
* Add support for ucrt binary for Windows
https://github.com/fluent/fluentd/pull/3613
### Bug fixes
* Don't retry when `retry_max_times == 0`
https://github.com/fluent/fluentd/pull/3608
* Fix hang-up issue during TLS handshake in `out_forward`
https://github.com/fluent/fluentd/pull/3601
* Bump up required ServerEngine to v2.2.5
https://github.com/fluent/fluentd/pull/3599
* Fix "invalid byte sequence is replaced" warning on Kubernetes
https://github.com/fluent/fluentd/pull/3596
* Fix "ArgumentError: unknown keyword: :logger" on Windows with Ruby 3.1
https://github.com/fluent/fluentd/pull/3592
## Release v1.14.4 - 2022/01/06
### Enhancement
* `in_tail`: Add option to skip long lines (`max_line_size`)
https://github.com/fluent/fluentd/pull/3565
### Bug fix
* Incorrect BufferChunkOverflowError when each event size is < `chunk_limit_size`
https://github.com/fluent/fluentd/pull/3560
* On macOS with Ruby 2.7/3.0, `out_file` fails to write events if `append` is true.
https://github.com/fluent/fluentd/pull/3579
* test: Fix unstable test cases
https://github.com/fluent/fluentd/pull/3574
https://github.com/fluent/fluentd/pull/3577
## Release v1.14.3 - 2021/11/26
### Enhancement
* Changed to accept `http_parser.rb` 0.8.0.
`http_parser.rb` 0.8.0 is ready for Ractor.
https://github.com/fluent/fluentd/pull/3544
### Bug fix
* in_tail: Fixed a bug that no new logs are read when
`enable_stat_watcher true` and `enable_watch_timer false` is set.
https://github.com/fluent/fluentd/pull/3541
* in_tail: Fixed a bug that the beginning and initial lines are lost
after startup when `read_from_head false` and path includes wildcard '*'.
https://github.com/fluent/fluentd/pull/3542
* Fixed a bug that processing messages were lost when
BufferChunkOverflowError was thrown even though only a specific
message size exceeds chunk_limit_size.
https://github.com/fluent/fluentd/pull/3553
https://github.com/fluent/fluentd/pull/3562
### Misc
* Bump up required version of `win32-service` gem.
newer version is required to implement additional `fluent-ctl` commands.
https://github.com/fluent/fluentd/pull/3556
## Release v1.14.2 - 2021/10/29
IMPORTANT: This release contain the fix for CVE-2021-41186 -
ReDoS vulnerability in `parser_apache2`.
This vulnerability is affected from Fluentd v0.14.14 to v1.14.1.
We recommend to upgrade Fluentd to v1.14.2 or use patched version of
`parser_apache2` plugin.
### Enhancement
* fluent-cat: Add `--event-time` option to send specified event time for testing.
https://github.com/fluent/fluentd/pull/3528
### Bug fix
* Fixed to generate correct epoch timestamp even after switching Daylight Saving Time
https://github.com/fluent/fluentd/pull/3524
* Fixed ReDoS vulnerability in parser_apache2.
This vulnerability is caused by a certain pattern of a broken apache log.
## Release v1.14.1 - 2021/09/29
### Enhancement
* in_tail: Added file related metrics.
These metrics should be collected same as fluent-bit's in_tail.
https://github.com/fluent/fluentd/pull/3504
* out_forward: Changed to use metrics mechanism for node statistics
https://github.com/fluent/fluentd/pull/3506
### Bug fix
* in_tail: Fixed a crash bug that it raise undefined method of eof? error.
This error may happen only when `read_bytes_limit_per_second` was specified.
https://github.com/fluent/fluentd/pull/3500
* out_forward: Fixed a bug that node statistics information is not included correctly.
https://github.com/fluent/fluentd/pull/3503
https://github.com/fluent/fluentd/pull/3507
* Fixed a error when using `@include` directive
It was occurred when http/https scheme URI is used in `@include` directive with Ruby 3.
https://github.com/fluent/fluentd/pull/3517
* out_copy: Fixed to suppress a wrong warning for `ignore_if_prev_success`
It didn't work even if a user set it.
https://github.com/fluent/fluentd/pull/3515
* Fixed not to output nanoseconds field of next retry time in warning log
Then, inappropriate labels in log are also fixed. (retry_time -> retry_times,
next_retry_seconds -> next_retry_time)
https://github.com/fluent/fluentd/pull/3518
## Release v1.14.0 - 2021/08/30
### Enhancement
* Added `enable_input_metrics`, `enable_size_metrics` system
configuration parameter
This feature might need to pay higher CPU cost, so input event metrics
features are disabled by default. These features are also enabled by
`--enable-input-metrics`,`--enable-size-metrics` command line
option.
https://github.com/fluent/fluentd/pull/3440
* Added reserved word `@ROOT` for getting root router.
This is incompatible change. Do not use `@ROOT` for label name.
https://github.com/fluent/fluentd/pull/3358
* in_syslog: Added `send_keepalive_packet` option
https://github.com/fluent/fluentd/pull/3474
* in_http: Added `cors_allow_credentials` option.
This option tells browsers whether to expose the response to
frontend when the credentials mode is "include".
https://github.com/fluent/fluentd/pull/3481
https://github.com/fluent/fluentd/pull/3491
### Bug fix
* in_tail: Fixed a bug that deleted paths are not removed
from pos file by file compaction at start up
https://github.com/fluent/fluentd/pull/3467
* in_tail: Revived a warning message of retrying unaccessible file
https://github.com/fluent/fluentd/pull/3478
* TLSServer: Fixed a crash bug on logging peer host name errors
https://github.com/fluent/fluentd/pull/3483
### Misc
* Added metrics plugin mechanism
The implementations is changed to use metrics plugin.
In the future, 3rd party plugin will be able to handle these metrics.
https://github.com/fluent/fluentd/pull/3471
https://github.com/fluent/fluentd/pull/3473
https://github.com/fluent/fluentd/pull/3479
https://github.com/fluent/fluentd/pull/3484
# v1.13
## Release v1.13.3 - 2021/07/27
### Bug fix
* in_tail: Care DeletePending state on Windows
https://github.com/fluent/fluentd/pull/3457
https://github.com/fluent/fluentd/pull/3460
* in_tail: Fix some pos_file bugs.
Avoid deleting pos_file entries unexpectedly when both
`pos_file_compaction_interval` and `follow_inode` are enabled.
Use `bytesize` instead of `size` for path length.
https://github.com/fluent/fluentd/pull/3459
* in_tail: Fix detecting rotation twice on `follow_inode`.
https://github.com/fluent/fluentd/pull/3466
### Misc
* Remove needless spaces in a sample config file
https://github.com/fluent/fluentd/pull/3456
## Release v1.13.2 - 2021/07/12
### Enhancement
* fluent-plugin-generate: Storage plugin was supported.
https://github.com/fluent/fluentd/pull/3426
* parser_json: Added support to customize configuration of oj options.
Use `FLUENT_OJ_OPTION_BIGDECIMAL_LOAD`, `FLUENT_OJ_OPTION_MAX_NESTING`,
`FLUENT_OJ_OPTION_MODE`, and `FLUENT_OJ_OPTION_USE_TO_JSON` environment
variable to configure it.
https://github.com/fluent/fluentd/pull/3315
### Bug fix
* binlog_reader: Fixed a crash bug by missing "fluent/env" dependency.
https://github.com/fluent/fluentd/pull/3443
* Fixed a crash bug on outputting log at the early stage when parsing
config file. This is a regression since v1.13.0. If you use invalid
'@' prefix parameter, remove it as a workaround.
https://github.com/fluent/fluentd/pull/3451
* in_tail: Fixed a bug that when rotation is occurred, remaining lines
will be discarded if the throttling feature is enabled.
https://github.com/fluent/fluentd/pull/3390
* fluent-plugin-generate: Fixed a crash bug during gemspec generation.
It was unexpectedly introduced by #3305, thus this bug was a
regression since 1.12.3.
https://github.com/fluent/fluentd/pull/3444
### Misc
* Fixed the runtime dependency version of http_parse.rb to 0.7.0.
It was fixed because false positive detection is occurred frequently
by security scanning tools.
https://github.com/fluent/fluentd/pull/3450
## Release v1.13.1 - 2021/06/25
### Bug fix
* out_forward: Fixed a race condition on handshake
It's caused by using a same unpacker from multiple threads.
https://github.com/fluent/fluentd/pull/3405
https://github.com/fluent/fluentd/pull/3406
* in_tail: Fixed to remove too much verbose debugging logs
It was unexpectedly introduced by #3185 log throttling feature.
https://github.com/fluent/fluentd/pull/3418
* Fixed not to echo back the provides path as is on a 404 error
There was a potential cross-site scripting vector even though
it is quite difficult to exploit.
https://github.com/fluent/fluentd/pull/3427
### Misc
* Pretty print for Fluent::Config::Section has been supported
for debugging
https://github.com/fluent/fluentd/pull/3398
* CI: Dropped to run CI for Ruby 2.5
https://github.com/fluent/fluentd/pull/3412
## Release v1.13.0 - 2021/05/29
### Enhancement
* in_tail: Handle log throttling per file feature
https://github.com/fluent/fluentd/pull/3185
https://github.com/fluent/fluentd/pull/3364
https://github.com/fluent/fluentd/pull/3379
* Extend to support service discovery manager in simpler way
https://github.com/fluent/fluentd/pull/3299
https://github.com/fluent/fluentd/pull/3362
* in_http: HTTP GET requests has been supported
https://github.com/fluent/fluentd/pull/3373
* The log rotate settings in system configuration has been supported
https://github.com/fluent/fluentd/pull/3352
### Bug fix
* Fix to disable `trace_instruction` when
`RubyVM::InstructionSequence` is available. It improves
compatibility with `truffleruby` some extent.
https://github.com/fluent/fluentd/pull/3376
* in_tail: Safely skip files which are used by another process on
Windows. It improves exception handling about
`ERROR_SHARING_VIOLATION` on Windows.
https://github.com/fluent/fluentd/pull/3378
* fluent-cat: the issue resending secondary file in specific format
has been fixed
https://github.com/fluent/fluentd/pull/3368
* in_tail: Shutdown immediately & safely even if reading huge files
Note that `skip_refresh_on_startup` must be enabled.
https://github.com/fluent/fluentd/pull/3380
### Misc
* example: Change a path to backup_path in counter_server correctly
https://github.com/fluent/fluentd/pull/3359
* README: Update link to community forum to discuss.fluentd.org
https://github.com/fluent/fluentd/pull/3360
# v1.12
## Release v1.12.4 - 2021/05/26
### Bug fix
* in_tail: Fix a bug that refresh_watcher fails to handle file rotations
https://github.com/fluent/fluentd/pull/3393
## Release v1.12.3 - 2021/04/23
### Enhancement
* plugin_helper: Allow TLS to use keep-alive socket option
https://github.com/fluent/fluentd/pull/3308
### Bug fix
* parser_csv, parser_syslog: Fix a naming conflict on parser_type
https://github.com/fluent/fluentd/pull/3302
* in_tail: Fix incorrect error code & message on Windows
https://github.com/fluent/fluentd/pull/3325
https://github.com/fluent/fluentd/pull/3329
https://github.com/fluent/fluentd/pull/3331
https://github.com/fluent/fluentd/pull/3337
* in_tail: Fix a crash bug on catching a short-lived log
https://github.com/fluent/fluentd/pull/3328
* storage_local: Fix position file corruption issue on concurrent gracefulReloads
https://github.com/fluent/fluentd/pull/3335
* Fix incorrect warnings about ${chunk_id} with out_s3
https://github.com/fluent/fluentd/pull/3339
* TLS Server: Add peer information to error log message
https://github.com/fluent/fluentd/pull/3330
### Misc
* fluent-plugin-generate: add note about plugin name
https://github.com/fluent/fluentd/pull/3303
* fluent-plugin-generate: Use same depended gem version with fluentd
https://github.com/fluent/fluentd/pull/3305
* Fix some broken unit tests and improve CI's stability
https://github.com/fluent/fluentd/pull/3304
https://github.com/fluent/fluentd/pull/3307
https://github.com/fluent/fluentd/pull/3312
https://github.com/fluent/fluentd/pull/3313
https://github.com/fluent/fluentd/pull/3314
https://github.com/fluent/fluentd/pull/3316
https://github.com/fluent/fluentd/pull/3336
* Permit to install with win32-service 2.2.0 on Windows
https://github.com/fluent/fluentd/pull/3343
## Release v1.12.2 - 2021/03/29
### Enhancement
* out_copy: Add ignore_if_prev_successes
https://github.com/fluent/fluentd/pull/3190
https://github.com/fluent/fluentd/pull/3287
* Support multiple kind of timestamp format
https://github.com/fluent/fluentd/pull/3252
* formatter_ltsv: suppress delimiters in output
https://github.com/fluent/fluentd/pull/1666
https://github.com/fluent/fluentd/pull/3288
https://github.com/fluent/fluentd/pull/3289
### Bug fix
* in_tail: Expect ENOENT during stat
https://github.com/fluent/fluentd/pull/3275
* out_forward: Prevent transferring duplicate logs on restart
https://github.com/fluent/fluentd/pull/3267
https://github.com/fluent/fluentd/pull/3285
* in_tail: Handle to send rotated logs when mv is used for rotating
https://github.com/fluent/fluentd/pull/3294
* fluent-plugin-config-format: Fill an uninitialized instance variable
https://github.com/fluent/fluentd/pull/3297
* Fix MessagePackEventStream issue with Enumerable methods
https://github.com/fluent/fluentd/pull/2116
### Misc
* Add webrick to support Ruby 3.0
https://github.com/fluent/fluentd/pull/3257
* Suggest Discourse instead of Google Groups
https://github.com/fluent/fluentd/pull/3261
* Update MAINTAINERS.md
https://github.com/fluent/fluentd/pull/3282
* Introduce DeepSource to check code quality
https://github.com/fluent/fluentd/pull/3286
https://github.com/fluent/fluentd/pull/3259
https://github.com/fluent/fluentd/pull/3291
* Migrate to GitHub Actions and stabilize tests
https://github.com/fluent/fluentd/pull/3266
https://github.com/fluent/fluentd/pull/3268
https://github.com/fluent/fluentd/pull/3281
https://github.com/fluent/fluentd/pull/3283
https://github.com/fluent/fluentd/pull/3290
## Release v1.12.1 - 2021/02/18
### Enhancement
* out_http: Add `headers_from_placeholders` parameter
https://github.com/fluent/fluentd/pull/3241
* fluent-plugin-config-format: Add `--table` option to use markdown table
https://github.com/fluent/fluentd/pull/3240
* Add `--disable-shared-socket`/`disable_shared_socket` to disable ServerEngine's shared socket setup
https://github.com/fluent/fluentd/pull/3250
### Bug fix
* ca_generate: Fix creating TLS certification files which include broken extensions
https://github.com/fluent/fluentd/pull/3246
* test: Drop TLS 1.1 tests
https://github.com/fluent/fluentd/pull/3256
* Remove old gem constraints to support Ruby 3
### Misc
* Use GitHub Actions
https://github.com/fluent/fluentd/pull/3233
https://github.com/fluent/fluentd/pull/3255
## Release v1.12.0 - 2021/01/05
### New feature
* in_tail: Add `follow_inode` to support log rotation with wild card
https://github.com/fluent/fluentd/pull/3182
* in_tail: Handle linux capability
https://github.com/fluent/fluentd/pull/3155
https://github.com/fluent/fluentd/pull/3162
* windows: Add win32 events alternative to unix signals
https://github.com/fluent/fluentd/pull/3131
### Enhancement
* buffer: Enable metadata comparison optimization on all platforms
https://github.com/fluent/fluentd/pull/3095
* fluent-plugin-config-formatter: Handle `service_discovery` type
https://github.com/fluent/fluentd/pull/3178
* in_http: Add `add_query_params` parameter to add query params to event record
https://github.com/fluent/fluentd/pull/3197
* inject: Support `unixtime_micros` and `unixtime_nanos` in `time_type`
https://github.com/fluent/fluentd/pull/3220
* Refactoring code
https://github.com/fluent/fluentd/pull/3167
https://github.com/fluent/fluentd/pull/3170
https://github.com/fluent/fluentd/pull/3180
https://github.com/fluent/fluentd/pull/3196
https://github.com/fluent/fluentd/pull/3213
https://github.com/fluent/fluentd/pull/3222
### Bug fix
* output: Prevent retry.step from being called too many times in a short time
https://github.com/fluent/fluentd/pull/3203
# v1.11
## Release v1.11.5 - 2020/11/06
### Enhancement
* formatter: Provide `newline` parameter to support `CRLF`
https://github.com/fluent/fluentd/pull/3152
* out_http: adding support for intermediate certificates
https://github.com/fluent/fluentd/pull/3146
* Update serverengine dependency to 2.2.2 or later
### Bug fix
* Fix a bug that windows service isn't stopped gracefully
https://github.com/fluent/fluentd/pull/3156
## Release v1.11.4 - 2020/10/13
### Enhancement
* inject: Support `unixtime_millis` in `time_type` parameter
https://github.com/fluent/fluentd/pull/3145
### Bug fix
* out_http: Fix broken data with `json_array true`
https://github.com/fluent/fluentd/pull/3144
* output: Fix wrong logging issue for `${chunk_id}`
https://github.com/fluent/fluentd/pull/3134
## Release v1.11.3 - 2020/09/30
### Enhancement
* in_exec: Add `connect_mode` parameter to read stderr
https://github.com/fluent/fluentd/pull/3108
* parser_json: Improve the performance
https://github.com/fluent/fluentd/pull/3109
* log: Add `ignore_same_log_interval` parameter
https://github.com/fluent/fluentd/pull/3119
* Upgrade win32 gems
https://github.com/fluent/fluentd/pull/3100
* Refactoring code
https://github.com/fluent/fluentd/pull/3094
https://github.com/fluent/fluentd/pull/3118
### Bug fix
* buffer: Fix calculation of timekey stats
https://github.com/fluent/fluentd/pull/3018
* buffer: fix binmode usage for prevent gc
https://github.com/fluent/fluentd/pull/3138
## Release v1.11.2 - 2020/08/04
### Enhancement
* `in_dummy` renamed to `in_sample`
https://github.com/fluent/fluentd/pull/3065
* Allow regular expression in filter/match directive
https://github.com/fluent/fluentd/pull/3071
* Refactoring code
https://github.com/fluent/fluentd/pull/3051
### Bug fix
* buffer: Fix log message for `chunk_limit_records` case
https://github.com/fluent/fluentd/pull/3079
* buffer: Fix timekey optimization for non-windows platform
https://github.com/fluent/fluentd/pull/3092
* cert: Raise an error for broken certificate file
https://github.com/fluent/fluentd/pull/3086
* cert: Set TLS ciphers list correctly on older OpenSSL
https://github.com/fluent/fluentd/pull/3093
## Release v1.11.1 - 2020/06/22
### Enhancement
* in_http: Add `dump_error_log` parameter
https://github.com/fluent/fluentd/pull/3035
* in_http: Improve time field handling
https://github.com/fluent/fluentd/pull/3046
* Refactoring code
https://github.com/fluent/fluentd/pull/3047
### Bug fix
* in_tail: Use actual path instead of based pattern for ignore list
https://github.com/fluent/fluentd/pull/3042
* child_process helper: Fix child process failure due to SIGPIPE if the command uses stdout
https://github.com/fluent/fluentd/pull/3044
## Release v1.11.0 - 2020/06/04
### New feature
* in_unix: Use v1 API
https://github.com/fluent/fluentd/pull/2992
### Enhancement
* parser_syslog: Support any `time_format` for RFC3164 string parser
https://github.com/fluent/fluentd/pull/3014
* parser_syslog: Add new parser for RFC5424
https://github.com/fluent/fluentd/pull/3015
* Refactoring code
https://github.com/fluent/fluentd/pull/3019
### Bug fix
* in_gc_stat: Add `use_symbol_keys` parameter to emit string key record
https://github.com/fluent/fluentd/pull/3008
# v1.10
## Release v1.10.4 - 2020/05/12
### Enhancement
* out_http: Support single json array payload
https://github.com/fluent/fluentd/pull/2973
* Refactoring
https://github.com/fluent/fluentd/pull/2988
### Bug fix
* supervisor: Call `File.umask(0)` for standalone worker
https://github.com/fluent/fluentd/pull/2987
* out_forward: Fix ZeroDivisionError issue with `weight 0`
https://github.com/fluent/fluentd/pull/2989
## Release v1.10.3 - 2020/05/01
### Enhancement
* record_accessor: Add `set` method
https://github.com/fluent/fluentd/pull/2977
* config: Ruby DSL format is deprecated
https://github.com/fluent/fluentd/pull/2958
* Refactor code
https://github.com/fluent/fluentd/pull/2961
https://github.com/fluent/fluentd/pull/2962
https://github.com/fluent/fluentd/pull/2965
https://github.com/fluent/fluentd/pull/2966
https://github.com/fluent/fluentd/pull/2978
### Bug fix
* out_forward: Disable `linger_timeout` setting on Windows
https://github.com/fluent/fluentd/pull/2959
* out_forward: Fix warning of service discovery manager when fluentd stops
https://github.com/fluent/fluentd/pull/2974
## Release v1.10.2 - 2020/04/15
### Enhancement
* out_copy: Add plugin_id to log message
https://github.com/fluent/fluentd/pull/2934
* socket: Allow cert chains in mutual auth
https://github.com/fluent/fluentd/pull/2930
* system: Add ignore_repeated_log_interval parameter
https://github.com/fluent/fluentd/pull/2937
* windows: Allow to launch fluentd from whitespace included path
https://github.com/fluent/fluentd/pull/2920
* Refactor code
https://github.com/fluent/fluentd/pull/2935
https://github.com/fluent/fluentd/pull/2936
https://github.com/fluent/fluentd/pull/2938
https://github.com/fluent/fluentd/pull/2939
https://github.com/fluent/fluentd/pull/2946
### Bug fix
* in_syslog: Fix octet-counting mode bug
https://github.com/fluent/fluentd/pull/2942
* out_forward: Create timer for purging obsolete sockets when keepalive_timeout is not set
https://github.com/fluent/fluentd/pull/2943
* out_forward: Need authentication when sending tcp heartbeat with keepalive
https://github.com/fluent/fluentd/pull/2945
* command: Fix fluent-debug start failure
https://github.com/fluent/fluentd/pull/2948
* command: Fix regression of supervisor's worker and `--daemon` combo
https://github.com/fluent/fluentd/pull/2950
## Release v1.10.1 - 2020/04/02
### Enhancement
* command: `--daemon` and `--no-supervisor` now work together
https://github.com/fluent/fluentd/pull/2912
* Refactor code
https://github.com/fluent/fluentd/pull/2913
### Bug fix
* in_tail: `Fix pos_file_compaction_interval` parameter type
https://github.com/fluent/fluentd/pull/2921
* in_tail: Fix seek position update after compaction
https://github.com/fluent/fluentd/pull/2922
* parser_syslog: Fix regression in the `with_priority` and RFC5424 case
https://github.com/fluent/fluentd/pull/2923
### Misc
* Add document for security audit
https://github.com/fluent/fluentd/pull/2911
## Release v1.10.0 - 2020/03/24
### New feature
* sd plugin: Add SRV record plugin
https://github.com/fluent/fluentd/pull/2876
### Enhancement
* server: Add `cert_verifier` parameter for TLS transport
https://github.com/fluent/fluentd/pull/2888
* parser_syslog: Support customized time format
https://github.com/fluent/fluentd/pull/2886
* in_dummy: Delete `suspend` parameter
https://github.com/fluent/fluentd/pull/2897
* Refactor code
https://github.com/fluent/fluentd/pull/2858
https://github.com/fluent/fluentd/pull/2862
https://github.com/fluent/fluentd/pull/2864
https://github.com/fluent/fluentd/pull/2869
https://github.com/fluent/fluentd/pull/2870
https://github.com/fluent/fluentd/pull/2874
https://github.com/fluent/fluentd/pull/2881
https://github.com/fluent/fluentd/pull/2885
https://github.com/fluent/fluentd/pull/2894
https://github.com/fluent/fluentd/pull/2896
https://github.com/fluent/fluentd/pull/2898
https://github.com/fluent/fluentd/pull/2899
https://github.com/fluent/fluentd/pull/2900
https://github.com/fluent/fluentd/pull/2901
https://github.com/fluent/fluentd/pull/2906
### Bug fix
* out_forward: windows: Permit to specify `linger_timeout`
https://github.com/fluent/fluentd/pull/2868
* parser_syslog: Fix syslog format detection
https://github.com/fluent/fluentd/pull/2879
* buffer: Fix `available_buffer_space_ratio` calculation
https://github.com/fluent/fluentd/pull/2882
* tls: Support CRLF based X.509 certificates
https://github.com/fluent/fluentd/pull/2890
* msgpack_factory mixin: Fix performance penalty for deprecation log
https://github.com/fluent/fluentd/pull/2903
# v1.9
## Release v1.9.3 - 2020/03/05
### Enhancement
* in_tail: Emit buffered lines as `unmatched_line` at shutdown phase when `emit_unmatched_lines true`
https://github.com/fluent/fluentd/pull/2837
* Specify directory mode explicitly
https://github.com/fluent/fluentd/pull/2827
* server helper: Change SSLError log level to warn in accept
https://github.com/fluent/fluentd/pull/2861
* Refactor code
https://github.com/fluent/fluentd/pull/2829
https://github.com/fluent/fluentd/pull/2830
https://github.com/fluent/fluentd/pull/2832
https://github.com/fluent/fluentd/pull/2836
https://github.com/fluent/fluentd/pull/2838
https://github.com/fluent/fluentd/pull/2842
https://github.com/fluent/fluentd/pull/2843
### Bug fix
* buffer: Add seq to metadata that it can be unique
https://github.com/fluent/fluentd/pull/2824
https://github.com/fluent/fluentd/pull/2853
* buffer: Use `Tempfile` as binmode for decompression
https://github.com/fluent/fluentd/pull/2847
### Misc
* Add `.idea` to git ignore file
https://github.com/fluent/fluentd/pull/2834
* appveyor: Fix tests
https://github.com/fluent/fluentd/pull/2853
https://github.com/fluent/fluentd/pull/2855
* Update pem for test
https://github.com/fluent/fluentd/pull/2839
## Release v1.9.2 - 2020/02/13
### Enhancement
* in_tail: Add `pos_file_compaction_interval` parameter for auto compaction
https://github.com/fluent/fluentd/pull/2805
* command: Use given encoding when RUBYOPT has `-E`
https://github.com/fluent/fluentd/pull/2814
### Bug fix
* command: Accept RUBYOPT with two or more options
https://github.com/fluent/fluentd/pull/2807
* command: Fix infinite loop bug when RUBYOPT is invalid
https://github.com/fluent/fluentd/pull/2813
* log: serverengine's log should be formatted with the same format of fluentd
https://github.com/fluent/fluentd/pull/2812
* in_http: Fix `NoMethodError` when `OPTIONS` request doesn't have 'Origin' header
https://github.com/fluent/fluentd/pull/2823
* parser_syslog: Improved for parsing RFC5424 structured data in `parser_syslog`
https://github.com/fluent/fluentd/pull/2816
## Release v1.9.1 - 2020/01/31
### Enhancement
* http_server helper: Support HTTPS
https://github.com/fluent/fluentd/pull/2787
* in_tail: Add `path_delimiter` to split with any char
https://github.com/fluent/fluentd/pull/2796
* in_tail: Remove an entry from PositionFile when it is unwatched
https://github.com/fluent/fluentd/pull/2803
* out_http: Add warning for `retryable_response_code`
https://github.com/fluent/fluentd/pull/2809
* parser_syslog: Add multiline RFC5424 support
https://github.com/fluent/fluentd/pull/2767
* Add TLS module to unify TLS related code
https://github.com/fluent/fluentd/pull/2802
### Bug fix
* output: Add `EncodingError` to unrecoverable errors
https://github.com/fluent/fluentd/pull/2808
* tls: Fix TLS version handling in secure mode
https://github.com/fluent/fluentd/pull/2802
## Release v1.9.0 - 2020/01/22
### New feature
* New light-weight config reload mechanism
https://github.com/fluent/fluentd/pull/2716
* Drop ruby 2.1/2.2/2.3 support
https://github.com/fluent/fluentd/pull/2750
### Enhancement
* output: Show better message for secondary warning
https://github.com/fluent/fluentd/pull/2751
* Use `ext_monitor` gem if it is installed. For ruby 2.6 or earlier
https://github.com/fluent/fluentd/pull/2670
* Support Ruby's Time class in msgpack serde
https://github.com/fluent/fluentd/pull/2775
* Clean up code/test
https://github.com/fluent/fluentd/pull/2753
https://github.com/fluent/fluentd/pull/2763
https://github.com/fluent/fluentd/pull/2764
https://github.com/fluent/fluentd/pull/2780
### Bug fix
* buffer: Disable the optimization of Metadata instance comparison on Windows
https://github.com/fluent/fluentd/pull/2778
* output/buffer: Fix stage size computation
https://github.com/fluent/fluentd/pull/2734
* server: Ignore Errno::EHOSTUNREACH in TLS accept to avoid fluentd restart
https://github.com/fluent/fluentd/pull/2773
* server: Fix IPv6 dual stack mode issue for udp socket
https://github.com/fluent/fluentd/pull/2781
* config: Support @include/include directive for spaces included path
https://github.com/fluent/fluentd/pull/2780
# v1.8
## Release v1.8.1 - 2019/12/26
### Enhancement
* in_tail: Add `path_timezone` parameter to format `path` with the specified timezone
https://github.com/fluent/fluentd/pull/2719
* out_copy: Add `copy_mode` parameter. `deep_copy` parameter is now deprecated.
https://github.com/fluent/fluentd/pull/2747
* supervisor: Add deprecated log for `inline_config`
https://github.com/fluent/fluentd/pull/2746
### Bug fixes
* parser_ltsv: Prevent garbage result by checking `label_delimiter`
https://github.com/fluent/fluentd/pull/2748
## Release v1.8.0 - 2019/12/11
### New feature
* Add service discovery plugin and `out_forward` use it
https://github.com/fluent/fluentd/pull/2541
* config: Add strict mode and support `default`/`nil` value in ruby embedded mode
https://github.com/fluent/fluentd/pull/2685
### Enhancement
* formatter_csv: Support nested fields
https://github.com/fluent/fluentd/pull/2643
* record_accessor helper: Make code simple and bit faster
https://github.com/fluent/fluentd/pull/2660
* Relax tzinfo dependency to accept v1
https://github.com/fluent/fluentd/pull/2673
* log: Deprecate top-level match for capturing fluentd logs
https://github.com/fluent/fluentd/pull/2689
* in_monitor_agent: Expose Fluentd version in REST API
https://github.com/fluent/fluentd/pull/2706
* time: Accept localtime xor utc
https://github.com/fluent/fluentd/pull/2720
https://github.com/fluent/fluentd/pull/2731
* formatter_stdout: Make time_format configurable in stdout format
https://github.com/fluent/fluentd/pull/2721
* supervisor: create log directory when it doesn't exists
https://github.com/fluent/fluentd/pull/2732
* clean up internal classes / methods / code
https://github.com/fluent/fluentd/pull/2647
https://github.com/fluent/fluentd/pull/2648
https://github.com/fluent/fluentd/pull/2653
https://github.com/fluent/fluentd/pull/2654
https://github.com/fluent/fluentd/pull/2657
https://github.com/fluent/fluentd/pull/2667
https://github.com/fluent/fluentd/pull/2674
https://github.com/fluent/fluentd/pull/2677
https://github.com/fluent/fluentd/pull/2680
https://github.com/fluent/fluentd/pull/2709
https://github.com/fluent/fluentd/pull/2730
### Bug fixes
* output: Fix warning printed when chunk key placeholder not replaced
https://github.com/fluent/fluentd/pull/2523
https://github.com/fluent/fluentd/pull/2733
* Fix dry-run mode
https://github.com/fluent/fluentd/pull/2651
* suppress warning
https://github.com/fluent/fluentd/pull/2652
* suppress keyword argument warning for ruby2.7
https://github.com/fluent/fluentd/pull/2664
* RPC: Fix debug log text
https://github.com/fluent/fluentd/pull/2666
* time: Properly show class names in error message
https://github.com/fluent/fluentd/pull/2671
* Fix a potential bug that ThreadError may occur on SIGUSR1
https://github.com/fluent/fluentd/pull/2678
* server helper: Ignore ECONNREFUSED in TLS accept to avoid fluentd restart
https://github.com/fluent/fluentd/pull/2695
* server helper: Fix IPv6 dual stack mode issue for tcp socket.
https://github.com/fluent/fluentd/pull/2697
* supervisor: Fix inline config handling
https://github.com/fluent/fluentd/pull/2708
* Fix typo
https://github.com/fluent/fluentd/pull/2710
https://github.com/fluent/fluentd/pull/2714
# v1.7
## Release v1.7.4 - 2019/10/24
### Enhancement
* in_http: Add `use_204_response` parameter to return proper 204 response instead of 200.
fluentd v2 will change this parameter to `true`.
https://github.com/fluent/fluentd/pull/2640
### Bug fixes
* child_process helper: fix stderr blocking for discard case
https://github.com/fluent/fluentd/pull/2649
* log: Fix log rotation handling on Windows
https://github.com/fluent/fluentd/pull/2663
## Release v1.7.3 - 2019/10/01
### Enhancement
* in_syslog: Replace priority_key with severity_key
https://github.com/fluent/fluentd/pull/2636
### Bug fixes
* out_forward: Fix nil error after purge obsoleted sockets in socket cache
https://github.com/fluent/fluentd/pull/2635
* fix typo in ChangeLog
https://github.com/fluent/fluentd/pull/2633
## Release v1.7.2 - 2019/09/19
### Enhancement
* in_tcp: Add security/client to restrict access
https://github.com/fluent/fluentd/pull/2622
### Bug fixes
* buf_file/buf_file_single: fix to handle compress data during restart
https://github.com/fluent/fluentd/pull/2620
* plugin: Use `__send__` to avoid conflict with user defined `send`
https://github.com/fluent/fluentd/pull/2614
* buffer: reject invalid timekey at configure phase
https://github.com/fluent/fluentd/pull/2615
## Release v1.7.1 - 2019/09/08
### Enhancement
* socket helper/out_forward: Support Windows certstore to load certificates
https://github.com/fluent/fluentd/pull/2601
* parser_syslog: Add faster parser for rfc3164 message
https://github.com/fluent/fluentd/pull/2599
### Bug fixes
* buf_file/buf_file_single: fix to ignore placeholder based path.
https://github.com/fluent/fluentd/pull/2594
* server helper: Ignore ETIMEDOUT error in SSL_accept
https://github.com/fluent/fluentd/pull/2595
* buf_file: ensure to remove metadata after buffer creation failure
https://github.com/fluent/fluentd/pull/2598
* buf_file_single: fix duplicated path setting check
https://github.com/fluent/fluentd/pull/2600
* fix msgpack-ruby dependency to use recent feature
https://github.com/fluent/fluentd/pull/2606
## Release v1.7.0 - 2019/08/20
### New feature
* buffer: Add file_single buffer plugin
https://github.com/fluent/fluentd/pull/2579
* output: Add http output plugin
https://github.com/fluent/fluentd/pull/2488
### Enhancement
* buffer: Improve the performance of buffer routine
https://github.com/fluent/fluentd/pull/2560
https://github.com/fluent/fluentd/pull/2563
https://github.com/fluent/fluentd/pull/2564
* output: Use Mutex instead of Monitor
https://github.com/fluent/fluentd/pull/2561
* event: Add `OneEventStrea#empty?` method
https://github.com/fluent/fluentd/pull/2565
* thread: Set thread name for ruby 2.3 or later
https://github.com/fluent/fluentd/pull/2574
* core: Cache msgpack packer/unpacker to avoid the object allocation
https://github.com/fluent/fluentd/pull/2559
* time: Use faster way to get sec and nsec
https://github.com/fluent/fluentd/pull/2557
* buf_file: Reduce IO flush by removing `IO#truncate`
https://github.com/fluent/fluentd/pull/2551
* in_tcp: Improve the performance for multiple event case
https://github.com/fluent/fluentd/pull/2567
* in_syslog: support `source_hostname_key` and `source_address_key` for unmatched event
https://github.com/fluent/fluentd/pull/2553
* formatter_csv: Improve the format performance.
https://github.com/fluent/fluentd/pull/2529
* parser_csv: Add fast parser for typical cases
https://github.com/fluent/fluentd/pull/2535
* out_forward: Refactor code
https://github.com/fluent/fluentd/pull/2516
https://github.com/fluent/fluentd/pull/2532
### Bug fixes
* output: fix data lost on decompression
https://github.com/fluent/fluentd/pull/2547
* out_exec_filter: fix non-ascii encoding issue
https://github.com/fluent/fluentd/pull/2539
* in_tail: Don't call parser's configure twice
https://github.com/fluent/fluentd/pull/2569
* Fix unused message handling for <section> parameters
https://github.com/fluent/fluentd/pull/2578
* Fix comment/message typos
https://github.com/fluent/fluentd/pull/2549
https://github.com/fluent/fluentd/pull/2554
https://github.com/fluent/fluentd/pull/2556
https://github.com/fluent/fluentd/pull/2566
https://github.com/fluent/fluentd/pull/2573
https://github.com/fluent/fluentd/pull/2576
https://github.com/fluent/fluentd/pull/2583
# v1.6
## Release v1.6.3 - 2019/07/29
### Enhancement
* in_syslog: Add `emit_unmatched_lines` parameter
https://github.com/fluent/fluentd/pull/2499
* buf_file: Add `path_suffix` parameter
https://github.com/fluent/fluentd/pull/2524
* in_tail: Improve the performance of split lines
https://github.com/fluent/fluentd/pull/2527
### Bug fixes
* http_server: Fix re-define render_json method
https://github.com/fluent/fluentd/pull/2517
## Release v1.6.2 - 2019/07/11
### Bug fixes
* http_server helper: Add title argument to support multiple servers
https://github.com/fluent/fluentd/pull/2493
## Release v1.6.1 - 2019/07/10
### Enhancement
* socket/cert: Support all private keys OpenSSL supports, not only RSA.
https://github.com/fluent/fluentd/pull/2487
* output/buffer: Improve statistics method performance
https://github.com/fluent/fluentd/pull/2491
### Bug fixes
* plugin_config_formatter: update new doc URL
https://github.com/fluent/fluentd/pull/2481
* out_forward: Avoid zero division error when there are no available nodes
https://github.com/fluent/fluentd/pull/2482
## Release v1.6.0 - 2019/07/01
### New feature
* plugin: Add http_server helper and in_monitor_agent use it
https://github.com/fluent/fluentd/pull/2447
### Enhancement
* in_monitor_agent: Add more metrics for buffer/output
https://github.com/fluent/fluentd/pull/2450
* time/plugin: Add `EventTime#to_time` method for fast conversion
https://github.com/fluent/fluentd/pull/2469
* socket helper/out_forward: Add connect_timeout parameter
https://github.com/fluent/fluentd/pull/2467
* command: Add `--conf-encoding` option
https://github.com/fluent/fluentd/pull/2453
* parser_none: Small performance optimization
https://github.com/fluent/fluentd/pull/2455
### Bug fixes
* cert: Fix cert match pattern
https://github.com/fluent/fluentd/pull/2466
* output: Fix forget to increment rollback count
https://github.com/fluent/fluentd/pull/2462
# v1.5
## Release v1.5.2 - 2019/06/13
### Bug fixes
* out_forward: Fix duplicated handshake bug in keepalive
https://github.com/fluent/fluentd/pull/2456
## Release v1.5.1 - 2019/06/05
### Enhancement
* in_tail: Increase read block size to reduce IO call
https://github.com/fluent/fluentd/pull/2418
* in_monitor_agent: Refactor code
https://github.com/fluent/fluentd/pull/2422
### Bug fixes
* out_forward: Fix socket handling of keepalive
https://github.com/fluent/fluentd/pull/2434
* parser: Fix the use of name based timezone
https://github.com/fluent/fluentd/pull/2421
* in_monitor_agent: Fix debug parameter handling
https://github.com/fluent/fluentd/pull/2423
* command: Fix error handling of log rotation age option
https://github.com/fluent/fluentd/pull/2427
* command: Fix ERB warning for ruby 2.6 or later
https://github.com/fluent/fluentd/pull/2430
## Release v1.5.0 - 2019/05/18
### New feature
* out_forward: Support keepalive feature
https://github.com/fluent/fluentd/pull/2393
* in_http: Support TLS via server helper
https://github.com/fluent/fluentd/pull/2395
* in_syslog: Support TLS via server helper
https://github.com/fluent/fluentd/pull/2399
### Enhancement
* in_syslog: Add delimiter parameter
https://github.com/fluent/fluentd/pull/2378
* in_forward: Add tag/add_tag_prefix parameters
https://github.com/fluent/fluentd/pull/2396
* parser_json: Add stream_buffer_size parameter for yajl
https://github.com/fluent/fluentd/pull/2381
* command: Add deprecated message to show-plugin-config option
https://github.com/fluent/fluentd/pull/2401
* storage_local: Ignore empty file. Call sync after write for XFS.
https://github.com/fluent/fluentd/pull/2409
### Bug fixes
* out_forward: Don't use SO_LINGER on SSL/TLS WinSock
https://github.com/fluent/fluentd/pull/2398
* server helper: Fix recursive lock issue in TLSServer
https://github.com/fluent/fluentd/pull/2341
* Fix typo
https://github.com/fluent/fluentd/pull/2369
# v1.4
## Release v1.4.2 - 2019/04/02
### Enhancements
* in_http: subdomain support in CORS domain
https://github.com/fluent/fluentd/pull/2337
* in_monitor_agent: Expose current timekey list as a buffer metrics
https://github.com/fluent/fluentd/pull/2343
* in_tcp/in_udp: Add source_address_key parameter
https://github.com/fluent/fluentd/pull/2347
* in_forward: Add send_keepalive_packet parameter to check the remote connection is available or not
https://github.com/fluent/fluentd/pull/2352
### Bug fixes
* out_exec_filter: Fix typo of child_respawn description
https://github.com/fluent/fluentd/pull/2341
* in_tail: Create parent directories for symlink
https://github.com/fluent/fluentd/pull/2353
* in_tail: Fix encoding duplication check for non-specified case
https://github.com/fluent/fluentd/pull/2361
* log: Fix time format handling of plugin logger when log format is JSON
https://github.com/fluent/fluentd/pull/2356
## Release v1.4.1 - 2019/03/18
### Enhancements
* system: Add worker_id to process_name when workers is larger than 1
https://github.com/fluent/fluentd/pull/2321
* parser_regexp: Check named captures. When no named captures, configuration error is raised
https://github.com/fluent/fluentd/pull/2331
### Bug fixes
* out_forward: Make tls_client_private_key_passphrase secret
https://github.com/fluent/fluentd/pull/2324
* in_syslog: Check message length when read from buffer in octet counting
https://github.com/fluent/fluentd/pull/2323
## Release v1.4.0 - 2019/02/24
### New features
* multiprocess: Support <worker N-M> syntax
https://github.com/fluent/fluentd/pull/2292
* output: Work <secondary> and retry_forever together
https://github.com/fluent/fluentd/pull/2276
* out_file: Support placeholders in symlink_path
https://github.com/fluent/fluentd/pull/2254
### Enhancements
* output: Add MessagePack unpacker error to unrecoverable error list
https://github.com/fluent/fluentd/pull/2301
* output: Reduce flush delay when large timekey and small timekey_wait are specified
https://github.com/fluent/fluentd/pull/2291
* config: Support embedded ruby code in section argument.
https://github.com/fluent/fluentd/pull/2295
* in_tail: Improve encoding parameter handling
https://github.com/fluent/fluentd/pull/2305
* in_tcp/in_udp: Add <parse> section check
https://github.com/fluent/fluentd/pull/2267
### Bug fixes
* server: Ignore IOError and related errors in UDP
https://github.com/fluent/fluentd/pull/2310
* server: Ignore EPIPE in TLS accept to avoid fluentd restart
https://github.com/fluent/fluentd/pull/2253
# v1.3
## Release v1.3.3 - 2019/01/06
### Enhancements
* parser_syslog: Use String#squeeze for performance improvement
https://github.com/fluent/fluentd/pull/2239
* parser_syslog: Support RFC5424 timestamp without subseconds
https://github.com/fluent/fluentd/pull/2240
### Bug fixes
* server: Ignore ECONNRESET in TLS accept to avoid fluentd restart
https://github.com/fluent/fluentd/pull/2243
* log: Fix plugin logger ignores fluentd log event setting
https://github.com/fluent/fluentd/pull/2252
## Release v1.3.2 - 2018/12/10
### Enhancements
* out_forward: Support mutual TLS
https://github.com/fluent/fluentd/pull/2187
* out_file: Create `pos_file` directory if it doesn't exist
https://github.com/fluent/fluentd/pull/2223
### Bug fixes
* output: Fix logs during retry
https://github.com/fluent/fluentd/pull/2203
## Release v1.3.1 - 2018/11/27
### Enhancements
* out_forward: Separate parameter names for certificate
https://github.com/fluent/fluentd/pull/2181
https://github.com/fluent/fluentd/pull/2190
* out_forward: Add `verify_connection_at_startup` parameter to check connection setting at startup phase
https://github.com/fluent/fluentd/pull/2184
* config: Check right slash position in regexp type
https://github.com/fluent/fluentd/pull/2176
* parser_nginx: Support multiple IPs in `http_x_forwarded_for` field
https://github.com/fluent/fluentd/pull/2171
### Bug fixes
* fluent-cat: Fix retry limit handling
https://github.com/fluent/fluentd/pull/2193
* record_accessor helper: Delete top level field with bracket style
https://github.com/fluent/fluentd/pull/2192
* filter_record_transformer: Keep `class` method to avoid undefined method error
https://github.com/fluent/fluentd/pull/2186
## Release v1.3.0 - 2018/11/10
### New features
* output: Change thread execution control
https://github.com/fluent/fluentd/pull/2170
* in_syslog: Support octet counting frame
https://github.com/fluent/fluentd/pull/2147
* Use `flush_thread_count` value for `queued_chunks_limit_size` when `queued_chunks_limit_size` is not specified
https://github.com/fluent/fluentd/pull/2173
### Enhancements
* output: Show backtrace for unrecoverable errors
https://github.com/fluent/fluentd/pull/2149
* in_http: Implement support for CORS preflight requests
https://github.com/fluent/fluentd/pull/2144
### Bug fixes
* server: Fix deadlock between on_writable and close in sockets
https://github.com/fluent/fluentd/pull/2165
* output: show correct error when wrong plugin is specified for secondary
https://github.com/fluent/fluentd/pull/2169
# v1.2
## Release v1.2.6 - 2018/10/03
### Enhancements
* output: Add `disable_chunk_backup` for ignore broken chunks.
https://github.com/fluent/fluentd/pull/2117
* parser_syslog: Improve regexp for RFC5424
https://github.com/fluent/fluentd/pull/2141
* in_http: Allow specifying the wildcard '*' as the CORS domain
https://github.com/fluent/fluentd/pull/2139
### Bug fixes
* in_tail: Prevent thread switching in the interval between seek and read/write operations to pos_file
https://github.com/fluent/fluentd/pull/2118
* parser: Handle LoadError properly for oj
https://github.com/fluent/fluentd/pull/2140
## Release v1.2.5 - 2018/08/22
### Bug fixes
* in_tail: Fix resource leak by file rotation
https://github.com/fluent/fluentd/pull/2105
* fix typos
## Release v1.2.4 - 2018/08/01
### Bug fixes
* output: Consider timezone when calculate timekey
https://github.com/fluent/fluentd/pull/2054
* output: Fix bug in suppress_emit_error_log_interval
https://github.com/fluent/fluentd/pull/2069
* server-helper: Fix connection leak by close timing issue.
https://github.com/fluent/fluentd/pull/2087
## Release v1.2.3 - 2018/07/10
### Enhancements
* in_http: Consider `<parse>` parameters in batch mode
https://github.com/fluent/fluentd/pull/2055
* in_http: Support gzip payload
https://github.com/fluent/fluentd/pull/2060
* output: Improve compress performance
https://github.com/fluent/fluentd/pull/2031
* in_monitor_agent: Add missing descriptions for configurable options
https://github.com/fluent/fluentd/pull/2037
* parser_syslog: update regex of pid field for conformance to RFC5424 spec
https://github.com/fluent/fluentd/pull/2051
### Bug fixes
* in_tail: Fix to rescue Errno::ENOENT for File.mtime()
https://github.com/fluent/fluentd/pull/2063
* fluent-plugin-generate: Fix Parser plugin template
https://github.com/fluent/fluentd/pull/2026
* fluent-plugin-config-format: Fix NoMethodError for some plugins
https://github.com/fluent/fluentd/pull/2023
* config: Don't warn message for reserved parameters in DSL
https://github.com/fluent/fluentd/pull/2034
## Release v1.2.2 - 2018/06/12
### Enhancements
* filter_parser: Add remove_key_name_field parameter
https://github.com/fluent/fluentd/pull/2012
* fluent-plugin-config-format: Dump config_argument
https://github.com/fluent/fluentd/pull/2003
### Bug fixes
* in_tail: Change pos file entry handling to avoid read conflict for other plugins
https://github.com/fluent/fluentd/pull/1963
* buffer: Wait for all chunks being purged before deleting @queued_num items
https://github.com/fluent/fluentd/pull/2016
## Release v1.2.1 - 2018/05/23
### Enhancements
* Counter: Add wait API to client
https://github.com/fluent/fluentd/pull/1997
### Bug fixes
* in_tcp/in_udp: Fix source_hostname_key to set hostname correctly
https://github.com/fluent/fluentd/pull/1976
* in_monitor_agent: Fix buffer_total_queued_size calculation
https://github.com/fluent/fluentd/pull/1990
* out_file: Temporal fix for broken gzipped files with gzip and append
https://github.com/fluent/fluentd/pull/1995
* test: Fix unstable backup test
https://github.com/fluent/fluentd/pull/1979
* gemspec: Remove deprecated has_rdoc
## Release v1.2.0 - 2018/04/30
### New Features
* New Counter API
https://github.com/fluent/fluentd/pull/1857
* output: Backup for broken chunks
https://github.com/fluent/fluentd/pull/1952
* filter_grep: Support for `<and>` and `<or>` sections
https://github.com/fluent/fluentd/pull/1897
* config: Support `regexp` type in configuration parameter
https://github.com/fluent/fluentd/pull/1927
### Enhancements
* parser_nginx: Support optional `http-x-forwarded-for` field
https://github.com/fluent/fluentd/pull/1932
* filter_grep: Improve the performance
https://github.com/fluent/fluentd/pull/1940
### Bug fixes
* log: Fix unexpected implementation bug when log rotation setting is applied
https://github.com/fluent/fluentd/pull/1957
* server helper: Close invalid socket when ssl error happens on reading
https://github.com/fluent/fluentd/pull/1942
* output: Buffer chunk's unique id should be formatted as hex in the log
# v1.1
## Release v1.1.3 - 2018/04/03
### Enhancements
* output: Support negative index for tag placeholders
https://github.com/fluent/fluentd/pull/1908
* buffer: Add queued_chunks_limit_size to control the number of queued chunks
https://github.com/fluent/fluentd/pull/1916
* time: Make Fluent::EventTime human readable for inspect
https://github.com/fluent/fluentd/pull/1915
### Bug fixes
* output: Delete empty queued_num field after purging chunks
https://github.com/fluent/fluentd/pull/1919
* fluent-debug: Fix usage message of fluent-debug command
https://github.com/fluent/fluentd/pull/1920
* out_forward: The node should be disabled when TLS socket for ack returns an error
https://github.com/fluent/fluentd/pull/1925
## Release v1.1.2 - 2018/03/18
### Enhancements
* filter_grep: Support pattern starts with character classes with //
https://github.com/fluent/fluentd/pull/1887
### Bug fixes
* in_tail: Handle records in the correct order on file rotation
https://github.com/fluent/fluentd/pull/1880
* out_forward: Fix race condition with `<security>` on multi thread environment
https://github.com/fluent/fluentd/pull/1893
* output: Prevent flushing threads consume too much CPU when retry happens
https://github.com/fluent/fluentd/pull/1901
* config: Fix boolean param handling for comment without value
https://github.com/fluent/fluentd/pull/1883
* test: Fix random test failures in test/plugin/test_out_forward.rb
https://github.com/fluent/fluentd/pull/1881
https://github.com/fluent/fluentd/pull/1890
* command: Fix typo in binlog_reader
https://github.com/fluent/fluentd/pull/1898
## Release v1.1.1 - 2018/03/05
### Enhancements
* in_debug_agent: Support multi worker environment
https://github.com/fluent/fluentd/pull/1869
* in_forward: Improve SSL setup to support mutual TLS
https://github.com/fluent/fluentd/pull/1861
* buf_file: Skip and delete broken file chunks to avoid unsuccessful retry in resume
https://github.com/fluent/fluentd/pull/1874
* command: Show fluentd version for debug purpose
https://github.com/fluent/fluentd/pull/1839
### Bug fixes
* in_forward: Do not close connection until write is complete on failed auth PONG
https://github.com/fluent/fluentd/pull/1835
* in_tail: Fix IO event race condition during shutdown
https://github.com/fluent/fluentd/pull/1876
* in_http: Emit event time instead of raw time value in batch
https://github.com/fluent/fluentd/pull/1850
* parser_json: Add EncodingError to rescue list for oj 3.x.
https://github.com/fluent/fluentd/pull/1875
* config: Fix config_param for string type with frozen string
https://github.com/fluent/fluentd/pull/1838
* timer: Fix a bug to leak non-repeating timer watchers
https://github.com/fluent/fluentd/pull/1864
## Release v1.1.0 - 2018/01/17
### New features / Enhancements
* config: Add hostname and worker_id short-cut
https://github.com/fluent/fluentd/pull/1814
* parser_ltsv: Add delimiter_pattern parameter
https://github.com/fluent/fluentd/pull/1802
* record_accessor helper: Support nested field deletion
https://github.com/fluent/fluentd/pull/1800
* record_accessor helper: Expose internal instance `@keys` variable
https://github.com/fluent/fluentd/pull/1808
* log: Improve Log#on_xxx API performance
https://github.com/fluent/fluentd/pull/1809
* time: Improve time formatting performance
https://github.com/fluent/fluentd/pull/1796
* command: Port certificates generating command from secure-forward
https://github.com/fluent/fluentd/pull/1818
### Bug fixes
* server helper: Fix TCP + TLS degradation
https://github.com/fluent/fluentd/pull/1805
* time: Fix the method for TimeFormatter#call
https://github.com/fluent/fluentd/pull/1813
# v1.0
## Release v1.0.2 - 2017/12/17
### New features / Enhancements
* Use dig_rb instead of ruby_dig to support dig method in more objects
https://github.com/fluent/fluentd/pull/1794
## Release v1.0.1 - 2017/12/14
### New features / Enhancements
* in_udp: Add receive_buffer_size parameter
https://github.com/fluent/fluentd/pull/1788
* in_tail: Add enable_stat_watcher option to disable inotify events
https://github.com/fluent/fluentd/pull/1775
* Relax strptime gem version
### Bug fixes
* in_tail: Properly handle moved back and truncated case
https://github.com/fluent/fluentd/pull/1793
* out_forward: Rebuild weight array to apply server setting properly
https://github.com/fluent/fluentd/pull/1784
* fluent-plugin-config-formatter: Use v1.0 for URL
https://github.com/fluent/fluentd/pull/1781
## Release v1.0.0 - 2017/12/6
See [CNCF announcement](https://www.cncf.io/blog/2017/12/06/fluentd-v1-0/) :)
### New features / Enhancements
* out_copy: Support ignore_error argument in `<store>`
https://github.com/fluent/fluentd/pull/1764
* server helper: Improve resource usage of TLS transport
https://github.com/fluent/fluentd/pull/1764
* Disable tracepoint feature to omit unnecessary insts
https://github.com/fluent/fluentd/pull/1764
### Bug fixes
* out_forward: Don't update retry state when failed to get ack response.
https://github.com/fluent/fluentd/pull/1686
* plugin: Combine before_shutdown and shutdown call in one sequence.
https://github.com/fluent/fluentd/pull/1763
* Add description to parsers
https://github.com/fluent/fluentd/pull/1776
https://github.com/fluent/fluentd/pull/1777
https://github.com/fluent/fluentd/pull/1778
https://github.com/fluent/fluentd/pull/1779
https://github.com/fluent/fluentd/pull/1780
* filter_parser: Add parameter description
https://github.com/fluent/fluentd/pull/1773
* plugin: Combine before_shutdown and shutdown call in one sequence.
https://github.com/fluent/fluentd/pull/1763
# v0.14
## Release v0.14.25 - 2017/11/29
### New features / Enhancements
* Disable tracepoint feature to omit unnecessary insts
https://github.com/fluent/fluentd/pull/1764
### Bug fixes
* out_forward: Don't update retry state when failed to get ack response.
https://github.com/fluent/fluentd/pull/1686
* plugin: Combine before_shutdown and shutdown call in one sequence.
https://github.com/fluent/fluentd/pull/1763
## Release v0.14.24 - 2017/11/24
### New features / Enhancements
* plugin-config-formatter: Add link to plugin helper result
https://github.com/fluent/fluentd/pull/1753
* server helper: Refactor code
https://github.com/fluent/fluentd/pull/1759
### Bug fixes
* supervisor: Don't call change_privilege twice
https://github.com/fluent/fluentd/pull/1757
## Release v0.14.23 - 2017/11/15
### New features / Enhancements
* in_udp: Add remove_newline parameter
https://github.com/fluent/fluentd/pull/1747
### Bug fixes
* buffer: Lock buffers in order of metadata
https://github.com/fluent/fluentd/pull/1722
* in_tcp: Fix log corruption under load.
https://github.com/fluent/fluentd/pull/1729
* out_forward: Fix elapsed time miscalculation in tcp heartbeat
https://github.com/fluent/fluentd/pull/1738
* supervisor: Fix worker pid handling during worker restart
https://github.com/fluent/fluentd/pull/1739
* in_tail: Skip setup failed watcher to avoid resource leak and log bloat
https://github.com/fluent/fluentd/pull/1742
* agent: Add error location to emit error logs
https://github.com/fluent/fluentd/pull/1746
* command: Consider hyphen and underscore in fluent-plugin-generate arguments
https://github.com/fluent/fluentd/pull/1751
## Release v0.14.22 - 2017/11/01
### New features / Enhancements
* formatter_tsv: Add add_newline parameter
https://github.com/fluent/fluentd/pull/1691
* out_file/out_secondary_file: Support ${chunk_id} placeholder. This includes extract_placeholders API change
https://github.com/fluent/fluentd/pull/1708
* record_accessor: Support double quotes in bracket notation
https://github.com/fluent/fluentd/pull/1716
* log: Show running ruby version in startup log
https://github.com/fluent/fluentd/pull/1717
* log: Log message when chunk is created
https://github.com/fluent/fluentd/pull/1718
* in_tail: Add pos_file duplication check
https://github.com/fluent/fluentd/pull/1720
### Bug fixes
* parser_apache2: Delay time parser initialization
https://github.com/fluent/fluentd/pull/1690
* cert_option: Improve generated certificates' conformance to X.509 specification
https://github.com/fluent/fluentd/pull/1714
* buffer: Always lock chunks first to avoid deadlock
https://github.com/fluent/fluentd/pull/1721
## Release v0.14.21 - 2017/09/07
### New features / Enhancements
* filter_parser: Support record_accessor in key_name
https://github.com/fluent/fluentd/pull/1654
* buffer: Support record_accessor in chunk keys
https://github.com/fluent/fluentd/pull/1662
### Bug fixes
* compat_parameters: Support all syslog parser parameters
https://github.com/fluent/fluentd/pull/1650
* filter_record_transformer: Don't create new keys if the original record doesn't have `keep_keys` keys
https://github.com/fluent/fluentd/pull/1663
* in_tail: Fix the error when 'tag *' is configured
https://github.com/fluent/fluentd/pull/1664
* supervisor: Clear previous worker pids when receive kill signals.
https://github.com/fluent/fluentd/pull/1683
## Release v0.14.20 - 2017/07/31
### New features / Enhancements
* plugin: Add record_accessor plugin helper
https://github.com/fluent/fluentd/pull/1637
* log: Add format and time_format parameters to `<system>` setting
https://github.com/fluent/fluentd/pull/1644
### Bug fixes
* buf_file: Improve file handling to mitigate broken meta file
https://github.com/fluent/fluentd/pull/1628
* in_syslog: Fix the description of resolve_hostname parameter
https://github.com/fluent/fluentd/pull/1633
* process: Fix signal handling. Send signal to all workers
https://github.com/fluent/fluentd/pull/1642
* output: Fix error message typo
https://github.com/fluent/fluentd/pull/1643
## Release v0.14.19 - 2017/07/12
### New features / Enhancements
* in_syslog: More characters are available in tag part of syslog format
https://github.com/fluent/fluentd/pull/1610
* in_syslog: Add resolve_hostname parameter
https://github.com/fluent/fluentd/pull/1616
* filter_grep: Support new configuration format by config_section
https://github.com/fluent/fluentd/pull/1611
### Bug fixes
* output: Fix race condition of retry state in flush thread
https://github.com/fluent/fluentd/pull/1623
* test: Fix typo in test_in_tail.rb
https://github.com/fluent/fluentd/pull/1622
## Release v0.14.18 - 2017/06/21
### New features / Enhancements
* parser: Add rfc5424 regex without priority
https://github.com/fluent/fluentd/pull/1600
### Bug fixes
* in_tail: Fix timing issue that the excluded_path doesn't apply.
https://github.com/fluent/fluentd/pull/1597
* config: Fix broken UTF-8 encoded configuration file handling
https://github.com/fluent/fluentd/pull/1592
* out_forward: Don't stop heartbeat when error happen
https://github.com/fluent/fluentd/pull/1602
* Fix command name typo in plugin template
https://github.com/fluent/fluentd/pull/1603
## Release v0.14.17 - 2017/05/29
### New features / Enhancements
* in_tail: Add ignore_repeated_permission_error
https://github.com/fluent/fluentd/pull/1574
* server: Accept private key for TLS server without passphrase
https://github.com/fluent/fluentd/pull/1575
* config: Validate workers option on standalone mode
https://github.com/fluent/fluentd/pull/1577
### Bug fixes
* config: Mask all secret parameters in worker section
https://github.com/fluent/fluentd/pull/1580
* out_forward: Fix ack handling
https://github.com/fluent/fluentd/pull/1581
* plugin-config-format: Fix markdown format generator
https://github.com/fluent/fluentd/pull/1585
## Release v0.14.16 - 2017/05/13
### New features / Enhancements
* config: Allow null byte in double-quoted string
https://github.com/fluent/fluentd/pull/1552
* parser: Support %iso8601 special case for time_format
https://github.com/fluent/fluentd/pull/1562
### Bug fixes
* out_forward: Call proper method for each connection type
https://github.com/fluent/fluentd/pull/1560
* in_monitor_agent: check variable buffer is a Buffer instance
https://github.com/fluent/fluentd/pull/1556
* log: Add missing '<<' method to delegators
https://github.com/fluent/fluentd/pull/1558
* command: uninitialized constant Fluent::Engine in fluent-binlog-reader
https://github.com/fluent/fluentd/pull/1568
## Release v0.14.15 - 2017/04/23
### New features / Enhancements
* Add `<worker N>` directive
https://github.com/fluent/fluentd/pull/1507
* in_tail: Do not warn that directories are unreadable in the in_tail plugin
https://github.com/fluent/fluentd/pull/1540
* output: Add formatted_to_msgpack_binary? to Output plugin API
https://github.com/fluent/fluentd/pull/1547
* windows: Allow the Windows Service name Fluentd runs as to be configurable
https://github.com/fluent/fluentd/pull/1548
### Bug fixes
* in_http: Fix X-Forwarded-For header handling. Accept multiple headers
https://github.com/fluent/fluentd/pull/1535
* Fix backward compatibility with Fluent::DetachProcess and Fluent::DetachMultiProcess
https://github.com/fluent/fluentd/pull/1522
* fix typo
https://github.com/fluent/fluentd/pull/1521
https://github.com/fluent/fluentd/pull/1523
https://github.com/fluent/fluentd/pull/1544
* test: Fix out_file test with timezone
https://github.com/fluent/fluentd/pull/1546
* windows: Quote the file path to the Ruby bin directory when starting fluentd as a windows service
https://github.com/fluent/fluentd/pull/1536
## Release v0.14.14 - 2017/03/23
### New features / Enhancements
* in_http: Support 'application/msgpack` header
https://github.com/fluent/fluentd/pull/1498
* in_udp: Add message_length_limit parameter for parameter name consistency with in_syslog
https://github.com/fluent/fluentd/pull/1515
* in_monitor_agent: Start one HTTP server per worker on sequential port numbers
https://github.com/fluent/fluentd/pull/1493
* in_tail: Skip the refresh of watching list on startup
https://github.com/fluent/fluentd/pull/1487
* filter_parser: filter_parser: Add emit_invalid_record_to_error parameter
https://github.com/fluent/fluentd/pull/1494
* parser_syslog: Support RFC5424 syslog format
https://github.com/fluent/fluentd/pull/1492
* parser: Allow escape sequence in Apache access log
https://github.com/fluent/fluentd/pull/1479
* config: Add actual value in the placeholder error message
https://github.com/fluent/fluentd/pull/1497
* log: Add Fluent::Log#<< to support some SDKs
https://github.com/fluent/fluentd/pull/1478
### Bug fixes
* Fix cleanup resource
https://github.com/fluent/fluentd/pull/1483
* config: Set encoding forcefully to avoid UndefinedConversionError
https://github.com/fluent/fluentd/pull/1477
* Fix Input and Output deadlock when buffer is full during startup
https://github.com/fluent/fluentd/pull/1502
* config: Fix log_level handling in `<system>`
https://github.com/fluent/fluentd/pull/1501
* Fix typo in root agent error log
https://github.com/fluent/fluentd/pull/1491
* storage: Fix a bug storage_create cannot accept hash as `conf` keyword argument
https://github.com/fluent/fluentd/pull/1482
## Release v0.14.13 - 2017/02/17
### New features / Enhancements
* in_tail: Add 'limit_recently_modified' to limit watch files.
https://github.com/fluent/fluentd/pull/1474
* configuration: Improve 'flush_interval' handling for better message and backward compatibility
https://github.com/fluent/fluentd/pull/1442
* command: Add 'fluent-plugin-generate' command
https://github.com/fluent/fluentd/pull/1427
* output: Skip record when 'Output#format' returns nil
https://github.com/fluent/fluentd/pull/1469
### Bug fixes
* output: Secondary calculation should consider 'retry_max_times'
https://github.com/fluent/fluentd/pull/1452
* Fix regression of deprecated 'process' module
https://github.com/fluent/fluentd/pull/1443
* Fix missing parser_regex require
https://github.com/fluent/fluentd/issues/1458
https://github.com/fluent/fluentd/pull/1453
* Keep 'Fluent::BufferQueueLimitError' for existing plugins
https://github.com/fluent/fluentd/pull/1456
* in_tail: Untracked files should be removed from watching list to avoid memory bloat
https://github.com/fluent/fluentd/pull/1467
* in_tail: directories should be skipped when the ** pattern is used
https://github.com/fluent/fluentd/pull/1464
* record_transformer: Revert "Use BasicObject for cleanroom" for `enable_ruby` regression.
https://github.com/fluent/fluentd/pull/1461
* buf_file: handle "Too many open files" error to keep buffer and metadata pair
https://github.com/fluent/fluentd/pull/1468
## Release v0.14.12 - 2017/01/30
### New features / Enhancements
* Support multi process workers by `workers` option
https://github.com/fluent/fluentd/pull/1386
* Support TLS transport security layer by server plugin helper, and forward input/output plugins
https://github.com/fluent/fluentd/pull/1423
* Update internal log event handling to route log events to `@FLUENT_LOG` label if configured, suppress log events in startup/shutdown in default
https://github.com/fluent/fluentd/pull/1405
* Rename buffer plugin chunk limit parameters for consistency
https://github.com/fluent/fluentd/pull/1412
* Encode string values from configuration files in UTF8
https://github.com/fluent/fluentd/pull/1411
* Reorder plugin load paths to load rubygem plugins earlier than built-in plugins to overwrite them
https://github.com/fluent/fluentd/pull/1410
* Clock API to control internal thread control
https://github.com/fluent/fluentd/pull/1425
* Validate `config_param` options to restrict unexpected specifications
https://github.com/fluent/fluentd/pull/1437
* formatter: Add `add_newline` option to get formatted lines without newlines
https://github.com/fluent/fluentd/pull/1420
* in_forward: Add `ignore_network_errors_at_startup` option for automated cluster deployment
https://github.com/fluent/fluentd/pull/1399
* in_forward: Close listening socket in #stop, not to accept new connection request in early stage of shutdown
https://github.com/fluent/fluentd/pull/1401
* out_forward: Ensure to pack values in `str` type of msgpack
https://github.com/fluent/fluentd/pull/1413
* in_tail: Add `emit_unmatched_lines` to capture lines which unmatch configured regular expressions
https://github.com/fluent/fluentd/pull/1421
* in_tail: Add `open_on_every_update` to read lines from files opened in exclusive mode on Windows platform
https://github.com/fluent/fluentd/pull/1409
* in_monitor_agent: Add `with_ivars` query parameter to get instance variables only for specified instance variables
https://github.com/fluent/fluentd/pull/1393
* storage_local: Generate file store path using `usage`, with `root_dir` configuration
https://github.com/fluent/fluentd/pull/1438
* Improve test stability
https://github.com/fluent/fluentd/pull/1426
### Bug fixes
* Fix bug to ignore command line options: `--rpc-endpoint`, `--suppress-config-dump`, etc
https://github.com/fluent/fluentd/pull/1398
* Fix bug to block infinitely in shutdown when buffer is full and `overflow_action` is `block`
https://github.com/fluent/fluentd/pull/1396
* buf_file: Fix bug not to use `root_dir` even if configured correctly
https://github.com/fluent/fluentd/pull/1417
* filter_record_transformer: Fix to use BasicObject for clean room
https://github.com/fluent/fluentd/pull/1415
* filter_record_transformer: Fix bug that `remove_keys` doesn't work with `renew_time_key`
https://github.com/fluent/fluentd/pull/1433
* in_monitor_agent: Fix bug to crash with NoMethodError for some output plugins
https://github.com/fluent/fluentd/pull/1365
## Release v0.14.11 - 2016/12/26
### New features / Enhancements
* Add "root_dir" parameter in `<system>` directive to configure server root directory, used for buffer/storage paths
https://github.com/fluent/fluentd/pull/1374
* Fix not to restart Fluentd processes when unrecoverable errors occur
https://github.com/fluent/fluentd/pull/1359
* Show warnings in log when output flush operation takes longer time than threshold
https://github.com/fluent/fluentd/pull/1370
* formatter_csv: Raise configuration error when no field names are specified
https://github.com/fluent/fluentd/pull/1369
* in_syslog: Update implementation to use plugin helpers
https://github.com/fluent/fluentd/pull/1382
* in_forward: Add a configuration parameter "source_address_key"
https://github.com/fluent/fluentd/pull/1382
* in_monitor_agent: Add a parameter "include_retry" to get detail retry status
https://github.com/fluent/fluentd/pull/1387
* Add Ruby 2.4 into supported ruby versions
### Bug fixes
* Fix to set process name of supervisor process
https://github.com/fluent/fluentd/pull/1380
* in_forward: Fix a bug not to handle "require_ack_response" correctly
https://github.com/fluent/fluentd/pull/1389
## Release v0.14.10 - 2016/12/14
### New features / Enhancement
* Add socket/server plugin helper to write TCP/UDP clients/servers as Fluentd plugin
https://github.com/fluent/fluentd/pull/1312
https://github.com/fluent/fluentd/pull/1350
https://github.com/fluent/fluentd/pull/1356
https://github.com/fluent/fluentd/pull/1362
* Fix to raise errors when injected hostname is also specified as chunk key
https://github.com/fluent/fluentd/pull/1357
* in_tail: Optimize to read lines from file
https://github.com/fluent/fluentd/pull/1325
* in_monitor_agent: Add new parameter "include_config"(default: true)
https://github.com/fluent/fluentd/pull/1317
* in_syslog: Add "priority_key" and "facility_key" options
https://github.com/fluent/fluentd/pull/1351
* filter_record_transformer: Remove obsoleted syntax like "${message}" and not to dump records in logs
https://github.com/fluent/fluentd/pull/1328
* Add an option "--time-as-integer" to fluent-cat command to send events from v0.14 fluent-cat to v0.12 fluentd
https://github.com/fluent/fluentd/pull/1349
### Bug fixes
* Specify correct Oj options for newer versions (Oj 2.18.0 or later)
https://github.com/fluent/fluentd/pull/1331
* TimeSlice output plugins (in v0.12 style) raise errors when "utc" parameter is specified
https://github.com/fluent/fluentd/pull/1319
* Parser plugins cannot use options for regular expressions
https://github.com/fluent/fluentd/pull/1326
* Fix bugs not to raise errors to use logger in v0.12 plugins
https://github.com/fluent/fluentd/pull/1344
https://github.com/fluent/fluentd/pull/1332
* Fix bug about shutting down Fluentd in Windows
https://github.com/fluent/fluentd/pull/1367
* in_tail: Close files explicitly in tests
https://github.com/fluent/fluentd/pull/1327
* out_forward: Fix bug not to convert buffer configurations into v0.14 parameters
https://github.com/fluent/fluentd/pull/1337
* out_forward: Fix bug to raise error when "expire_dns_cache" is specified
https://github.com/fluent/fluentd/pull/1346
* out_file: Fix bug to raise error about buffer chunking when it's configured as secondary
https://github.com/fluent/fluentd/pull/1338
## Release v0.14.9 - 2016/11/15
### New features / Enhancement
* filter_parser: Port fluent-plugin-parser into built-in plugin
https://github.com/fluent/fluentd/pull/1191
* parser/formatter plugin helpers with default @type in plugin side
https://github.com/fluent/fluentd/pull/1267
* parser: Reconstruct Parser related classes
https://github.com/fluent/fluentd/pull/1286
* filter_record_transformer: Remove old behaviours
https://github.com/fluent/fluentd/pull/1311
* Migrate some built-in plugins into v0.14 API
https://github.com/fluent/fluentd/pull/1257 (out_file)
https://github.com/fluent/fluentd/pull/1297 (out_exec, out_exec_filter)
https://github.com/fluent/fluentd/pull/1306 (in_forward, out_forward)
https://github.com/fluent/fluentd/pull/1308 (in_http)
* test: Improve test drivers
https://github.com/fluent/fluentd/pull/1302
https://github.com/fluent/fluentd/pull/1305
### Bug fixes
* log: Avoid name conflict between Fluent::Logger
https://github.com/fluent/fluentd/pull/1274
* fluent-cat: Fix fluent-cat command to send sub-second precision time
https://github.com/fluent/fluentd/pull/1277
* config: Fix a bug not to overwrite default value with nil
https://github.com/fluent/fluentd/pull/1296
* output: Fix timezone for compat timesliced output plugins
https://github.com/fluent/fluentd/pull/1307
* out_forward: fix not to raise error when out_forward is initialized as secondary
https://github.com/fluent/fluentd/pull/1313
* output: Event router for secondary output
https://github.com/fluent/fluentd/pull/1283
* test: fix to return the block value as expected by many rubyists
https://github.com/fluent/fluentd/pull/1284
## Release v0.14.8 - 2016/10/13
### Bug fixes
* Add msgpack_each to buffer chunks in compat-layer output plugins
https://github.com/fluent/fluentd/pull/1273
## Release v0.14.7 - 2016/10/07
### New features / Enhancement
* Support data compression in buffer plugins
https://github.com/fluent/fluentd/pull/1172
* in_forward: support to transfer compressed data
https://github.com/fluent/fluentd/pull/1179
* out_stdout: fix to show nanosecond resolution time
https://github.com/fluent/fluentd/pull/1249
* Add option to rotate Fluentd daemon's log
https://github.com/fluent/fluentd/pull/1235
* Add extract plugin helper, with symmetric time parameter support in parser/formatter and inject/extract
https://github.com/fluent/fluentd/pull/1207
* Add a feature to parse/format numeric time (unix time [+ subsecond value])
https://github.com/fluent/fluentd/pull/1254
* Raise configuration errors for inconsistent `<label>` configurations
https://github.com/fluent/fluentd/pull/1233
* Fix to instantiate an unconfigured section even for multi: true
https://github.com/fluent/fluentd/pull/1210
* Add validators of placeholders for buffering key extraction
https://github.com/fluent/fluentd/pull/1255
* Fix to show log messages about filter optimization only when needed
https://github.com/fluent/fluentd/pull/1227
* Add some features to write plugins more easily
https://github.com/fluent/fluentd/pull/1256
* Add a tool to load dumped events from file
https://github.com/fluent/fluentd/pull/1165
### Bug fixes
* Fix Oj's default option to encode/decode JSON in the same way with Yajl
https://github.com/fluent/fluentd/pull/1147
https://github.com/fluent/fluentd/pull/1239
* Fix to raise correct configuration errors
https://github.com/fluent/fluentd/pull/1223
* Fix a bug to call `shutdown` method (and some others) twice
https://github.com/fluent/fluentd/pull/1242
* Fix to enable `chunk.each` only when it's encoded by msgpack
https://github.com/fluent/fluentd/pull/1263
* Fix a bug not to stop enqueue/flush threads correctly
https://github.com/fluent/fluentd/pull/1264
* out_forward: fix a bug that UDP heartbeat doesn't work
https://github.com/fluent/fluentd/pull/1238
* out_file: fix a crash bug when v0.14 enables symlink and resumes existing buffer file chunk generated by v0.12
https://github.com/fluent/fluentd/pull/1234
* in_monitor_agent: fix compatibility problem between outputs of v0.12 and v0.14
https://github.com/fluent/fluentd/pull/1232
* in_tail: fix a bug to crash to read large amount logs
https://github.com/fluent/fluentd/pull/1259
https://github.com/fluent/fluentd/pull/1261
## Release v0.14.6 - 2016/09/07
### Bug fixes
* in_tail: Add a missing parser_multiline require
https://github.com/fluent/fluentd/pull/1212
* forward: Mark secret parameters of forward plugins as secret
https://github.com/fluent/fluentd/pull/1209
## Release v0.14.5 - 2016/09/06
### New features / Enhancement
* Add authentication / authorization feature to forward protocol and in/out_forward plugins
https://github.com/fluent/fluentd/pull/1136
* Add a new plugin to dump buffers in retries as secondary plugin
https://github.com/fluent/fluentd/pull/1154
* Merge out_buffered_stdout and out_buffered_null into out_stdout and out_null
https://github.com/fluent/fluentd/pull/1200
### Bug fixes
* Raise configuration errors to clarify what's wrong when "@type" is missing
https://github.com/fluent/fluentd/pull/1202
* Fix the bug not to launch Fluentd when v0.12 MultiOutput plugin is configured
https://github.com/fluent/fluentd/pull/1206
## Release v0.14.4 - 2016/08/31
### New features / Enhancement
* Add a method to Filter API to update time of events
https://github.com/fluent/fluentd/pull/1140
* Improve performance of filter pipeline
https://github.com/fluent/fluentd/pull/1145
* Fix to suppress not to warn about different plugins for primary and secondary without any problems
https://github.com/fluent/fluentd/pull/1153
* Add deprecated/obsoleted options to config_param to show removed/warned parameters
https://github.com/fluent/fluentd/pull/1186
* in_forward: Add a feature source_hostname_key to inject source hostname into records
https://github.com/fluent/fluentd/pull/807
* in_tail: Add a feature from_encoding to specify both encoding from and to
https://github.com/fluent/fluentd/pull/1067
* filter_record_transformer: Fix to prevent overwriting reserved placeholder keys
https://github.com/fluent/fluentd/pull/1176
* Migrate some built-in plugins into v0.14 API
https://github.com/fluent/fluentd/pull/1149
https://github.com/fluent/fluentd/pull/1151
* Update dependencies
https://github.com/fluent/fluentd/pull/1193
### Bug fixes
* Fix to start/stop/restart Fluentd processes correctly on Windows environment
https://github.com/fluent/fluentd/pull/1171
https://github.com/fluent/fluentd/pull/1192
* Fix to handle Windows events correctly in winsvc.rb
https://github.com/fluent/fluentd/pull/1155
https://github.com/fluent/fluentd/pull/1170
* Fix not to continue to restart workers for configuration errors
https://github.com/fluent/fluentd/pull/1183
* Fix output threads to start enqueue/flush buffers until plugins' start method ends
https://github.com/fluent/fluentd/pull/1190
* Fix a bug not to set umask 0
https://github.com/fluent/fluentd/pull/1152
* Fix resource leak on one-shot timers
https://github.com/fluent/fluentd/pull/1178
* Fix to call plugin helper methods in configure
https://github.com/fluent/fluentd/pull/1184
* Fix a bug to count event size
https://github.com/fluent/fluentd/pull/1164/files
* Fix to require missed compat modules
https://github.com/fluent/fluentd/pull/1168
* Fix to start properly for plugins under MultiOutput
https://github.com/fluent/fluentd/pull/1167
* Fix test drivers to set class name into plugin instances
https://github.com/fluent/fluentd/pull/1069
* Fix tests not to use mocks for Time (improve test stabilization)
https://github.com/fluent/fluentd/pull/1194
## Release 0.14.3 - 2016/08/30
* Fix the dependency for ServerEngine 1.x
## Release 0.14.2 - 2016/08/09
### New features / Enhancement
* Fix to split large event stream into some/many chunks in buffers
https://github.com/fluent/fluentd/pull/1062
* Add parser and filter support in compat_parameters plugin helper
https://github.com/fluent/fluentd/pull/1079
* Add a RPC call to flush buffers and stop workers
https://github.com/fluent/fluentd/pull/1134
* Update forward protocol to pass the number of events in a payload
https://github.com/fluent/fluentd/pull/1137
* Improve performance of some built-in formatter plugins
https://github.com/fluent/fluentd/pull/1082
https://github.com/fluent/fluentd/pull/1086
* Migrate some built-in plugins and plugin util modules into v0.14 API
https://github.com/fluent/fluentd/pull/1058
https://github.com/fluent/fluentd/pull/1061
https://github.com/fluent/fluentd/pull/1076
https://github.com/fluent/fluentd/pull/1078
https://github.com/fluent/fluentd/pull/1081
https://github.com/fluent/fluentd/pull/1083
https://github.com/fluent/fluentd/pull/1091
* Register RegExpParser as a parser plugin explicitly
https://github.com/fluent/fluentd/pull/1094
* Add delimiter option to CSV parser
https://github.com/fluent/fluentd/pull/1108
* Add an option to receive longer udp syslog messages
https://github.com/fluent/fluentd/pull/1127
* Add a option to suspend internal status in dummy plugin
https://github.com/fluent/fluentd/pull/900
* Add a feature to capture filtered records in test driver for Filter plugins
https://github.com/fluent/fluentd/pull/1077
* Add some utility methods to plugin test drivers
https://github.com/fluent/fluentd/pull/1114
### Bug fixes
* Fix bug to read non buffer-chunk files as buffer chunks when Fluentd resumed
https://github.com/fluent/fluentd/pull/1124
* Fix bug not to load Filter plugins which are specified in configurations
https://github.com/fluent/fluentd/pull/1118
* Fix bug to ignore `-p` option to specify directories of plugins
https://github.com/fluent/fluentd/pull/1133
* Fix bug to overwrite base class configuration section definitions by subclasses
https://github.com/fluent/fluentd/pull/1119
* Fix to stop Fluentd worker process by Ctrl-C when --no-supervisor specified
https://github.com/fluent/fluentd/pull/1089
* Fix regression about RPC call to reload configuration
https://github.com/fluent/fluentd/pull/1093
* Specify to ensure Oj JSON parser to use strict mode
https://github.com/fluent/fluentd/pull/1147
* Fix unexisting path handling in Windows environment
https://github.com/fluent/fluentd/pull/1104
## Release 0.14.1 - 2016/06/30
### New features / Enhancement
* Add plugin helpers for parsers and formatters
https://github.com/fluent/fluentd/pull/1023
* Extract some mixins into compat modules
https://github.com/fluent/fluentd/pull/1044
https://github.com/fluent/fluentd/pull/1052
* Add utility methods for tests and test drivers
https://github.com/fluent/fluentd/pull/1047
* Migrate some built-in plugins to v0.14 APIs
https://github.com/fluent/fluentd/pull/1049
https://github.com/fluent/fluentd/pull/1057
https://github.com/fluent/fluentd/pull/1060
https://github.com/fluent/fluentd/pull/1064
* Add support of X-Forwarded-For header in in_http plugin
https://github.com/fluent/fluentd/pull/1051
* Warn not to create too many staged chunks at configure
https://github.com/fluent/fluentd/pull/1054
* Add a plugin helper to inject tag/time/hostname
https://github.com/fluent/fluentd/pull/1063
### Bug fixes
* Fix in_monitor_agent for v0.14 plugins
https://github.com/fluent/fluentd/pull/1003
* Fix to call #format_stream of plugins themselves when RecordFilter mixin included
https://github.com/fluent/fluentd/pull/1005
* Fix shutdown sequence to wait force flush
https://github.com/fluent/fluentd/pull/1009
* Fix a deadlock bug in shutdown
https://github.com/fluent/fluentd/pull/1010
* Fix to require DetachProcessMixin in default for compat plugins
https://github.com/fluent/fluentd/pull/1014
* Fix to overwrite configure_proxy name only for root sections for debugging
https://github.com/fluent/fluentd/pull/1015
* Rename file for in_unix plugin
https://github.com/fluent/fluentd/pull/1017
* Fix a bug not to create pid file when daemonized
https://github.com/fluent/fluentd/pull/1021
* Fix wrong DEFAULT_PLUGIN_PATH
https://github.com/fluent/fluentd/pull/1028
* Fix a bug not to use primary plugin type for secondary in default
https://github.com/fluent/fluentd/pull/1032
* Add --run-worker option to distinguish to run as worker without supervisor
https://github.com/fluent/fluentd/pull/1033
* Fix regression of fluent-debug command
https://github.com/fluent/fluentd/pull/1046
* Update windows-pr dependency to 1.2.5
https://github.com/fluent/fluentd/pull/1065
* Fix supervisor to pass RUBYOPT to worker processes
https://github.com/fluent/fluentd/pull/1066
## Release 0.14.0 - 2016/05/25
### New features / Enhancement
This list includes changes of 0.14.0.pre.1 and release candidates.
* Update supported Ruby version to 2.1 or later
https://github.com/fluent/fluentd/pull/692
* Sub-second event time support
https://github.com/fluent/fluentd/pull/653
* Windows support and supervisor improvement
https://github.com/fluent/fluentd/pull/674
https://github.com/fluent/fluentd/pull/831
https://github.com/fluent/fluentd/pull/880
* Add New plugin API
https://github.com/fluent/fluentd/pull/800
https://github.com/fluent/fluentd/pull/843
https://github.com/fluent/fluentd/pull/866
https://github.com/fluent/fluentd/pull/905
https://github.com/fluent/fluentd/pull/906
https://github.com/fluent/fluentd/pull/917
https://github.com/fluent/fluentd/pull/928
https://github.com/fluent/fluentd/pull/943
https://github.com/fluent/fluentd/pull/964
https://github.com/fluent/fluentd/pull/965
https://github.com/fluent/fluentd/pull/972
https://github.com/fluent/fluentd/pull/983
* Add standard chunking format
https://github.com/fluent/fluentd/pull/914
* Add Compatibility layer for v0.12 plugins
https://github.com/fluent/fluentd/pull/912
https://github.com/fluent/fluentd/pull/969
https://github.com/fluent/fluentd/pull/974
https://github.com/fluent/fluentd/pull/992
https://github.com/fluent/fluentd/pull/999
* Add Plugin Storage API
https://github.com/fluent/fluentd/pull/864
https://github.com/fluent/fluentd/pull/910
* Enforce to use router.emit instead of Engine.emit
https://github.com/fluent/fluentd/pull/883
* log: Show plugin name and id in logs
https://github.com/fluent/fluentd/pull/860
* log: Dump configurations with v1 syntax in logs
https://github.com/fluent/fluentd/pull/867
* log: Dump errors with class in logs
https://github.com/fluent/fluentd/pull/899
* config: Add simplified syntax for configuration values of hash and array
https://github.com/fluent/fluentd/pull/875
* config: Add 'init' option to config_section to initialize section objects
https://github.com/fluent/fluentd/pull/877
* config: Support multiline string in quoted strings
https://github.com/fluent/fluentd/pull/929
* config: Add optional arguments on Element#elements to select child elements
https://github.com/fluent/fluentd/pull/948
* config: Show deprecated warnings for reserved parameters
https://github.com/fluent/fluentd/pull/971
* config: Make the detach process forward interval configurable
https://github.com/fluent/fluentd/pull/982
* in_tail: Add 'path_key' option to inject tailing path
https://github.com/fluent/fluentd/pull/951
* Remove in_status plugin
https://github.com/fluent/fluentd/pull/690
### Bug fixes
* config: Enum list must be of symbols
https://github.com/fluent/fluentd/pull/821
* config: Fix to dup values in default
https://github.com/fluent/fluentd/pull/827
* config: Fix problems about overwriting subsections
https://github.com/fluent/fluentd/pull/844
https://github.com/fluent/fluentd/pull/981
* log: Serialize Fluent::EventTime as Integer in JSON
https://github.com/fluent/fluentd/pull/904
* out_forward: Add missing error class and tests for it
https://github.com/fluent/fluentd/pull/922
### Internal fix / Refactoring
* Fix dependencies between files
https://github.com/fluent/fluentd/pull/799
https://github.com/fluent/fluentd/pull/808
https://github.com/fluent/fluentd/pull/823
https://github.com/fluent/fluentd/pull/824
https://github.com/fluent/fluentd/pull/825
https://github.com/fluent/fluentd/pull/826
https://github.com/fluent/fluentd/pull/828
https://github.com/fluent/fluentd/pull/859
https://github.com/fluent/fluentd/pull/892
* Separate PluginId from config
https://github.com/fluent/fluentd/pull/832
* Separate MessagePack factory from Engine
https://github.com/fluent/fluentd/pull/871
* Register plugins to registry
https://github.com/fluent/fluentd/pull/838
* Move TypeConverter mixin to mixin.rb
https://github.com/fluent/fluentd/pull/842
* Override default configurations by `<system>`
https://github.com/fluent/fluentd/pull/854
* Suppress Ruby level warnings
https://github.com/fluent/fluentd/pull/846
https://github.com/fluent/fluentd/pull/852
https://github.com/fluent/fluentd/pull/890
https://github.com/fluent/fluentd/pull/946
https://github.com/fluent/fluentd/pull/955
https://github.com/fluent/fluentd/pull/966
See https://github.com/fluent/fluentd/blob/v0.12/CHANGELOG.md for v0.12 changelog
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to Fluentd
We'd love your contribution. Here are the guidelines!
## Got a question or problem?
RESOURCES of [Official site](https://www.fluentd.org/) and [Fluentd documentation](https://docs.fluentd.org/) may help you.
If you have further questions about Fluentd and plugins, please direct these to [Community Forum](https://github.com/fluent/fluentd/discussions).
Don't use Github issue for asking questions. Here are examples:
- I installed xxx plugin but it doesn't work. Why?
- Fluentd starts but logs are not sent to xxx. Am I wrong?
- I want to do xxx. How to realize it with plugins?
We may close such questions to keep clear repository for developers and users.
Github issue is mainly for submitting a bug report or feature request. See below.
If you can't judge your case is a bug or not, use community forum or slack first.
## Found a bug?
If you find a bug of Fluentd or a mistake in the documentation, you can help us by
submitting an issue to Fluentd. Even better you can submit a Pull Request with a fix.
* **Fluentd**: Use [fluentd](https://github.com/fluent/fluentd) repository. Fill issue template.
* **Documentation**: Use [fluentd documentation](https://github.com/fluent/fluentd-docs-gitbook) repository.
If you find a bug of 3rd party plugins, please submit an issue to each plugin repository.
And use [fluent-package-builder](https://github.com/fluent/fluent-package-builder) repository for td-agent related issues.
Note: Before report the issue, check latest version first. Sometimes users report fixed bug with older version.
## Patch Guidelines
Here are some things that would increase a chance that your patch is accepted:
* Write tests.
* Run tests before send Pull Request by `bundle exec rake test`
* Write a [good commit message](https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html).
* Fluentd repositories needs [DCO](https://github.com/apps/dco) on PR. Please add `Signed-off-by` to the commit(See DCO link for more detail).
There are some patches which are hard to write tests, e.g. process handling, concurrency issue or etc.
In such case, please don't hesitate to submit a Pull Request.
We can discuss how to manage a patch on Pull Request :)
================================================
FILE: GOVERNANCE.md
================================================
# Fluentd Governance
## Principles
The Fluentd community adheres to the following principles:
- Open: Fluentd is open source. See repository guidelines and CLA, below.
- Welcoming and respectful: See Code of Conduct, below.
- Transparent and accessible: Work and collaboration are done in public.
- Merit: Ideas and contributions are accepted according to their technical merit and alignment with project objectives, scope, and design principles.
## Voting
The Fluentd project employs "organization voting" to ensure no single organization can dominate the project.
Individuals not associated with or employed by a company or organization are allowed one organization vote. Each company or organization (regardless of the number of maintainers associated with or employed by that company/organization) receives one organization vote.
In other words, if two maintainers are employed by Company X, two by Company Y, two by Company Z, and one maintainer is an un-affiliated individual, a total of four "organization votes" are possible; one for X, one for Y, one for Z, and one for the un-affiliated individual.
Any maintainer from an organization may cast the vote for that organization.
For formal votes, a specific statement of what is being voted on should be added to the relevant github issue or PR, and a link to that issue or PR added to the maintainers meeting agenda document. Maintainers should indicate their yes/no vote on that issue or PR, and after a suitable period of time, the votes will be tallied and the outcome noted.
## Changes in Maintainership
New maintainers are proposed by an existing maintainer and are elected by a 2/3 majority organization vote.
Maintainers can be removed by a 2/3 majority organization vote.
## Github Project Administration
Maintainers will be added to the __fluent__ GitHub organization and added to the GitHub cni-maintainers team, and made a GitHub maintainer of that team.
After 6 months a maintainer will be made an "owner" of the GitHub organization.
## Projects
The fluent organization is open to receive new sub-projects under it umbrella. To apply a project as part of the __fluent__ organization, it has to met the following criteria:
- Licensed under the terms of the Apache License v2.0
- Project has been active for at least one year since it inception
- More than 2 contributors
- Related to one or more scopes of Fluentd ecosystem:
- Data collection
- Log management
- Metering
- Be supported by 2/3 majority of organization
The submission process starts as a Pull Request on Fluentd repository with the required information mentioned above. Once a project is accepted, it's considered a __CNCF sub-project under the umbrella of Fluentd__
## Code of Conduct
Fluentd follows the CNCF Code of Conduct:
https://github.com/cncf/foundation/blob/master/code-of-conduct.md
================================================
FILE: Gemfile
================================================
source 'https://rubygems.org/'
gemspec
gem 'benchmark'
local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local")
if File.exist?(local_gemfile)
puts "Loading Gemfile.local ..." if $DEBUG # `ruby -d` or `bundle -v`
instance_eval File.read(local_gemfile)
end
================================================
FILE: GithubWorkflow.md
================================================
# Github workflow for contributing to fluentd
Table of Contents
* [Fork a repository](#fork-a-repository)
* [Clone fork repository to local](#clone-fork-repository-to-local)
* [Create a branch to add a new feature or fix issues](#create-a-branch-to-add-a-new-feature-or-fix-issues)
* [Commit and Push](#commit-and-push)
* [Create a Pull Request](#create-a-pull-request)
The [fluentd](https://github.com/fluent/fluentd.git) code is hosted on Github (https://github.com/fluent/fluentd). The repository is called `upstream`. Contributors will develop and commit their changes in a clone of upstream repository. Then contributors push their change to their forked repository (`origin`) and create a Pull Request (PR), the PR will be merged to `upstream` repository if it meets the all the necessary requirements.
## Fork a repository
Go to https://github.com/fluent/fluentd then hit the `Fork` button to fork your own copy of repository **fluentd** to your github account.
## Clone the forked repository to local
Clone the forked repo in [above step](#fork-a-repository) to your local working directory:
```sh
$ git clone https://github.com/$your_github_account/fluentd.git
```
Keep your fork in sync with the main repo, add an `upstream` remote:
```sh
$ cd fluentd
$ git remote add upstream https://github.com/fluentd/fluentd.git
$ git remote -v
origin https://github.com/$your_github_account/fluentd.git (fetch)
origin https://github.com/$your_github_account/fluentd.git (push)
upstream https://github.com/fluentd/fluentd.git (fetch)
upstream https://github.com/fluentd/fluentd.git (push)
```
Sync your local `master` branch:
```sh
$ git checkout master
$ git pull origin master
$ git fetch upstream
$ git rebase upstream/master
```
## Create a branch to add a new feature or fix issues
Before making any change, create a new branch:
```sh
$ git checkout master
$ git pull upstream master
$ git checkout -b new-feature
```
## Commit and Push
Make any change on the branch `new-feature` then build and test your codes.
Include in what will be committed:
```sh
$ git add <file>
```
Commit your changes with `sign-offs`
```sh
$ git commit -s
```
Enter your commit message to describe the changes. See the tips for a good commit message at [here](https://chris.beams.io/posts/git-commit/).
Likely you go back and edit/build/test some more then `git commit --amend`
Push your branch `new-feature` to your forked repository:
```sh
$ git push -u origin new-feature
```
## Create a Pull Request
* Go to your fork at https://github.com/$your_github_account/fluentd
* Create a Pull Request from the branch you recently pushed by hitting the button `Compare & pull request` next to branch name.
================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2011-2018 Fluentd Authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: MAINTAINERS.md
================================================
# Fluentd Maintainers
- [Naotoshi Seo](https://github.com/sonots), [ZOZO Technologies](https://tech.zozo.com/en/)
- [Okkez](https://github.com/okkez)
- [Hiroshi Hatake](https://github.com/cosmo0920), [Chronosphere](https://chronosphere.io/)
- [Masahiro Nakagawa](https://github.com/repeatedly)
- [Satoshi Tagomori](https://github.com/tagomoris)
- [Toru Takahashi](https://github.com/toru-takahashi), [Treasure Data](https://www.treasuredata.com/)
- [Eduardo Silva](https://github.com/edsiper), [Chronosphere](https://chronosphere.io/)
- [Fujimoto Seiji](https://github.com/fujimots)
- [Takuro Ashie](https://github.com/ashie), [ClearCode](https://www.clear-code.com/)
- [Kentaro Hayashi](https://github.com/kenhys), [ClearCode](https://www.clear-code.com/)
- [Daijiro Fukuda](https://github.com/daipom), [ClearCode](https://www.clear-code.com/)
## Sub Projects: Fluent Bit
Fluent Bit maintainers list can be found here:
- https://github.com/fluent/fluent-bit/blob/master/MAINTAINERS.md
================================================
FILE: README.md
================================================
Fluentd: Open-Source Log Collector
===================================
[](https://github.com/fluent/fluentd/actions/workflows/test.yml)
[](https://github.com/fluent/fluentd/actions/workflows/test-ruby-head.yml)
[](https://bestpractices.coreinfrastructure.org/projects/1189)
[](https://scorecard.dev/viewer/?uri=github.com/fluent/fluentd)
[Fluentd](https://www.fluentd.org/) collects events from various data sources and writes them to files, RDBMS, NoSQL, IaaS, SaaS, Hadoop and so on. Fluentd helps you unify your logging infrastructure (Learn more about the [Unified Logging Layer](https://www.fluentd.org/blog/unified-logging-layer)).
<p align="center">
<img src="https://www.fluentd.org/images/fluentd-architecture.png" width="500px"/>
</p>
## Quick Start
$ gem install fluentd
$ fluentd -s conf
$ fluentd -c conf/fluent.conf &
$ echo '{"json":"message"}' | fluent-cat debug.test
## Development
### Branch
- master: For v1 development.
- v0.12: For v0.12. This is deprecated version. we already stopped supporting (See https://www.fluentd.org/blog/drop-schedule-announcement-in-2019).
### Prerequisites
- Ruby 3.2 or later
- git
`git` should be in `PATH`. On Windows, you can use `Github for Windows` and `GitShell` for easy setup.
### Install dependent gems
Use bundler:
$ gem install bundler
$ bundle install --path vendor/bundle
### Run test
$ bundle exec rake test
You can run specified test via `TEST` environment variable:
$ bundle exec rake test TEST=test/test_specified_path.rb
$ bundle exec rake test TEST=test/test_*.rb
## More Information
- Website: https://www.fluentd.org/
- Documentation: https://docs.fluentd.org/
- Project repository: https://github.com/fluent
- Discussion: https://github.com/fluent/fluentd/discussions
- Slack / Community: https://slack.fluentd.org
- Newsletters: https://www.fluentd.org/newsletter
- Author: [Sadayuki Furuhashi](https://github.com/frsyuki)
- Copyright: 2011-2021 Fluentd Authors
- License: Apache License, Version 2.0
## Security
A third party security audit was performed by Cure53, you can see the full report [here](docs/SECURITY_AUDIT.pdf).
See [SECURITY](SECURITY.md) to contact us about vulnerability.
## Contributors:
Patches contributed by [great developers](https://github.com/fluent/fluentd/contributors).
================================================
FILE: Rakefile
================================================
#!/usr/bin/env rake
require "bundler/gem_tasks"
require 'fileutils'
require 'rake/testtask'
require 'rake/clean'
require_relative 'tasks/benchmark'
require_relative 'tasks/backport'
task test: [:base_test]
# 1. update ChangeLog and lib/fluent/version.rb
# 2. bundle && bundle exec rake build:all
# 3. release 3 packages built on pkg/ directory
namespace :build do
desc 'Build gems for all platforms'
task :all do
Bundler.with_original_env do
%w[ruby x86-mingw32 x64-mingw32 x64-mingw-ucrt].each do |name|
ENV['GEM_BUILD_FAKE_PLATFORM'] = name
Rake::Task["build"].execute
end
end
end
end
desc 'Run test_unit based test'
Rake::TestTask.new(:base_test) do |t|
# To run test with dumping all test case names (to find never ending test case)
# $ bundle exec rake test TESTOPTS=-v
#
# To run test for only one file (or file path pattern)
# $ bundle exec rake base_test TEST=test/test_specified_path.rb
# $ bundle exec rake base_test TEST=test/test_*.rb
t.libs << "test"
t.test_files = if ENV["WIN_RAPID"]
["test/test_event.rb", "test/test_supervisor.rb", "test/plugin_helper/test_event_loop.rb"]
else
tests = Dir["test/**/test_*.rb"].sort
if Process.uid.zero?
puts "test_file_util.rb for non-root user env. Disable this test on root environment"
tests.delete("test/plugin/test_file_util.rb")
end
tests
end
t.verbose = true
t.warning = true
t.ruby_opts = ["-Eascii-8bit:ascii-8bit"]
end
task :parallel_test do
FileUtils.rm_rf('./test/tmp')
sh("parallel_test ./test/*.rb ./test/plugin/*.rb")
FileUtils.rm_rf('./test/tmp')
end
desc 'Run test with simplecov'
task :coverage do |t|
ENV['SIMPLE_COV'] = '1'
Rake::Task["test"].invoke
end
desc 'Build Coverity tarball & upload it'
task :coverity do
# https://scan.coverity.com/projects/fluentd?tab=overview
# See "View Defects" after sign-in.
#
# Setup steps:
# 1. get coverity build tool and set PATH to bin/: https://scan.coverity.com/download
# 2. set environment variables:
# * $COVERITY_USER (your email address)
# * $COVERITY_TOKEN (token for Fluentd project: https://scan.coverity.com/projects/fluentd?tab=project_settings)
sh "cov-build --dir cov-int --no-command --fs-capture-search ./"
sh "tar czf cov-fluentd.tar.gz cov-int"
user = ENV['COVERITY_USER']
token = ENV['COVERITY_TOKEN']
sh "curl --form token=#{token} --form email=#{user} --form file=@cov-fluentd.tar.gz --form version=\"Master\" --form description=\"GIT Master\" https://scan.coverity.com/builds?project=Fluentd"
FileUtils.rm_rf(['./cov-int', 'cov-fluentd.tar.gz'])
end
task :check_env do
unless ENV['GEM_HOST_API_KEY']
abort "Missing required environment variable: GEM_HOST_API_KEY\nSee https://guides.rubygems.org/api-key-scopes/"
end
end
Rake::Task["release:rubygem_push"].enhance(["check_env"])
task default: [:test, :build]
================================================
FILE: SECURITY.md
================================================
# Security Policy
## Supported Versions
| Version | Supported |
|-----------|--------------------|
| 1.19.x | :white_check_mark: |
| 1.18.x | :x: |
| 1.17.x | :x: |
| 1.16.x | :white_check_mark: |
| <= 1.15.x | :x: |
## Reporting a Vulnerability
Please post your vulnerability report from the following page:
https://github.com/fluent/fluentd/security/advisories
> [!CAUTION]
> In above contact form, we accept about **ONLY** Fluentd's vulnerability, in contrast, **REJECT** your vulnerability report about Fluentd derivative products such as fluent-package, Fluentd container images and Fluentd kubernetes deamonset images and so on. There are appropriate contact forms for every these derivative products. See the following notice.
> [!NOTE]
> If you use fluent-package, please check [fluent-package-builder](https://github.com/fluent/fluent-package-builder/blob/master/SECURITY.md) and report it there.
> [!NOTE]
> If you use a Docker image of Fluentd, please check [Fluentd Docker Image](https://github.com/fluent/fluentd-docker-image/blob/master/SECURITY.md) and report it there.
================================================
FILE: bin/fluent-binlog-reader
================================================
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
here = File.dirname(__FILE__)
$LOAD_PATH << File.expand_path(File.join(here, '..', 'lib'))
require 'fluent/command/binlog_reader'
FluentBinlogReader.new.call
================================================
FILE: bin/fluent-ca-generate
================================================
#!/usr/bin/env ruby
$LOAD_PATH.unshift(File.join(__dir__, 'lib'))
require 'fluent/command/ca_generate'
Fluent::CaGenerate.new.call
================================================
FILE: bin/fluent-cap-ctl
================================================
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
here = File.dirname(__FILE__)
$LOAD_PATH << File.expand_path(File.join(here, '..', 'lib'))
require 'fluent/command/cap_ctl'
Fluent::CapCtl.new.call
================================================
FILE: bin/fluent-ctl
================================================
#!/usr/bin/env ruby
here = File.dirname(__FILE__)
$LOAD_PATH << File.expand_path(File.join(here, '..', 'lib'))
require 'fluent/command/ctl'
Fluent::Ctl.new.call
================================================
FILE: bin/fluent-debug
================================================
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
here = File.dirname(__FILE__)
$LOAD_PATH << File.expand_path(File.join(here, '..', 'lib'))
require 'fluent/command/debug'
================================================
FILE: bin/fluent-plugin-config-format
================================================
#!/usr/bin/env ruby
$LOAD_PATH.unshift(File.join(__dir__, 'lib'))
require 'fluent/command/plugin_config_formatter'
FluentPluginConfigFormatter.new.call
================================================
FILE: bin/fluent-plugin-generate
================================================
#!/usr/bin/env ruby
$LOAD_PATH << File.expand_path(File.join(__dir__, '..', 'lib'))
require 'fluent/command/plugin_generator'
FluentPluginGenerator.new.call
================================================
FILE: code-of-conduct.md
================================================
## Fluentd Community Code of Conduct
Fluentd follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md).
================================================
FILE: example/copy_roundrobin.conf
================================================
<source>
@type sample
@label @test
tag test.copy
auto_increment_key id
</source>
<source>
@type sample
@label @test
tag test.rr
auto_increment_key id
</source>
<label @test>
<match test.copy>
@type copy
<store>
@type stdout
output_type json
</store>
<store>
@type stdout
output_type ltsv
</store>
</match>
<match test.rr>
@type roundrobin
<store>
@type stdout
output_type json
</store>
<store>
@type stdout
output_type ltsv
</store>
</match>
</label>
================================================
FILE: example/counter.conf
================================================
<system>
<counter_server>
scope server1
bind 127.0.0.1
port 24321
backup_path tmp/back
</counter_server>
</system>
<source>
@type sample
tag "test.data"
auto_increment_key number
</source>
<match>
@type stdout
</match>
================================================
FILE: example/filter_stdout.conf
================================================
<source>
@type sample
tag sample
</source>
<filter **>
@type stdout
</filter>
<filter **>
@type stdout
output_type hash
</filter>
<filter **>
@type stdout
format ltsv
</filter>
<match **>
@type null
</match>
================================================
FILE: example/in_forward.conf
================================================
<system>
rpc_endpoint 0.0.0.0:24444
</system>
<source>
@type forward
</source>
<match test>
@type stdout
# <buffer>
# flush_interval 10s
# </buffer>
</match>
================================================
FILE: example/in_forward_client.conf
================================================
<system>
rpc_endpoint 0.0.0.0:24444
</system>
<source>
@type forward
port 24224
bind 0.0.0.0
<security>
self_hostname input.testing.local
shared_key secure_communication_is_awesome
user_auth yes
allow_anonymous_source no
<user>
username user1
password yes_this_is_user1
</user>
<user>
username user2
password yes_this_is_really_user2
</user>
<user>
username user3
password noooooo_this_may_not_be_user3
</user>
<client>
# host 127.0.0.1
network 127.0.0.0/24
shared_key using_different_key_makes_us_secure
users user1,user2
</client>
</security>
</source>
<match {test,test2,test3,test4}>
@type stdout
</match>
================================================
FILE: example/in_forward_shared_key.conf
================================================
<system>
rpc_endpoint 0.0.0.0:24444
</system>
<source>
@type forward
<security>
self_hostname input.testing.local
shared_key secure_communication_is_awesome
</security>
</source>
<match test>
@type stdout
</match>
================================================
FILE: example/in_forward_tls.conf
================================================
<source>
@type forward
port 24224
<transport tls>
insecure true
</transport>
</source>
<match test>
@type stdout
# <buffer>
# flush_interval 10s
# </buffer>
</match>
================================================
FILE: example/in_forward_users.conf
================================================
<system>
rpc_endpoint 0.0.0.0:24444
</system>
<source>
@type forward
<security>
self_hostname input.testing.local
shared_key secure_communication_is_awesome
user_auth yes
<user>
username user1
password yes_this_is_user1
</user>
<user>
username user2
password yes_this_is_really_user2
</user>
</security>
</source>
<match {test,test2,test3}>
@type stdout
</match>
================================================
FILE: example/in_forward_workers.conf
================================================
<system>
workers 3
root_dir "#{File.join(Dir.pwd, 'test', 'tmp', 'root')}"
</system>
<source>
@type forward
@id forward_in_1
</source>
<match test>
@type stdout
@id stdout_out_1
<inject>
worker_id_key worker_id
</inject>
<buffer>
@type file
flush_interval 1s
</buffer>
</match>
================================================
FILE: example/in_http.conf
================================================
<source>
@type http
bind 0.0.0.0
port 9880
body_size_limit 32MB
keepalive_timeout 10
# backlog 0
add_http_headers false
<parse>
@type json
</parse>
</source>
<match test>
@type stdout
</match>
================================================
FILE: example/in_out_forward.conf
================================================
<source>
@type forward
port 24224
</source>
<match test.**>
@type forward
buffer_type file
buffer_path /tmp/fluentd.forward.buffer
num_threads 10
flush_interval 1s
<server>
host 127.0.0.1
port 24225
</server>
</match>
================================================
FILE: example/in_sample_blocks.conf
================================================
<source>
@type sample
tag sample
rate 100
sample {"message":"yaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaay"}
</source>
<match sample>
@type null
never_flush true
<buffer>
@type memory
overflow_action block
chunk_limit_size 1k
total_limit_size 2k
</buffer>
</match>
================================================
FILE: example/in_sample_with_compression.conf
================================================
<source>
@type sample
@label @main
tag "test.data"
size 2
rate 10
sample {"message":"yaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaay"}
auto_increment_key number
</source>
<label @main>
<match test.data>
@type stdout
<buffer>
@type file
path "#{Dir.pwd}/compressed_buffers"
flush_at_shutdown false
chunk_limit_size 1m
flush_interval 10s
compress gzip
</buffer>
</match>
</label>
================================================
FILE: example/in_syslog.conf
================================================
<source>
@type syslog
bind 0.0.0.0
port 5140
tag test
protocol_type udp
include_source_host false
source_host_key source_host
# format ...
# with_priority true
</source>
<match test>
@type stdout
</match>
================================================
FILE: example/in_tail.conf
================================================
<source>
@type tail
format none
path /var/log/fluentd_test.log
pos_file /var/log/fluentd_test.pos
tag test
rotate_wait 5
read_from_head true
refresh_interval 60
</source>
<match test>
@type stdout
</match>
================================================
FILE: example/in_tcp.conf
================================================
<source>
@type tcp
format none
bind 0.0.0.0
port 5170
delimiter \n
source_host_key "host"
tag test
</source>
<match test>
@type stdout
</match>
================================================
FILE: example/in_udp.conf
================================================
<source>
@type udp
format none
bind 0.0.0.0
port 5160
body_size_limit 4KB
source_host_key "host"
tag test
</source>
<match test>
@type stdout
</match>
================================================
FILE: example/logevents.conf
================================================
<source>
@type sample
@label @samplelog
tag "data"
sample {"message":"yay"}
</source>
<label @samplelog>
<match **>
@type stdout
</match>
</label>
<label @FLUENT_LOG>
<match fluent.debug fluent.info fluent.warn fluent.error fluent.fatal>
@type stdout
<inject>
hostname_key "host"
</inject>
</match>
# <match fluent.{info,warn,error,fatal}>
# @type stdout
# <inject>
# hostname_key "host"
# </inject>
# </match>
</label>
================================================
FILE: example/multi_filters.conf
================================================
# This example is to measure optimized filter pipeline performance.
<source>
@type sample
tag test
size 1000
</source>
<filter test>
@type grep
exclude1 hello .
</filter>
<filter test>
@type grep
exclude1 hello .
</filter>
<filter test>
@type grep
exclude1 hello .
</filter>
<filter test>
@type grep
exclude1 hello .
</filter>
<filter test>
@type grep
exclude1 hello .
</filter>
<filter test>
@type grep
exclude1 hello .
</filter>
<filter test>
@type grep
exclude1 hello .
</filter>
<filter test>
@type grep
exclude1 hello .
</filter>
<filter test>
@type grep
exclude1 hello .
</filter>
<filter test>
@type grep
exclude1 hello .
</filter>
<match test>
@type buffered_null
</match>
================================================
FILE: example/out_copy.conf
================================================
<source>
@type forward
</source>
<match test>
@type copy
deep_copy false
<store>
@type stdout
</store>
<store>
@type file
path /var/log/fluentd/out_file_test
format json
buffer_type memory
# compress gzip
# symlink_path /path/to/symlink
append false
</store>
</match>
================================================
FILE: example/out_exec_filter.conf
================================================
<source>
@type sample
@label @exec
tag exec_input
rate 10
auto_increment_key num
sample {"data":"mydata"}
</source>
<label @exec>
<match exec_input>
@type exec_filter
@label @stdout
tag result
command ruby -e 'STDOUT.sync = true; proc = ->(){line = STDIN.readline.chomp; puts line + "\t" + Process.pid.to_s}; 1000.times{ proc.call }'
num_children 3
child_respawn -1
<inject>
time_key time
time_type float
</inject>
<format>
@type tsv
keys data, num, time
</format>
<parse>
@type tsv
keys data, num, time, pid
</parse>
<extract>
time_key time
time_type float
</extract>
</match>
</label>
<label @stdout>
<match result>
@type stdout
</match>
</label>
================================================
FILE: example/out_file.conf
================================================
<source>
@type forward
</source>
<match test>
@type file
path /var/log/fluentd/out_file_test
format json
buffer_type memory
# compress gzip
# symlink_path /path/to/symlink
append false
</match>
================================================
FILE: example/out_forward.conf
================================================
<source>
@type sample
tag test
</source>
<match test>
@type forward
<server>
# first server
host 127.0.0.1
port 24224
</server>
# <server>
# # second server
# host localhost
# port 24225
# </server>
# <server>
# # second server
# host localhost
# port 24226
# standby
# </server>
flush_interval 0
send_timeout 60
heartbeat_type udp
heartbeat_interval 1
recover_wait 10
hard_timeout 60
expire_dns_cache nil
phi_threshold 16
phi_failure_detector true
</match>
================================================
FILE: example/out_forward_buf_file.conf
================================================
<source>
@type sample
tag test
</source>
<source>
@type monitor_agent
emit_interval 5
</source>
<match test>
@type forward
buffer_path /tmp/fluentd.forward
buffer_type file
flush_interval 5
send_timeout 60
heartbeat_type tcp
heartbeat_interval 1
<server>
host 127.0.0.1
port 24224
</server>
</match>
================================================
FILE: example/out_forward_client.conf
================================================
<source>
@type sample
tag test
</source>
<source>
@type sample
tag test2
</source>
<source>
@type sample
tag test3
</source>
<source>
@type sample
tag test4
</source>
<source>
@type sample
tag test5
</source>
<match test>
@type forward
flush_interval 0
<security>
self_hostname output.testing.local
shared_key secure_communication_is_awesome
</security>
<server>
host 127.0.0.1
port 24224
username user1
password yes_this_is_user1
shared_key using_different_key_makes_us_secure
</server>
</match>
<match test2>
@type forward
flush_interval 0
<security>
self_hostname output-alt1.testing.local
shared_key using_different_key_makes_us_secure
</security>
<server>
host 127.0.0.1
port 24224
username user1
password yes_this_is_user1
</server>
<server>
host 127.0.0.1
port 24224
username user2
password yes_this_is_really_user2
</server>
</match>
<match test3>
@type forward
flush_interval 0
<security>
self_hostname output-fail1.testing.local
# default key: fail
shared_key secure_communication_is_awesome
</security>
<server>
host 127.0.0.1
port 24224
username user1
password yes_this_is_user1
# [warn]: Shared key mismatch address="127.0.0.1" hostname="output-fail1.testing.local"
</server>
</match>
<match test4>
@type forward
flush_interval 0
<security>
self_hostname output-fail2.testing.local
shared_key using_different_key_makes_us_secure
</security>
<server>
host 127.0.0.1
port 24224
username user3
# user3 (user denied): fail
password noooooo_this_may_not_be_user3
# [warn]: Authentication failed address="127.0.0.1" hostname="output-fail2.testing.local" username="user3"
</server>
</match>
<match test5>
@type forward
flush_interval 0
<security>
self_hostname output-fail3.testing.local
shared_key using_different_key_makes_us_secure
</security>
<server>
# another ip (host rejected): fail
# This pattern will work only with Ruby 2.3
host "#{Socket.getifaddrs.select{|i| i.addr.ipv4? }.reject{|i| i.addr.ip_address == '127.0.0.1' }.first.addr.ip_address}"
port 24224
username user1
password yes_this_is_user1
# [warn]: Anonymous client disallowed address="192.168.1.75" hostname="output-fail3.testing.local"
</server>
</match>
================================================
FILE: example/out_forward_heartbeat_none.conf
================================================
<source>
@type sample
tag test
</source>
<match test>
@type forward
heartbeat_type none
<server>
host 127.0.0.1
port 24224
</server>
<buffer>
flush_mode immediate
</buffer>
</match>
================================================
FILE: example/out_forward_sd.conf
================================================
<source>
@type sample
tag test
</source>
<match test>
@type forward
<service_discovery>
@type file
path "#{Dir.pwd}/example/sd.yaml"
</service_discovery>
<buffer>
flush_interval 1
</buffer>
</match>
================================================
FILE: example/out_forward_shared_key.conf
================================================
<source>
@type sample
tag test
</source>
<source>
@type sample
tag test2
</source>
<match test>
@type forward
flush_interval 0
<security>
self_hostname output.testing.local
shared_key secure_communication_is_awesome
</security>
<server>
host 127.0.0.1
port 24224
</server>
</match>
<match test2>
@type forward
flush_interval 0
<security>
self_hostname output-fail.testing.local
shared_key secure_communication_is_not_awesome
# input plugin shows warning for wrong shared_key
# 2016-08-08 16:27:00 +0900 [warn]: Shared key mismatch address="127.0.0.1" hostname="output-fail.testing.local"
</security>
<server>
host 127.0.0.1
port 24224
</server>
</match>
================================================
FILE: example/out_forward_tls.conf
================================================
<source>
@type sample
tag test
</source>
<match test>
@type forward
transport tls
tls_insecure_mode true
<server>
# first server
host 127.0.0.1
port 24224
</server>
<buffer>
flush_interval 0
</buffer>
</match>
================================================
FILE: example/out_forward_users.conf
================================================
<source>
@type sample
tag test
</source>
<source>
@type sample
tag test2
</source>
<source>
@type sample
tag test3
</source>
<match test>
@type forward
flush_interval 0
<security>
self_hostname output.testing.local
shared_key secure_communication_is_awesome
</security>
<server>
host 127.0.0.1
port 24224
username user1
password yes_this_is_user1
</server>
</match>
<match test2>
@type forward
flush_interval 0
<security>
self_hostname output-alt1.testing.local
shared_key secure_communication_is_awesome
</security>
<server>
host 127.0.0.1
port 24224
username user1
password yes_this_is_user1
</server>
<server>
host 127.0.0.1
port 24224
username user2
password yes_this_is_really_user2
</server>
</match>
<match test3>
@type forward
flush_interval 0
<security>
self_hostname output-fail.testing.local
shared_key secure_communication_is_awesome
</security>
<server>
host 127.0.0.1
port 24224
username user3
password no_there_are_not_such_user
# input plugin warns authentication erro:
# [warn]: Authentication failed address="127.0.0.1" hostname="output-fail.testing.local" username="user3"
</server>
</match>
================================================
FILE: example/out_null.conf
================================================
#
# bundle exec bin/fluentd -c example/out_buffered_null.conf
# (+ --emit-error-log-interval 10)
<source>
@type sample
tag sample
rate 500000000
sample [
{"message": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},
{"message": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"},
{"message": "ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"}
]
</source>
<match sample.**>
@type null
<buffer>
flush_interval 60s
chunk_limit_size 1k
total_limit_size 4k
</buffer>
</match>
<label error_log>
<match **>
@type stdout
# <buffer>
# flush_interval 1s
# </buffer>
</match>
</label>
<match fluent.**>
@type relabel
@label error_log
</match>
================================================
FILE: example/sd.yaml
================================================
- 'host': 127.0.0.1
'port': 24224
'weight': 1
'name': server1
- 'host': 127.0.0.1
'port': 24225
'weight': 1
'name': server2
================================================
FILE: example/secondary_file.conf
================================================
<system>
rpc_endpoint 0.0.0.0:24444
</system>
<source>
@type sample
tag test
</source>
<source>
@type forward
@label @raw
</source>
<label @raw>
<match>
@type stdout
</match>
</label>
<match test>
@type forward
<buffer time,tag,message>
@type memory
timekey 2s
timekey_wait 1s
flush_mode interval
flush_interval 1s
</buffer>
<server>
host 0.0.0.0
port 24224
</server>
<secondary>
@type secondary_file
directory log/secondary/
basename ${tag}_%Y%m%d%L_${message}
</secondary>
</match>
================================================
FILE: example/suppress_config_dump.conf
================================================
<system>
suppress_config_dump false
</system>
<match data.*>
@type stdout
</match>
================================================
FILE: example/v0_12_filter.conf
================================================
# An example config to use filter plugins.
# THIS FEATURE IS SUPPORTED FOR v0.12 AND ABOVE.
# in_forward to generate events to be tested.
# You can send an arbitrary event with an arbitrary tag.
# For example, the following command creates the event
# {"message":"hello world"} with tag = foo
#
# $ echo '{"message":"hello world"}' | fluent-cat foo
<source>
@type forward
port 24224
</source>
# For all events with the tag "foo", filter it out
# UNLESS the value of the "message" field matches /keep this/
#
# - {"message":"keep this please"} is kept.
# - {"message":"Do not keep"} is filtered out.
# - {"messag22":"keep this please"} is filtered out.
<filter foo>
@type grep
regexp1 message keep this
</filter>
# Matches the events that was kept by the above filter
<match foo>
@type stdout
</match>
# For all events with the tag "bar", add the machine's hostname with
# the key "hostname" BEFORE forwarding to another instance of Fluentd
# at 123.4.2.4:24224.
<filter bar>
@type record_transformer
<record>
hostname ${hostname}
</record>
</filter>
# By the time it is getting matched here, the event has
# the "hostname" field.
<match bar>
@type forward
<server>
host 123.4.2.4
port 24225
</server>
</match>
# Composing two filters. For all events with the tag foo.bar,
#
# 1. The first filter filters out all events that has the field "hello"
# 2. Then, for those events, we downcase the value of the "name" field.
#
# - {"name":"SADA", "hello":100} gets filtered out
# - {"name":"SADA"} becomes {"name":"sada"}
# - {"last_name":"FURUHASHI"} throws an error because it has no field called "name"
<filter foo.bar>
@type grep
exclude1 hello .
</filter>
<filter foo.bar>
@type record_transformer
enable_ruby true
<record>
name ${name.downcase}
</record>
</filter>
<match foo.bar>
@type stdout
</match>
================================================
FILE: example/v1_literal_example.conf
================================================
<section1>
key1 'text' # text
key2 '\'' # ' (1 char)
key3 '\\' # \ (1 char)
key4 '\t' # \t (2 char)
key5 '\[' # \[ (2 char)
key6 '\\[' # \[ (2 char)
key7 '#t' # #t (2 char)
key8 '\#{test}' # \#{test} (8 char)
key9 '#{test}' # #{test} (7 char)
key10 '\[(?<time>[^\]]*)\] (?<message>.*)' # \[(?<time>[^\]]*\] (?<message>.*)
</section1>
<section2>
key1 "text" # text
key2 "\"" # " (1 char)
key3 "\\" # \ (1 char)
key4 "\t" # TAB (1 char)
key5 "\[" # [ (1 char)
key6 "\\[" # \[ (2 char)
key7 "#t" # #t (2 char)
key8 "\#{test}" # #{test} (7 char)
key9 "#{test}" # replaced by eval('test')
key10 "\\[(?<time>[^\\]]*)\\] (?<message>.*)" # \[(?<time>[^\]]*\] (?<message>.*)
</section2>
<section3>
key1 text # text
key2 \ # \ (1 char)
key3 \\ # \\ (2 char)
key4 \t # \t (2 char)
key5 \[ # \[ (2 char)
key6 \\[ # \\[ (3 char)
key7 #t # #t (2 char)
key8 \#{test} # \#{test} (8 char)
key9 #{test} # #{test} (7 char)
key10 \[(?<time>[^\]]*)\] (?<message>.*) # \[(?<time>[^\]]*\] (?<message>.*)
</section3>
================================================
FILE: example/worker_section.conf
================================================
<system>
workers 4
root_dir /path/fluentd/root
</system>
<source> # top-level sections works on all workers in parallel
@type forward
port 24224
</source>
<match all> # this sections also works on all workers in parallel
@type stdout
<inject>
worker_id_key worker_id
</inject>
</match>
<worker 0> # this section works only on first worker process
<source>
@type tail
format none
path /var/log/fluentd_test.log
pos_file /var/log/fluentd_test.pos
tag tail
rotate_wait 5
read_from_head true
refresh_interval 60
</source>
<match tail>
@type stdout
<inject>
worker_id_key worker_id
</inject>
</match>
</worker>
================================================
FILE: fluent.conf
================================================
# In v1 configuration, type and id are @ prefix parameters.
# @type and @id are recommended. type and id are still available for backward compatibility
## built-in TCP input
## $ echo <json> | fluent-cat <tag>
<source>
@type forward
@id forward_input
</source>
## built-in UNIX socket input
#<source>
# @type unix
#</source>
# HTTP input
# http://localhost:8888/<tag>?json=<json>
<source>
@type http
@id http_input
port 8888
</source>
## File input
## read apache logs with tag=apache.access
#<source>
# @type tail
# format apache
# path /var/log/httpd-access.log
# tag apache.access
#</source>
## Mutating event filter
## Add hostname and tag fields to apache.access tag events
#<filter apache.access>
# @type record_transformer
# <record>
# hostname ${hostname}
# tag ${tag}
# </record>
#</filter>
## Selecting event filter
## Remove unnecessary events from apache prefixed tag events
#<filter apache.**>
# @type grep
# include1 method GET # pass only GET in 'method' field
# exclude1 message debug # remove debug event
#</filter>
# Listen HTTP for monitoring
# http://localhost:24220/api/plugins
# http://localhost:24220/api/plugins?type=TYPE
# http://localhost:24220/api/plugins?tag=MYTAG
<source>
@type monitor_agent
@id monitor_agent_input
port 24220
</source>
# Listen DRb for debug
<source>
@type debug_agent
@id debug_agent_input
bind 127.0.0.1
port 24230
</source>
## match tag=apache.access and write to file
#<matc
gitextract_m1i_qpi2/
├── .deepsource.toml
├── .github/
│ ├── DISCUSSION_TEMPLATE/
│ │ ├── q-a-japanese.yml
│ │ └── q-a.yml
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.yml
│ │ ├── config.yml
│ │ └── feature_request.yml
│ ├── ISSUE_TEMPLATE.md
│ ├── PULL_REQUEST_TEMPLATE.md
│ ├── dependabot.yml
│ └── workflows/
│ ├── backport.yml
│ ├── benchmark.yml
│ ├── rubocop.yml
│ ├── scorecards.yml
│ ├── stale-actions.yml
│ ├── test-ruby-head.yml
│ └── test.yml
├── .gitignore
├── .rubocop.yml
├── ADOPTERS.md
├── AUTHORS
├── CHANGELOG.md
├── CONTRIBUTING.md
├── GOVERNANCE.md
├── Gemfile
├── GithubWorkflow.md
├── LICENSE
├── MAINTAINERS.md
├── README.md
├── Rakefile
├── SECURITY.md
├── bin/
│ ├── fluent-binlog-reader
│ ├── fluent-ca-generate
│ ├── fluent-cap-ctl
│ ├── fluent-ctl
│ ├── fluent-debug
│ ├── fluent-plugin-config-format
│ └── fluent-plugin-generate
├── code-of-conduct.md
├── example/
│ ├── copy_roundrobin.conf
│ ├── counter.conf
│ ├── filter_stdout.conf
│ ├── in_forward.conf
│ ├── in_forward_client.conf
│ ├── in_forward_shared_key.conf
│ ├── in_forward_tls.conf
│ ├── in_forward_users.conf
│ ├── in_forward_workers.conf
│ ├── in_http.conf
│ ├── in_out_forward.conf
│ ├── in_sample_blocks.conf
│ ├── in_sample_with_compression.conf
│ ├── in_syslog.conf
│ ├── in_tail.conf
│ ├── in_tcp.conf
│ ├── in_udp.conf
│ ├── logevents.conf
│ ├── multi_filters.conf
│ ├── out_copy.conf
│ ├── out_exec_filter.conf
│ ├── out_file.conf
│ ├── out_forward.conf
│ ├── out_forward_buf_file.conf
│ ├── out_forward_client.conf
│ ├── out_forward_heartbeat_none.conf
│ ├── out_forward_sd.conf
│ ├── out_forward_shared_key.conf
│ ├── out_forward_tls.conf
│ ├── out_forward_users.conf
│ ├── out_null.conf
│ ├── sd.yaml
│ ├── secondary_file.conf
│ ├── suppress_config_dump.conf
│ ├── v0_12_filter.conf
│ ├── v1_literal_example.conf
│ └── worker_section.conf
├── fluent.conf
├── fluentd.gemspec
├── lib/
│ └── fluent/
│ ├── agent.rb
│ ├── capability.rb
│ ├── clock.rb
│ ├── command/
│ │ ├── binlog_reader.rb
│ │ ├── bundler_injection.rb
│ │ ├── ca_generate.rb
│ │ ├── cap_ctl.rb
│ │ ├── cat.rb
│ │ ├── ctl.rb
│ │ ├── debug.rb
│ │ ├── fluentd.rb
│ │ ├── plugin_config_formatter.rb
│ │ └── plugin_generator.rb
│ ├── compat/
│ │ ├── call_super_mixin.rb
│ │ ├── detach_process_mixin.rb
│ │ ├── exec_util.rb
│ │ ├── file_util.rb
│ │ ├── filter.rb
│ │ ├── formatter.rb
│ │ ├── formatter_utils.rb
│ │ ├── handle_tag_and_time_mixin.rb
│ │ ├── handle_tag_name_mixin.rb
│ │ ├── input.rb
│ │ ├── output.rb
│ │ ├── output_chain.rb
│ │ ├── parser.rb
│ │ ├── parser_utils.rb
│ │ ├── propagate_default.rb
│ │ ├── record_filter_mixin.rb
│ │ ├── set_tag_key_mixin.rb
│ │ ├── set_time_key_mixin.rb
│ │ ├── socket_util.rb
│ │ ├── string_util.rb
│ │ ├── structured_format_mixin.rb
│ │ └── type_converter.rb
│ ├── config/
│ │ ├── basic_parser.rb
│ │ ├── configure_proxy.rb
│ │ ├── dsl.rb
│ │ ├── element.rb
│ │ ├── error.rb
│ │ ├── literal_parser.rb
│ │ ├── parser.rb
│ │ ├── section.rb
│ │ ├── types.rb
│ │ ├── v1_parser.rb
│ │ ├── yaml_parser/
│ │ │ ├── fluent_value.rb
│ │ │ ├── loader.rb
│ │ │ ├── parser.rb
│ │ │ └── section_builder.rb
│ │ └── yaml_parser.rb
│ ├── config.rb
│ ├── configurable.rb
│ ├── counter/
│ │ ├── base_socket.rb
│ │ ├── client.rb
│ │ ├── error.rb
│ │ ├── mutex_hash.rb
│ │ ├── server.rb
│ │ ├── store.rb
│ │ └── validator.rb
│ ├── counter.rb
│ ├── daemon.rb
│ ├── daemonizer.rb
│ ├── engine.rb
│ ├── env.rb
│ ├── error.rb
│ ├── event.rb
│ ├── event_router.rb
│ ├── ext_monitor_require.rb
│ ├── file_wrapper.rb
│ ├── filter.rb
│ ├── fluent_log_event_router.rb
│ ├── formatter.rb
│ ├── input.rb
│ ├── label.rb
│ ├── load.rb
│ ├── log/
│ │ └── console_adapter.rb
│ ├── log.rb
│ ├── match.rb
│ ├── mixin.rb
│ ├── msgpack_factory.rb
│ ├── oj_options.rb
│ ├── output.rb
│ ├── output_chain.rb
│ ├── parser.rb
│ ├── plugin/
│ │ ├── bare_output.rb
│ │ ├── base.rb
│ │ ├── buf_file.rb
│ │ ├── buf_file_single.rb
│ │ ├── buf_memory.rb
│ │ ├── buffer/
│ │ │ ├── chunk.rb
│ │ │ ├── file_chunk.rb
│ │ │ ├── file_single_chunk.rb
│ │ │ └── memory_chunk.rb
│ │ ├── buffer.rb
│ │ ├── compressable.rb
│ │ ├── exec_util.rb
│ │ ├── file_util.rb
│ │ ├── filter.rb
│ │ ├── filter_grep.rb
│ │ ├── filter_parser.rb
│ │ ├── filter_record_transformer.rb
│ │ ├── filter_stdout.rb
│ │ ├── formatter.rb
│ │ ├── formatter_csv.rb
│ │ ├── formatter_hash.rb
│ │ ├── formatter_json.rb
│ │ ├── formatter_ltsv.rb
│ │ ├── formatter_msgpack.rb
│ │ ├── formatter_out_file.rb
│ │ ├── formatter_single_value.rb
│ │ ├── formatter_stdout.rb
│ │ ├── formatter_tsv.rb
│ │ ├── in_debug_agent.rb
│ │ ├── in_dummy.rb
│ │ ├── in_exec.rb
│ │ ├── in_forward.rb
│ │ ├── in_gc_stat.rb
│ │ ├── in_http.rb
│ │ ├── in_monitor_agent.rb
│ │ ├── in_object_space.rb
│ │ ├── in_sample.rb
│ │ ├── in_syslog.rb
│ │ ├── in_tail/
│ │ │ ├── group_watch.rb
│ │ │ └── position_file.rb
│ │ ├── in_tail.rb
│ │ ├── in_tcp.rb
│ │ ├── in_udp.rb
│ │ ├── in_unix.rb
│ │ ├── input.rb
│ │ ├── metrics.rb
│ │ ├── metrics_local.rb
│ │ ├── multi_output.rb
│ │ ├── out_buffer.rb
│ │ ├── out_copy.rb
│ │ ├── out_exec.rb
│ │ ├── out_exec_filter.rb
│ │ ├── out_file.rb
│ │ ├── out_forward/
│ │ │ ├── ack_handler.rb
│ │ │ ├── connection_manager.rb
│ │ │ ├── error.rb
│ │ │ ├── failure_detector.rb
│ │ │ ├── handshake_protocol.rb
│ │ │ ├── load_balancer.rb
│ │ │ └── socket_cache.rb
│ │ ├── out_forward.rb
│ │ ├── out_http.rb
│ │ ├── out_null.rb
│ │ ├── out_relabel.rb
│ │ ├── out_roundrobin.rb
│ │ ├── out_secondary_file.rb
│ │ ├── out_stdout.rb
│ │ ├── out_stream.rb
│ │ ├── output.rb
│ │ ├── owned_by_mixin.rb
│ │ ├── parser.rb
│ │ ├── parser_apache.rb
│ │ ├── parser_apache2.rb
│ │ ├── parser_apache_error.rb
│ │ ├── parser_csv.rb
│ │ ├── parser_json.rb
│ │ ├── parser_ltsv.rb
│ │ ├── parser_msgpack.rb
│ │ ├── parser_multiline.rb
│ │ ├── parser_nginx.rb
│ │ ├── parser_none.rb
│ │ ├── parser_regexp.rb
│ │ ├── parser_syslog.rb
│ │ ├── parser_tsv.rb
│ │ ├── sd_file.rb
│ │ ├── sd_srv.rb
│ │ ├── sd_static.rb
│ │ ├── service_discovery.rb
│ │ ├── socket_util.rb
│ │ ├── storage.rb
│ │ ├── storage_local.rb
│ │ └── string_util.rb
│ ├── plugin.rb
│ ├── plugin_helper/
│ │ ├── cert_option.rb
│ │ ├── child_process.rb
│ │ ├── compat_parameters.rb
│ │ ├── counter.rb
│ │ ├── event_emitter.rb
│ │ ├── event_loop.rb
│ │ ├── extract.rb
│ │ ├── formatter.rb
│ │ ├── http_server/
│ │ │ ├── app.rb
│ │ │ ├── methods.rb
│ │ │ ├── request.rb
│ │ │ ├── router.rb
│ │ │ ├── server.rb
│ │ │ └── ssl_context_builder.rb
│ │ ├── http_server.rb
│ │ ├── inject.rb
│ │ ├── metrics.rb
│ │ ├── parser.rb
│ │ ├── record_accessor.rb
│ │ ├── retry_state.rb
│ │ ├── server.rb
│ │ ├── service_discovery/
│ │ │ ├── manager.rb
│ │ │ └── round_robin_balancer.rb
│ │ ├── service_discovery.rb
│ │ ├── socket.rb
│ │ ├── socket_option.rb
│ │ ├── storage.rb
│ │ ├── thread.rb
│ │ └── timer.rb
│ ├── plugin_helper.rb
│ ├── plugin_id.rb
│ ├── process.rb
│ ├── registry.rb
│ ├── root_agent.rb
│ ├── rpc.rb
│ ├── source_only_buffer_agent.rb
│ ├── static_config_analysis.rb
│ ├── supervisor.rb
│ ├── system_config.rb
│ ├── test/
│ │ ├── base.rb
│ │ ├── driver/
│ │ │ ├── base.rb
│ │ │ ├── base_owned.rb
│ │ │ ├── base_owner.rb
│ │ │ ├── event_feeder.rb
│ │ │ ├── filter.rb
│ │ │ ├── formatter.rb
│ │ │ ├── input.rb
│ │ │ ├── multi_output.rb
│ │ │ ├── output.rb
│ │ │ ├── parser.rb
│ │ │ ├── storage.rb
│ │ │ └── test_event_router.rb
│ │ ├── filter_test.rb
│ │ ├── formatter_test.rb
│ │ ├── helpers.rb
│ │ ├── input_test.rb
│ │ ├── log.rb
│ │ ├── output_test.rb
│ │ ├── parser_test.rb
│ │ └── startup_shutdown.rb
│ ├── test.rb
│ ├── time.rb
│ ├── timezone.rb
│ ├── tls.rb
│ ├── unique_id.rb
│ ├── variable_store.rb
│ ├── version.rb
│ ├── win32api.rb
│ └── winsvc.rb
├── tasks/
│ ├── backport/
│ │ └── backporter.rb
│ ├── backport.rb
│ ├── benchmark/
│ │ ├── conf/
│ │ │ └── in_tail.conf
│ │ └── patch_in_tail.rb
│ └── benchmark.rb
├── templates/
│ ├── new_gem/
│ │ ├── Gemfile
│ │ ├── README.md.erb
│ │ ├── Rakefile
│ │ ├── fluent-plugin.gemspec.erb
│ │ ├── lib/
│ │ │ └── fluent/
│ │ │ └── plugin/
│ │ │ ├── filter.rb.erb
│ │ │ ├── formatter.rb.erb
│ │ │ ├── input.rb.erb
│ │ │ ├── output.rb.erb
│ │ │ ├── parser.rb.erb
│ │ │ └── storage.rb.erb
│ │ └── test/
│ │ ├── helper.rb.erb
│ │ └── plugin/
│ │ ├── test_filter.rb.erb
│ │ ├── test_formatter.rb.erb
│ │ ├── test_input.rb.erb
│ │ ├── test_output.rb.erb
│ │ ├── test_parser.rb.erb
│ │ └── test_storage.rb.erb
│ └── plugin_config_formatter/
│ ├── param.md-compact.erb
│ ├── param.md-table.erb
│ ├── param.md.erb
│ └── section.md.erb
└── test/
├── command/
│ ├── test_binlog_reader.rb
│ ├── test_ca_generate.rb
│ ├── test_cap_ctl.rb
│ ├── test_cat.rb
│ ├── test_ctl.rb
│ ├── test_fluentd.rb
│ ├── test_plugin_config_formatter.rb
│ └── test_plugin_generator.rb
├── compat/
│ ├── test_calls_super.rb
│ └── test_parser.rb
├── config/
│ ├── assertions.rb
│ ├── test_config_parser.rb
│ ├── test_configurable.rb
│ ├── test_configure_proxy.rb
│ ├── test_dsl.rb
│ ├── test_element.rb
│ ├── test_literal_parser.rb
│ ├── test_plugin_configuration.rb
│ ├── test_section.rb
│ ├── test_system_config.rb
│ ├── test_types.rb
│ └── test_yaml_parser.rb
├── counter/
│ ├── test_client.rb
│ ├── test_error.rb
│ ├── test_mutex_hash.rb
│ ├── test_server.rb
│ ├── test_store.rb
│ └── test_validator.rb
├── helper.rb
├── helpers/
│ ├── fuzzy_assert.rb
│ └── process_extenstion.rb
├── log/
│ └── test_console_adapter.rb
├── plugin/
│ ├── data/
│ │ ├── 2010/
│ │ │ └── 01/
│ │ │ ├── 20100102-030405.log
│ │ │ ├── 20100102-030406.log
│ │ │ └── 20100102.log
│ │ ├── log/
│ │ │ ├── bar
│ │ │ ├── foo/
│ │ │ │ ├── bar.log
│ │ │ │ └── bar2
│ │ │ └── test.log
│ │ ├── log_numeric/
│ │ │ ├── 01.log
│ │ │ ├── 02.log
│ │ │ ├── 12.log
│ │ │ └── 14.log
│ │ └── sd_file/
│ │ ├── config
│ │ ├── config.json
│ │ ├── config.yaml
│ │ ├── config.yml
│ │ └── invalid_config.yml
│ ├── in_tail/
│ │ ├── test_fifo.rb
│ │ ├── test_io_handler.rb
│ │ └── test_position_file.rb
│ ├── out_forward/
│ │ ├── test_ack_handler.rb
│ │ ├── test_connection_manager.rb
│ │ ├── test_handshake_protocol.rb
│ │ ├── test_load_balancer.rb
│ │ └── test_socket_cache.rb
│ ├── test_bare_output.rb
│ ├── test_base.rb
│ ├── test_buf_file.rb
│ ├── test_buf_file_single.rb
│ ├── test_buf_memory.rb
│ ├── test_buffer.rb
│ ├── test_buffer_chunk.rb
│ ├── test_buffer_file_chunk.rb
│ ├── test_buffer_file_single_chunk.rb
│ ├── test_buffer_memory_chunk.rb
│ ├── test_compressable.rb
│ ├── test_file_util.rb
│ ├── test_filter.rb
│ ├── test_filter_grep.rb
│ ├── test_filter_parser.rb
│ ├── test_filter_record_transformer.rb
│ ├── test_filter_stdout.rb
│ ├── test_formatter_csv.rb
│ ├── test_formatter_hash.rb
│ ├── test_formatter_json.rb
│ ├── test_formatter_ltsv.rb
│ ├── test_formatter_msgpack.rb
│ ├── test_formatter_out_file.rb
│ ├── test_formatter_single_value.rb
│ ├── test_formatter_tsv.rb
│ ├── test_in_debug_agent.rb
│ ├── test_in_exec.rb
│ ├── test_in_forward.rb
│ ├── test_in_gc_stat.rb
│ ├── test_in_http.rb
│ ├── test_in_monitor_agent.rb
│ ├── test_in_object_space.rb
│ ├── test_in_sample.rb
│ ├── test_in_syslog.rb
│ ├── test_in_tail.rb
│ ├── test_in_tcp.rb
│ ├── test_in_udp.rb
│ ├── test_in_unix.rb
│ ├── test_input.rb
│ ├── test_metadata.rb
│ ├── test_metrics.rb
│ ├── test_metrics_local.rb
│ ├── test_multi_output.rb
│ ├── test_out_buffer.rb
│ ├── test_out_copy.rb
│ ├── test_out_exec.rb
│ ├── test_out_exec_filter.rb
│ ├── test_out_file.rb
│ ├── test_out_forward.rb
│ ├── test_out_http.rb
│ ├── test_out_null.rb
│ ├── test_out_relabel.rb
│ ├── test_out_roundrobin.rb
│ ├── test_out_secondary_file.rb
│ ├── test_out_stdout.rb
│ ├── test_out_stream.rb
│ ├── test_output.rb
│ ├── test_output_as_buffered.rb
│ ├── test_output_as_buffered_backup.rb
│ ├── test_output_as_buffered_compress.rb
│ ├── test_output_as_buffered_overflow.rb
│ ├── test_output_as_buffered_retries.rb
│ ├── test_output_as_buffered_secondary.rb
│ ├── test_output_as_standard.rb
│ ├── test_owned_by.rb
│ ├── test_parser.rb
│ ├── test_parser_apache.rb
│ ├── test_parser_apache2.rb
│ ├── test_parser_apache_error.rb
│ ├── test_parser_csv.rb
│ ├── test_parser_json.rb
│ ├── test_parser_labeled_tsv.rb
│ ├── test_parser_msgpack.rb
│ ├── test_parser_multiline.rb
│ ├── test_parser_nginx.rb
│ ├── test_parser_none.rb
│ ├── test_parser_regexp.rb
│ ├── test_parser_syslog.rb
│ ├── test_parser_tsv.rb
│ ├── test_sd_file.rb
│ ├── test_sd_srv.rb
│ ├── test_storage.rb
│ ├── test_storage_local.rb
│ └── test_string_util.rb
├── plugin_helper/
│ ├── data/
│ │ └── cert/
│ │ ├── cert-key.pem
│ │ ├── cert-with-CRLF.pem
│ │ ├── cert-with-no-newline.pem
│ │ ├── cert.pem
│ │ ├── cert_chains/
│ │ │ ├── ca-cert-key.pem
│ │ │ ├── ca-cert.pem
│ │ │ ├── cert-key.pem
│ │ │ └── cert.pem
│ │ ├── empty.pem
│ │ ├── generate_cert.rb
│ │ ├── with_ca/
│ │ │ ├── ca-cert-key-pass.pem
│ │ │ ├── ca-cert-key.pem
│ │ │ ├── ca-cert-pass.pem
│ │ │ ├── ca-cert.pem
│ │ │ ├── cert-key-pass.pem
│ │ │ ├── cert-key.pem
│ │ │ ├── cert-pass.pem
│ │ │ └── cert.pem
│ │ └── without_ca/
│ │ ├── cert-key-pass.pem
│ │ ├── cert-key.pem
│ │ ├── cert-pass.pem
│ │ └── cert.pem
│ ├── http_server/
│ │ ├── test_app.rb
│ │ ├── test_request.rb
│ │ └── test_route.rb
│ ├── service_discovery/
│ │ ├── test_manager.rb
│ │ └── test_round_robin_balancer.rb
│ ├── test_cert_option.rb
│ ├── test_child_process.rb
│ ├── test_compat_parameters.rb
│ ├── test_event_emitter.rb
│ ├── test_event_loop.rb
│ ├── test_extract.rb
│ ├── test_formatter.rb
│ ├── test_http_server_helper.rb
│ ├── test_inject.rb
│ ├── test_metrics.rb
│ ├── test_parser.rb
│ ├── test_record_accessor.rb
│ ├── test_retry_state.rb
│ ├── test_server.rb
│ ├── test_service_discovery.rb
│ ├── test_socket.rb
│ ├── test_storage.rb
│ ├── test_thread.rb
│ └── test_timer.rb
├── scripts/
│ ├── exec_script.rb
│ ├── fluent/
│ │ └── plugin/
│ │ ├── formatter1/
│ │ │ └── formatter_test1.rb
│ │ ├── formatter2/
│ │ │ └── formatter_test2.rb
│ │ ├── formatter_known.rb
│ │ ├── out_test.rb
│ │ ├── out_test2.rb
│ │ └── parser_known.rb
│ └── windows_service_test.ps1
├── test_capability.rb
├── test_clock.rb
├── test_config.rb
├── test_configdsl.rb
├── test_daemonizer.rb
├── test_engine.rb
├── test_event.rb
├── test_event_router.rb
├── test_event_time.rb
├── test_file_wrapper.rb
├── test_filter.rb
├── test_fluent_log_event_router.rb
├── test_formatter.rb
├── test_input.rb
├── test_log.rb
├── test_match.rb
├── test_mixin.rb
├── test_msgpack_factory.rb
├── test_oj_options.rb
├── test_output.rb
├── test_plugin.rb
├── test_plugin_classes.rb
├── test_plugin_helper.rb
├── test_plugin_id.rb
├── test_process.rb
├── test_root_agent.rb
├── test_source_only_buffer_agent.rb
├── test_static_config_analysis.rb
├── test_supervisor.rb
├── test_test_drivers.rb
├── test_time_formatter.rb
├── test_time_parser.rb
├── test_tls.rb
├── test_unique_id.rb
└── test_variable_store.rb
Showing preview only (388K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (5493 symbols across 433 files)
FILE: lib/fluent/agent.rb
type Fluent (line 22) | module Fluent
class Agent (line 29) | class Agent
method initialize (line 32) | def initialize(log:)
method configure (line 60) | def configure(conf)
method lifecycle_control_list (line 79) | def lifecycle_control_list
method lifecycle (line 107) | def lifecycle(desc: false)
method add_match (line 126) | def add_match(type, pattern, conf)
method add_filter (line 148) | def add_filter(type, pattern, conf)
method emit_error_event (line 162) | def emit_error_event(tag, time, record, error)
method handle_emits_error (line 165) | def handle_emits_error(tag, es, error)
FILE: lib/fluent/capability.rb
type Fluent (line 26) | module Fluent
class Capability (line 28) | class Capability
method initialize (line 29) | def initialize(target = nil, pid = nil)
method usable? (line 33) | def usable?
method apply (line 37) | def apply(select_set)
method clear (line 41) | def clear(select_set)
method have_capability? (line 45) | def have_capability?(type, capability)
method update (line 49) | def update(action, type, capability_or_capability_array)
method have_capabilities? (line 53) | def have_capabilities?(select_set)
method initialize (line 59) | def initialize(target = nil, pid = nil)
method usable? (line 62) | def usable?
method apply (line 66) | def apply(select_set)
method clear (line 70) | def clear(select_set)
method have_capability? (line 74) | def have_capability?(type, capability)
method update (line 78) | def update(action, type, capability_or_capability_array)
method have_capabilities? (line 82) | def have_capabilities?(select_set)
class Capability (line 58) | class Capability
method initialize (line 29) | def initialize(target = nil, pid = nil)
method usable? (line 33) | def usable?
method apply (line 37) | def apply(select_set)
method clear (line 41) | def clear(select_set)
method have_capability? (line 45) | def have_capability?(type, capability)
method update (line 49) | def update(action, type, capability_or_capability_array)
method have_capabilities? (line 53) | def have_capabilities?(select_set)
method initialize (line 59) | def initialize(target = nil, pid = nil)
method usable? (line 62) | def usable?
method apply (line 66) | def apply(select_set)
method clear (line 70) | def clear(select_set)
method have_capability? (line 74) | def have_capability?(type, capability)
method update (line 78) | def update(action, type, capability_or_capability_array)
method have_capabilities? (line 82) | def have_capabilities?(select_set)
FILE: lib/fluent/clock.rb
type Fluent (line 17) | module Fluent
type Clock (line 18) | module Clock
function now (line 24) | def self.now
function freeze (line 28) | def self.freeze(dst = nil, &block)
function return (line 35) | def self.return
function now_raw (line 42) | def self.now_raw
function real_now (line 46) | def self.real_now(unit = :second)
function dst_clock_from_time (line 50) | def self.dst_clock_from_time(time)
function freeze_block (line 55) | def self.freeze_block(dst)
FILE: lib/fluent/command/binlog_reader.rb
class FluentBinlogReader (line 27) | class FluentBinlogReader
method initialize (line 40) | def initialize(argv = ARGV)
method call (line 44) | def call
method command (line 51) | def command
method usage (line 67) | def usage(msg = nil)
type BinlogReaderCommand (line 74) | module BinlogReaderCommand
class Base (line 75) | class Base
method initialize (line 76) | def initialize(argv = ARGV)
method call (line 90) | def call
method usage (line 96) | def usage(msg = nil)
method parse_options! (line 102) | def parse_options!
type Formattable (line 119) | module Formattable
function initialize (line 124) | def initialize(argv = ARGV)
function configure_option_parser (line 132) | def configure_option_parser
function lookup_formatter (line 148) | def lookup_formatter(format, params)
class Head (line 161) | class Head < Base
method initialize (line 168) | def initialize(argv = ARGV)
method call (line 174) | def call
method default_options (line 189) | def default_options
method parse_options! (line 193) | def parse_options!
class Cat (line 207) | class Cat < Head
method default_options (line 212) | def default_options
class Formats (line 217) | class Formats < Base
method initialize (line 218) | def initialize(argv = ARGV)
method call (line 223) | def call
FILE: lib/fluent/command/ca_generate.rb
type Fluent (line 6) | module Fluent
class CaGenerate (line 7) | class CaGenerate
method initialize (line 19) | def initialize(argv = ARGV)
method usage (line 28) | def usage(msg = nil)
method call (line 34) | def call
method certificates_from_file (line 59) | def self.certificates_from_file(path)
method generate_ca_pair (line 67) | def self.generate_ca_pair(opts={})
method generate_server_pair (line 93) | def self.generate_server_pair(opts={})
method generate_self_signed_server_pair (line 125) | def self.generate_self_signed_server_pair(opts={})
method configure_option_parser (line 150) | def configure_option_parser
method parse_options! (line 180) | def parse_options!
FILE: lib/fluent/command/cap_ctl.rb
type Fluent (line 22) | module Fluent
class CapCtl (line 23) | class CapCtl
method prepare_option_parser (line 24) | def prepare_option_parser
method usage (line 48) | def usage(msg)
method initialize (line 54) | def initialize(argv = ARGV)
method call (line 75) | def call
method clear_capabilities (line 96) | def clear_capabilities(opts, target_file)
method add_capabilities (line 104) | def add_capabilities(opts, target_file)
method drop_capabilities (line 119) | def drop_capabilities(opts, target_file)
method get_capabilities (line 134) | def get_capabilities(opts, target_file)
method get_valid_capabilities (line 145) | def get_valid_capabilities
method check_capabilities (line 154) | def check_capabilities(capabilities, valid_capabilities)
method parse_options! (line 162) | def parse_options!(argv)
FILE: lib/fluent/command/cat.rb
class Writer (line 114) | class Writer
class TimerThread (line 119) | class TimerThread
method initialize (line 120) | def initialize(writer)
method start (line 124) | def start
method shutdown (line 129) | def shutdown
method run (line 134) | def run
method initialize (line 142) | def initialize(tag, connector, time_as_integer: false, retry_limit: 5,...
method secondary_record? (line 161) | def secondary_record?(record)
method write (line 168) | def write(record)
method on_timer (line 203) | def on_timer
method close (line 222) | def close
method start (line 227) | def start
method shutdown (line 233) | def shutdown
method write_impl (line 238) | def write_impl(array)
method get_socket (line 257) | def get_socket
method try_connect (line 268) | def try_connect
method abort_message (line 306) | def abort_message(time, record)
FILE: lib/fluent/command/ctl.rb
type Fluent (line 25) | module Fluent
class Ctl (line 26) | class Ctl
method initialize (line 60) | def initialize(argv = ARGV)
method help_text (line 69) | def help_text
method usage (line 84) | def usage(msg = nil)
method call (line 93) | def call
method call_signal (line 111) | def call_signal(command, pid)
method call_winsvc_control_code (line 116) | def call_winsvc_control_code(command, pid_or_svcname)
method call_windows_event (line 143) | def call_windows_event(command, pid_or_svcname)
method configure_option_parser (line 157) | def configure_option_parser
method parse_options! (line 162) | def parse_options!
FILE: lib/fluent/command/plugin_config_formatter.rb
class FluentPluginConfigFormatter (line 27) | class FluentPluginConfigFormatter
method initialize (line 39) | def initialize(argv = ARGV)
method call (line 53) | def call
method dump_txt (line 81) | def dump_txt(dumped_config)
method dump_section_txt (line 103) | def dump_section_txt(base_section, level = 0)
method dump_markdown (line 137) | def dump_markdown(dumped_config)
method dump_section_markdown (line 158) | def dump_section_markdown(base_section, level = 0)
method dump_json (line 205) | def dump_json(dumped_config)
method plugin_helper_url (line 213) | def plugin_helper_url(plugin_helper)
method plugin_helper_markdown_link (line 217) | def plugin_helper_markdown_link(plugin_helper)
method plugin_overview_url (line 221) | def plugin_overview_url(class_name)
method plugin_overview_markdown_link (line 226) | def plugin_overview_markdown_link(class_name)
method usage (line 231) | def usage(message = nil)
method prepare_option_parser (line 238) | def prepare_option_parser
method parse_options! (line 277) | def parse_options!
method init_libraries (line 292) | def init_libraries
method template_path (line 305) | def template_path(name)
FILE: lib/fluent/command/plugin_generator.rb
class FluentPluginGenerator (line 26) | class FluentPluginGenerator
method initialize (line 32) | def initialize(argv = ARGV)
method call (line 40) | def call
method template_directory (line 65) | def template_directory
method template_file (line 69) | def template_file(filename)
method template (line 73) | def template(source, dest)
method file (line 89) | def file(source, dest)
method prepare_parser (line 98) | def prepare_parser
method parse_options! (line 119) | def parse_options!
method usage (line 129) | def usage(message = "")
method user_name (line 136) | def user_name
method user_email (line 141) | def user_email
method gem_name (line 146) | def gem_name
method plugin_name (line 150) | def plugin_name
method gem_file_path (line 154) | def gem_file_path
method lock_file_path (line 160) | def lock_file_path
method locked_gem_version (line 166) | def locked_gem_version(gem_name)
method rake_version (line 176) | def rake_version
method test_unit_version (line 180) | def test_unit_version
method bundler_version (line 184) | def bundler_version
method class_name (line 194) | def class_name
method plugin_filename (line 198) | def plugin_filename
method test_filename (line 209) | def test_filename
method dest_filename (line 220) | def dest_filename(path)
method capitalized_name (line 233) | def capitalized_name
method underscore_name (line 237) | def underscore_name
method dash_name (line 241) | def dash_name
method preamble (line 245) | def preamble
method copy_license (line 249) | def copy_license
method create_label (line 262) | def create_label(dest, contents)
method overwrite? (line 274) | def overwrite?(dest)
class NoLicense (line 301) | class NoLicense
method initialize (line 304) | def initialize
method preamble (line 310) | def preamble(usename)
class ApacheLicense (line 315) | class ApacheLicense
method initialize (line 320) | def initialize
method name (line 331) | def name
method full_name (line 335) | def full_name
method preamble (line 339) | def preamble(user_name)
method register_license (line 351) | def self.register_license(license, klass)
method lookup_license (line 355) | def self.lookup_license(license)
FILE: lib/fluent/compat/call_super_mixin.rb
type Fluent (line 17) | module Fluent
type Compat (line 18) | module Compat
type CallSuperMixin (line 19) | module CallSuperMixin
function prepended (line 25) | def self.prepended(klass)
function start (line 41) | def start
function before_shutdown (line 50) | def before_shutdown
function stop (line 58) | def stop
function shutdown (line 67) | def shutdown
FILE: lib/fluent/compat/detach_process_mixin.rb
type Fluent (line 17) | module Fluent
type Compat (line 18) | module Compat
type DetachProcessMixin (line 19) | module DetachProcessMixin
function detach_process (line 20) | def detach_process
type DetachMultiProcessMixin (line 26) | module DetachMultiProcessMixin
function detach_multi_process (line 27) | def detach_multi_process
FILE: lib/fluent/compat/exec_util.rb
type Fluent (line 25) | module Fluent
type Compat (line 26) | module Compat
type ExecUtil (line 27) | module ExecUtil
class Parser (line 34) | class Parser
method initialize (line 35) | def initialize(on_message)
class TextParserWrapperParser (line 40) | class TextParserWrapperParser < Parser
method initialize (line 41) | def initialize(conf, on_message)
method call (line 47) | def call(io)
method each_line (line 51) | def each_line(line)
class TSVParser (line 59) | class TSVParser < Parser
method initialize (line 60) | def initialize(keys, on_message)
method call (line 65) | def call(io)
method each_line (line 69) | def each_line(line)
class JSONParser (line 79) | class JSONParser < Parser
method call (line 80) | def call(io)
class MessagePackParser (line 87) | class MessagePackParser < Parser
method call (line 88) | def call(io)
class Formatter (line 97) | class Formatter
class TSVFormatter (line 100) | class TSVFormatter < Formatter
method initialize (line 101) | def initialize(in_keys)
method call (line 106) | def call(record, out)
class JSONFormatter (line 117) | class JSONFormatter < Formatter
method call (line 118) | def call(record, out)
class MessagePackFormatter (line 123) | class MessagePackFormatter < Formatter
method call (line 124) | def call(record, out)
FILE: lib/fluent/compat/file_util.rb
type Fluent (line 17) | module Fluent
type Compat (line 18) | module Compat
type FileUtil (line 19) | module FileUtil
function writable? (line 25) | def writable?(path)
function writable_p? (line 39) | def writable_p?(path)
FILE: lib/fluent/compat/filter.rb
type Fluent (line 23) | module Fluent
type Compat (line 24) | module Compat
class Filter (line 25) | class Filter < Fluent::Plugin::Filter
method initialize (line 30) | def initialize
method configure (line 37) | def configure(conf)
method start (line 46) | def start
method before_shutdown (line 59) | def before_shutdown
method shutdown (line 63) | def shutdown
FILE: lib/fluent/compat/formatter.rb
type Fluent (line 31) | module Fluent
type Compat (line 32) | module Compat
class Formatter (line 33) | class Formatter < Fluent::Plugin::Formatter
type TextFormatter (line 37) | module TextFormatter
function register_template (line 38) | def self.register_template(type, template)
function lookup (line 51) | def self.lookup(type)
function create (line 57) | def self.create(conf)
class ProcWrappedFormatter (line 74) | class ProcWrappedFormatter < Fluent::Plugin::ProcWrappedFormatter
class OutFileFormatter (line 78) | class OutFileFormatter < Fluent::Plugin::OutFileFormatter
class StdoutFormatter (line 82) | class StdoutFormatter < Fluent::Plugin::StdoutFormatter
class JSONFormatter (line 86) | class JSONFormatter < Fluent::Plugin::JSONFormatter
class HashFormatter (line 90) | class HashFormatter < Fluent::Plugin::HashFormatter
class MessagePackFormatter (line 94) | class MessagePackFormatter < Fluent::Plugin::MessagePackFormatter
class LabeledTSVFormatter (line 98) | class LabeledTSVFormatter < Fluent::Plugin::LabeledTSVFormatter
class CsvFormatter (line 102) | class CsvFormatter < Fluent::Plugin::CsvFormatter
method csv_cacheable? (line 107) | def csv_cacheable?
class SingleValueFormatter (line 112) | class SingleValueFormatter < Fluent::Plugin::SingleValueFormatter
FILE: lib/fluent/compat/formatter_utils.rb
type Fluent (line 19) | module Fluent
type Compat (line 20) | module Compat
type FormatterUtils (line 21) | module FormatterUtils
type InjectMixin (line 25) | module InjectMixin
function format (line 26) | def format(tag, time, record)
function convert_formatter_conf (line 32) | def self.convert_formatter_conf(conf)
FILE: lib/fluent/compat/handle_tag_and_time_mixin.rb
type Fluent (line 19) | module Fluent
type Compat (line 20) | module Compat
type HandleTagAndTimeMixin (line 21) | module HandleTagAndTimeMixin
function included (line 22) | def self.included(klass)
function configure (line 35) | def configure(conf)
function filter_record (line 47) | def filter_record(tag, time, record)
FILE: lib/fluent/compat/handle_tag_name_mixin.rb
type Fluent (line 19) | module Fluent
type Compat (line 20) | module Compat
type HandleTagNameMixin (line 21) | module HandleTagNameMixin
function configure (line 25) | def configure(conf)
function filter_record (line 44) | def filter_record(tag, time, record)
FILE: lib/fluent/compat/input.rb
type Fluent (line 22) | module Fluent
type Compat (line 23) | module Compat
class Input (line 24) | class Input < Fluent::Plugin::Input
method initialize (line 27) | def initialize
method start (line 36) | def start
method before_shutdown (line 40) | def before_shutdown
method shutdown (line 44) | def shutdown
FILE: lib/fluent/compat/output.rb
type Fluent (line 37) | module Fluent
type Compat (line 38) | module Compat
type CompatOutputUtils (line 42) | module CompatOutputUtils
function buffer_section (line 43) | def self.buffer_section(conf)
function secondary_section (line 47) | def self.secondary_section(conf)
type BufferedEventStreamMixin (line 52) | module BufferedEventStreamMixin
function repeatable? (line 55) | def repeatable?
function each (line 59) | def each(&block)
function to_msgpack_stream (line 63) | def to_msgpack_stream
function key (line 67) | def key
type AddTimeSliceKeyToChunkMixin (line 72) | module AddTimeSliceKeyToChunkMixin
function time_slice_format= (line 73) | def time_slice_format=(format)
function timekey= (line 77) | def timekey=(unit)
function timezone= (line 81) | def timezone=(tz)
function assume_timekey! (line 85) | def assume_timekey!
function key (line 104) | def key
type AddKeyToChunkMixin (line 109) | module AddKeyToChunkMixin
function key (line 110) | def key
type ChunkSizeCompatMixin (line 115) | module ChunkSizeCompatMixin
function size (line 116) | def size
function size_of_events (line 120) | def size_of_events
type BufferedChunkMixin (line 125) | module BufferedChunkMixin
function write (line 127) | def write(chunk)
type TimeSliceChunkMixin (line 135) | module TimeSliceChunkMixin
function write (line 137) | def write(chunk)
class Output (line 149) | class Output < Fluent::Plugin::Output
method support_in_v12_style? (line 154) | def support_in_v12_style?(feature)
method process (line 163) | def process(tag, es)
method initialize (line 167) | def initialize
method configure (line 174) | def configure(conf)
method start (line 181) | def start
class MultiOutput (line 195) | class MultiOutput < Fluent::Plugin::BareOutput
method process (line 200) | def process(tag, es)
class BufferedOutput (line 205) | class BufferedOutput < Fluent::Plugin::Output
method support_in_v12_style? (line 210) | def support_in_v12_style?(feature)
method propagate_default_params (line 248) | def self.propagate_default_params
method configure (line 253) | def configure(conf)
method emit (line 311) | def emit(tag, es, chain, key="")
method submit_flush (line 320) | def submit_flush
method format_stream (line 324) | def format_stream(tag, es)
method handle_stream_simple (line 338) | def handle_stream_simple(tag, es, enqueue: false)
method extract_placeholders (line 383) | def extract_placeholders(str, metadata)
method initialize (line 387) | def initialize
method start (line 394) | def start
method detach_process (line 407) | def detach_process(&block)
method detach_multi_process (line 412) | def detach_multi_process(&block)
class ObjectBufferedOutput (line 418) | class ObjectBufferedOutput < Fluent::Plugin::Output
method support_in_v12_style? (line 427) | def support_in_v12_style?(feature)
method propagate_default_params (line 467) | def self.propagate_default_params
method configure (line 472) | def configure(conf)
method format_stream (line 508) | def format_stream(tag, es) # for BufferedOutputTestDriver
method write (line 516) | def write(chunk)
method extract_placeholders (line 520) | def extract_placeholders(str, metadata)
method initialize (line 524) | def initialize
method start (line 531) | def start
method detach_process (line 544) | def detach_process(&block)
method detach_multi_process (line 549) | def detach_multi_process(&block)
class TimeSlicedOutput (line 555) | class TimeSlicedOutput < Fluent::Plugin::Output
method support_in_v12_style? (line 560) | def support_in_v12_style?(feature)
method initialize (line 611) | def initialize
method propagate_default_params (line 620) | def self.propagate_default_params
method configure (line 625) | def configure(conf)
method start (line 688) | def start
method detach_process (line 701) | def detach_process(&block)
method detach_multi_process (line 706) | def detach_multi_process(&block)
method extract_placeholders (line 716) | def extract_placeholders(str, metadata)
FILE: lib/fluent/compat/output_chain.rb
type Fluent (line 19) | module Fluent
type Compat (line 20) | module Compat
class NullOutputChain (line 22) | class NullOutputChain
method next (line 25) | def next
class OutputChain (line 29) | class OutputChain
method initialize (line 30) | def initialize(array, tag, es, chain=NullOutputChain.instance)
method next (line 38) | def next
class CopyOutputChain (line 48) | class CopyOutputChain < OutputChain
method next (line 49) | def next
FILE: lib/fluent/compat/parser.rb
type Fluent (line 34) | module Fluent
type Compat (line 35) | module Compat
class Parser (line 36) | class Parser < Fluent::Plugin::Parser
class TextParser (line 40) | class TextParser
method initialize (line 46) | def initialize
method configure (line 58) | def configure(conf, required=true)
method parse (line 74) | def parse(text, &block)
method register_template (line 84) | def self.register_template(type, template, time_format=nil)
method lookup (line 95) | def self.lookup(format)
type TypeConverterCompatParameters (line 123) | module TypeConverterCompatParameters
function convert_type_converter_parameters! (line 124) | def convert_type_converter_parameters!(conf)
class TimeParser (line 143) | class TimeParser < Fluent::TimeParser
class RegexpParser (line 147) | class RegexpParser < Fluent::Plugin::RegexpParser
method initialize (line 151) | def initialize(regexp, conf = {})
method configure (line 167) | def configure(conf)
method patterns (line 178) | def patterns
class ValuesParser (line 183) | class ValuesParser < Parser
method configure (line 191) | def configure(conf)
method values_map (line 211) | def values_map(values)
method convert_field_type! (line 238) | def convert_field_type!(record)
method convert_value_to_nil (line 246) | def convert_value_to_nil(value)
class JSONParser (line 257) | class JSONParser < Fluent::Plugin::JSONParser
method configure (line 260) | def configure(conf)
class TSVParser (line 266) | class TSVParser < Fluent::Plugin::TSVParser
method configure (line 269) | def configure(conf)
class LabeledTSVParser (line 275) | class LabeledTSVParser < Fluent::Plugin::LabeledTSVParser
method configure (line 278) | def configure(conf)
class CSVParser (line 284) | class CSVParser < Fluent::Plugin::CSVParser
method configure (line 287) | def configure(conf)
class NoneParser (line 293) | class NoneParser < Fluent::Plugin::NoneParser
class ApacheParser (line 297) | class ApacheParser < Fluent::Plugin::Apache2Parser
class SyslogParser (line 301) | class SyslogParser < Fluent::Plugin::SyslogParser
class MultilineParser (line 305) | class MultilineParser < Fluent::Plugin::MultilineParser
FILE: lib/fluent/compat/parser_utils.rb
type Fluent (line 19) | module Fluent
type Compat (line 20) | module Compat
type ParserUtils (line 21) | module ParserUtils
function convert_parser_conf (line 24) | def self.convert_parser_conf(conf)
FILE: lib/fluent/compat/propagate_default.rb
type Fluent (line 19) | module Fluent
type Compat (line 20) | module Compat
type PropagateDefault (line 21) | module PropagateDefault
function included (line 28) | def self.included(mod)
type ClassMethods (line 32) | module ClassMethods
function config_param (line 35) | def config_param(name, type = nil, **kwargs, &block)
function config_set_default (line 48) | def config_set_default(name, defval)
FILE: lib/fluent/compat/record_filter_mixin.rb
type Fluent (line 17) | module Fluent
type Compat (line 18) | module Compat
type RecordFilterMixin (line 19) | module RecordFilterMixin
function filter_record (line 20) | def filter_record(tag, time, record)
function format_stream (line 23) | def format_stream(tag, es)
FILE: lib/fluent/compat/set_tag_key_mixin.rb
type Fluent (line 21) | module Fluent
type Compat (line 22) | module Compat
type SetTagKeyMixin (line 23) | module SetTagKeyMixin
function configure (line 28) | def configure(conf)
function filter_record (line 43) | def filter_record(tag, time, record)
FILE: lib/fluent/compat/set_time_key_mixin.rb
type Fluent (line 22) | module Fluent
type Compat (line 23) | module Compat
type SetTimeKeyMixin (line 24) | module SetTimeKeyMixin
function configure (line 29) | def configure(conf)
function filter_record (line 62) | def filter_record(tag, time, record)
FILE: lib/fluent/compat/socket_util.rb
type Fluent (line 24) | module Fluent
type Compat (line 25) | module Compat
type SocketUtil (line 26) | module SocketUtil
function create_udp_socket (line 27) | def create_udp_socket(host)
class UdpHandler (line 36) | class UdpHandler < Coolio::IO
method initialize (line 37) | def initialize(io, log, body_size_limit, callback)
method on_readable (line 45) | def on_readable
class TcpHandler (line 54) | class TcpHandler < Coolio::Socket
method initialize (line 57) | def initialize(io, log, delimiter, callback)
method on_connect (line 73) | def on_connect
method on_read (line 76) | def on_read(data)
method on_close (line 91) | def on_close
class BaseInput (line 96) | class BaseInput < Fluent::Input
method initialize (line 97) | def initialize
method configure (line 114) | def configure(conf)
method start (line 121) | def start
method shutdown (line 130) | def shutdown
method run (line 139) | def run
method on_message (line 148) | def on_message(msg, addr)
FILE: lib/fluent/compat/string_util.rb
type Fluent (line 17) | module Fluent
type Compat (line 18) | module Compat
type StringUtil (line 19) | module StringUtil
function match_regexp (line 20) | def match_regexp(regexp, string)
FILE: lib/fluent/compat/structured_format_mixin.rb
type Fluent (line 17) | module Fluent
type Compat (line 18) | module Compat
type StructuredFormatMixin (line 19) | module StructuredFormatMixin
function format (line 20) | def format(tag, time, record)
FILE: lib/fluent/compat/type_converter.rb
type Fluent (line 17) | module Fluent
type Compat (line 18) | module Compat
type TypeConverter (line 19) | module TypeConverter
function included (line 40) | def self.included(klass)
function configure (line 48) | def configure(conf)
function convert_type (line 57) | def convert_type(name, value)
function parse_types_parameter (line 62) | def parse_types_parameter
FILE: lib/fluent/config.rb
type Fluent (line 22) | module Fluent
type Config (line 23) | module Config
function build (line 29) | def self.build(config_path:, encoding: 'utf-8', additional_config: n...
function parse (line 55) | def self.parse(str, fname, basepath = Dir.pwd, v1_config = nil, synt...
function new (line 85) | def self.new(name = '')
FILE: lib/fluent/config/basic_parser.rb
type Fluent (line 20) | module Fluent
type Config (line 21) | module Config
class BasicParser (line 22) | class BasicParser
method initialize (line 23) | def initialize(strscan)
type ClassMethods (line 33) | module ClassMethods
function symbol (line 34) | def symbol(string)
function def_symbol (line 38) | def def_symbol(method_name, string)
function def_literal (line 45) | def def_literal(method_name, string)
method skip (line 55) | def skip(pattern)
method scan (line 59) | def scan(pattern)
method getch (line 63) | def getch
method eof? (line 67) | def eof?
method prev_match (line 71) | def prev_match
method check (line 75) | def check(pattern)
method line_end (line 79) | def line_end
method spacing (line 83) | def spacing
method spacing_without_comment (line 87) | def spacing_without_comment
method parse_error! (line 91) | def parse_error!(message)
method error_sample (line 95) | def error_sample
FILE: lib/fluent/config/configure_proxy.rb
type Fluent (line 17) | module Fluent
type Config (line 18) | module Config
class ConfigureProxy (line 19) | class ConfigureProxy
method initialize (line 40) | def initialize(name, root: false, param_name: nil, final: nil, ini...
method variable_name (line 72) | def variable_name
method root? (line 76) | def root?
method init? (line 80) | def init?
method required? (line 84) | def required?
method multi? (line 88) | def multi?
method final? (line 92) | def final?
method merge (line 96) | def merge(other) # self is base class, other is subclass
method merge_for_finalized (line 148) | def merge_for_finalized(other)
method overwrite_defaults (line 202) | def overwrite_defaults(other) # other is owner plugin's correspond...
method option_value_type! (line 211) | def option_value_type!(name, opts, key, klass=nil, type: nil)
method config_parameter_option_validate! (line 229) | def config_parameter_option_validate!(name, type, **kwargs, &block)
method parameter_configuration (line 249) | def parameter_configuration(name, type = nil, **kwargs, &block)
method configured_in (line 300) | def configured_in(section_name)
method config_argument (line 307) | def config_argument(name, type = nil, **kwargs, &block)
method config_param (line 317) | def config_param(name, type = nil, **kwargs, &block)
method config_set_default (line 330) | def config_set_default(name, defval)
method config_set_desc (line 341) | def config_set_desc(name, description)
method desc (line 352) | def desc(description)
method config_section (line 356) | def config_section(name, **kwargs, &block)
method dump_config_definition (line 371) | def dump_config_definition
method overwrite? (line 417) | def overwrite?(other, attribute_name)
FILE: lib/fluent/config/dsl.rb
type Fluent (line 22) | module Fluent
type Config (line 23) | module Config
type DSL (line 24) | module DSL
type Parser (line 27) | module Parser
function read (line 28) | def self.read(path)
function parse (line 34) | def self.parse(source, source_path="config.rb")
class Proxy (line 39) | class Proxy
method initialize (line 40) | def initialize(name, arg, include_basepath = Dir.pwd)
method element (line 45) | def element
method include_basepath (line 49) | def include_basepath
method eval (line 53) | def eval(source, source_path)
method to_config_element (line 58) | def to_config_element
method add_element (line 64) | def add_element(name, arg, block)
class Element (line 78) | class Element < BasicObject
method initialize (line 79) | def initialize(name, arg, proxy)
method to_int (line 87) | def to_int
method method_missing (line 91) | def method_missing(name, *args, &block)
method include (line 111) | def include(*args)
method source (line 123) | def source(&block)
method match (line 127) | def match(*args, &block)
method const_missing (line 132) | def self.const_missing(name)
method ruby (line 142) | def ruby(&block)
FILE: lib/fluent/config/element.rb
type Fluent (line 20) | module Fluent
type Config (line 21) | module Config
class Element (line 22) | class Element < Hash
method initialize (line 23) | def initialize(name, arg, attrs, elements, unused = nil)
method elements (line 54) | def elements(*names, name: nil, arg: nil)
method add_element (line 67) | def add_element(name, arg = '')
method inspect (line 74) | def inspect
method pretty_print (line 80) | def pretty_print(q)
method == (line 85) | def ==(o)
method + (line 93) | def +(o)
method each_element (line 100) | def each_element(*names, &block)
method has_key? (line 112) | def has_key?(key)
method [] (line 118) | def [](key)
method check_not_fetched (line 130) | def check_not_fetched(&block)
method to_s (line 141) | def to_s(nest = 0)
method to_masked_element (line 160) | def to_masked_element
method secret_param? (line 171) | def secret_param?(key)
method param_type (line 185) | def param_type(key)
method default_value (line 197) | def default_value(key)
method dump_value (line 208) | def dump_value(k, v, nindent)
method unescape_parameter (line 232) | def self.unescape_parameter(v)
method set_target_worker_id (line 238) | def set_target_worker_id(worker_id)
method set_target_worker_ids (line 245) | def set_target_worker_ids(worker_ids)
method for_every_workers? (line 252) | def for_every_workers?
method for_this_worker? (line 256) | def for_this_worker?
method for_another_worker? (line 260) | def for_another_worker?
FILE: lib/fluent/config/error.rb
type Fluent (line 17) | module Fluent
class ConfigError (line 18) | class ConfigError < StandardError
class ConfigParseError (line 21) | class ConfigParseError < ConfigError
class ObsoletedParameterError (line 24) | class ObsoletedParameterError < ConfigError
class SetNil (line 27) | class SetNil < Exception
class SetDefault (line 30) | class SetDefault < Exception
class NotFoundPluginError (line 33) | class NotFoundPluginError < ConfigError
method initialize (line 36) | def initialize(msg, type: nil, kind: nil)
FILE: lib/fluent/config/literal_parser.rb
type Fluent (line 26) | module Fluent
type Config (line 27) | module Config
class LiteralParser (line 28) | class LiteralParser < BasicParser
method unescape_char (line 29) | def self.unescape_char(c)
method initialize (line 52) | def initialize(strscan, eval_context)
method parse_literal (line 67) | def parse_literal(string_boundary_charset = LINE_END)
method scan_string (line 80) | def scan_string(string_boundary_charset = LINE_END)
method scan_double_quoted_string (line 90) | def scan_double_quoted_string
method scan_single_quoted_string (line 119) | def scan_single_quoted_string
method scan_nonquoted_string (line 136) | def scan_nonquoted_string(boundary_charset = LINE_END)
method scan_embedded_code (line 157) | def scan_embedded_code
method eval_embedded_code (line 183) | def eval_embedded_code(code)
method eval_escape_char (line 201) | def eval_escape_char(c)
method scan_json (line 226) | def scan_json(is_array)
FILE: lib/fluent/config/parser.rb
type Fluent (line 22) | module Fluent
type Config (line 23) | module Config
class Parser (line 24) | class Parser
method parse (line 25) | def self.parse(io, fname, basepath = Dir.pwd)
method initialize (line 30) | def initialize(basepath, iterator, fname, i = 0)
method parse! (line 37) | def parse!(allow_include, elem_name = nil, attrs = {}, elems = [])
method process_include (line 74) | def process_include(attrs, elems, uri, allow_include = true)
FILE: lib/fluent/config/section.rb
type Fluent (line 22) | module Fluent
type Config (line 23) | module Config
class Section (line 24) | class Section < BasicObject
method name (line 25) | def self.name
method initialize (line 29) | def initialize(params = {}, config_element = nil)
method corresponding_config_element (line 37) | def corresponding_config_element
method class (line 41) | def class
method to_s (line 45) | def to_s
method inspect (line 49) | def inspect
method pretty_print (line 54) | def pretty_print(q)
method nil? (line 58) | def nil?
method to_h (line 62) | def to_h
method dup (line 66) | def dup
method + (line 70) | def +(other)
method instance_of? (line 74) | def instance_of?(mod)
method kind_of? (line 78) | def kind_of?(mod)
method [] (line 83) | def [](key)
method []= (line 87) | def []=(key, value)
method respond_to? (line 91) | def respond_to?(symbol, include_all=false)
method respond_to_missing? (line 104) | def respond_to_missing?(symbol, include_private)
method method_missing (line 108) | def method_missing(name, *args)
type SectionGenerator (line 117) | module SectionGenerator
function generate (line 118) | def self.generate(proxy, conf, logger, plugin_class, stack = [], s...
function check_unused_section (line 252) | def self.check_unused_section(proxy, conf, plugin_class)
FILE: lib/fluent/config/types.rb
type Fluent (line 21) | module Fluent
type Config (line 22) | module Config
function reformatted_value (line 23) | def self.reformatted_value(type, val, opts = {}, name = nil)
function size_value (line 27) | def self.size_value(str, opts = {}, name = nil)
function time_value (line 44) | def self.time_value(str, opts = {}, name = nil)
function bool_value (line 61) | def self.bool_value(str, opts = {}, name = nil)
function regexp_value (line 84) | def self.regexp_value(str, opts = {}, name = nil)
function string_value (line 99) | def self.string_value(val, opts = {}, name = nil)
function symbol_value (line 111) | def self.symbol_value(val, opts = {}, name = nil)
function enum_value (line 121) | def self.enum_value(val, opts = {}, name = nil)
function hash_value (line 200) | def self.hash_value(val, opts = {}, name = nil)
function array_value (line 227) | def self.array_value(val, opts = {}, name = nil)
FILE: lib/fluent/config/v1_parser.rb
type Fluent (line 25) | module Fluent
type Config (line 26) | module Config
class V1Parser (line 27) | class V1Parser < LiteralParser
method parse (line 30) | def self.parse(data, fname, basepath = Dir.pwd, eval_context = nil...
method initialize (line 36) | def initialize(strscan, include_basepath, fname, eval_context, on_...
method parse! (line 44) | def parse!
method parse_element (line 60) | def parse_element(root_element, elem_name, attrs = {}, elems = [])
method parse_include (line 147) | def parse_include(attrs, elems)
method eval_include (line 153) | def eval_include(attrs, elems, uri)
method error_sample (line 195) | def error_sample
FILE: lib/fluent/config/yaml_parser.rb
type Fluent (line 21) | module Fluent
type Config (line 22) | module Config
type YamlParser (line 23) | module YamlParser
function parse (line 24) | def self.parse(path, on_file_parsed: nil)
FILE: lib/fluent/config/yaml_parser/fluent_value.rb
type Fluent (line 17) | module Fluent
type Config (line 18) | module Config
type YamlParser (line 19) | module YamlParser
type FluentValue (line 20) | module FluentValue
function to_s (line 22) | def to_s
function to_element (line 26) | def to_element
function to_s (line 32) | def to_s
function to_element (line 40) | def to_element
FILE: lib/fluent/config/yaml_parser/loader.rb
type Fluent (line 24) | module Fluent
type Config (line 25) | module Config
type YamlParser (line 26) | module YamlParser
class Loader (line 27) | class Loader
method initialize (line 33) | def initialize(context = Kernel.binding, on_file_parsed: nil)
method load (line 41) | def load(path)
method eval_include (line 68) | def eval_include(path, parent)
class Visitor (line 85) | class Visitor < Psych::Visitors::ToRuby
method initialize (line 86) | def initialize(scanner, class_loader)
method _register_domain (line 90) | def _register_domain(name, &block)
method revive_hash (line 94) | def revive_hash(hash, o)
FILE: lib/fluent/config/yaml_parser/parser.rb
type Fluent (line 19) | module Fluent
type Config (line 20) | module Config
type YamlParser (line 21) | module YamlParser
class Parser (line 22) | class Parser
method initialize (line 23) | def initialize(config, indent: 2)
method build (line 28) | def build
method system_config_build (line 36) | def system_config_build(config)
method config_build (line 40) | def config_build(config, indent: 0, root: false)
method label_build (line 69) | def label_build(config, indent: 0)
method worker_build (line 76) | def worker_build(config, indent: 0)
method source_build (line 83) | def source_build(config, indent: 0)
method filter_build (line 87) | def filter_build(config, indent: 0)
method match_build (line 97) | def match_build(config, indent: 0)
method included_sections_build (line 107) | def included_sections_build(config, section_builder, indent: 0)
method section_build (line 126) | def section_build(name, config, indent: 0, arg: nil)
method section? (line 172) | def section?(value)
FILE: lib/fluent/config/yaml_parser/section_builder.rb
type Fluent (line 17) | module Fluent
type Config (line 18) | module Config
type YamlParser (line 19) | module YamlParser
function to_s (line 21) | def to_s
function to_element (line 31) | def to_element
class RootBuilder (line 40) | class RootBuilder
method initialize (line 41) | def initialize(system, conf)
method to_element (line 48) | def to_element
method to_s (line 52) | def to_s
class SectionBodyBuilder (line 61) | class SectionBodyBuilder
method to_s (line 63) | def to_s
method initialize (line 68) | def initialize(indent, root: false)
method add_line (line 74) | def add_line(k, v)
method add_section (line 78) | def add_section(section)
method to_element (line 82) | def to_element
method to_s (line 101) | def to_s
FILE: lib/fluent/configurable.rb
type Fluent (line 24) | module Fluent
type Configurable (line 25) | module Configurable
function included (line 26) | def self.included(mod)
function initialize (line 30) | def initialize
function configure_proxy_generate (line 51) | def configure_proxy_generate
function configured_section_create (line 65) | def configured_section_create(name, conf = nil)
function configure (line 77) | def configure(conf, strict_config_value=false)
function config (line 106) | def config
function register_type (line 112) | def self.register_type(type, callable = nil, &block)
function lookup_type (line 117) | def self.lookup_type(type)
type ClassMethods (line 136) | module ClassMethods
function configure_proxy_map (line 137) | def configure_proxy_map
function configure_proxy (line 143) | def configure_proxy(mod_name)
function configured_in (line 153) | def configured_in(section_name)
function config_param (line 157) | def config_param(name, type = nil, **kwargs, &block)
function config_set_default (line 163) | def config_set_default(name, defval)
function config_set_desc (line 167) | def config_set_desc(name, desc)
function config_section (line 171) | def config_section(name, **kwargs, &block)
function desc (line 180) | def desc(description)
function merged_configure_proxy (line 184) | def merged_configure_proxy
function dump_config_definition (line 196) | def dump_config_definition
FILE: lib/fluent/counter.rb
type Fluent (line 20) | module Fluent
type Counter (line 21) | module Counter
FILE: lib/fluent/counter/base_socket.rb
type Fluent (line 20) | module Fluent
type Counter (line 21) | module Counter
class BaseSocket (line 22) | class BaseSocket < Coolio::TCPSocket
method packed_write (line 23) | def packed_write(data)
method on_read (line 27) | def on_read(data)
method on_message (line 33) | def on_message(data)
method pack (line 39) | def pack(data)
FILE: lib/fluent/counter/client.rb
type Fluent (line 22) | module Fluent
type Counter (line 23) | module Counter
class Client (line 24) | class Client
method initialize (line 30) | def initialize(loop = nil, opt = {})
method start (line 43) | def start
method stop (line 55) | def stop
method establish (line 60) | def establish(scope)
method init (line 80) | def init(params, options: {})
method delete (line 95) | def delete(*params, options: {})
method inc (line 115) | def inc(params, options: {})
method get (line 129) | def get(*params, options: {})
method reset (line 142) | def reset(*params, options: {})
method exist_scope! (line 157) | def exist_scope!
method on_message (line 161) | def on_message(data)
method send_request (line 169) | def send_request(method, scope, params, opt = {})
method build_request (line 179) | def build_request(method, id, scope = nil, params = nil, options =...
method generate_id (line 187) | def generate_id
class Connection (line 198) | class Connection < Fluent::Counter::BaseSocket
method initialize (line 199) | def initialize(io, on_message)
method send_data (line 206) | def send_data(data)
method on_connect (line 214) | def on_connect
method on_close (line 220) | def on_close
method on_message (line 224) | def on_message(data)
class Future (line 229) | class Future
class Result (line 230) | class Result
method initialize (line 233) | def initialize(result)
method success? (line 238) | def success?
method error? (line 242) | def error?
method initialize (line 247) | def initialize(loop, mutex)
method set (line 254) | def set(v)
method errors (line 259) | def errors
method errors? (line 263) | def errors?
method data (line 268) | def data
method get (line 272) | def get
method wait (line 278) | def wait
method join (line 288) | def join
FILE: lib/fluent/counter/error.rb
type Fluent (line 17) | module Fluent
type Counter (line 18) | module Counter
class BaseError (line 19) | class BaseError < StandardError
method to_hash (line 20) | def to_hash
method code (line 24) | def code
class InvalidParams (line 29) | class InvalidParams < BaseError
method code (line 30) | def code
class UnknownKey (line 35) | class UnknownKey < BaseError
method code (line 36) | def code
class ParseError (line 41) | class ParseError < BaseError
method code (line 42) | def code
class InvalidRequest (line 47) | class InvalidRequest < BaseError
method code (line 48) | def code
class MethodNotFound (line 53) | class MethodNotFound < BaseError
method code (line 54) | def code
class InternalServerError (line 59) | class InternalServerError < BaseError
method code (line 60) | def code
function raise_error (line 65) | def raise_error(response)
FILE: lib/fluent/counter/mutex_hash.rb
type Fluent (line 19) | module Fluent
type Counter (line 20) | module Counter
class MutexHash (line 21) | class MutexHash
method initialize (line 22) | def initialize(data_store)
method start (line 30) | def start
method stop (line 35) | def stop
method synchronize (line 40) | def synchronize(*keys)
method synchronize_keys (line 74) | def synchronize_keys(*keys)
class CleanupThread (line 101) | class CleanupThread
method initialize (line 104) | def initialize(store, mutex_hash, mutex)
method start (line 112) | def start
method stop (line 122) | def stop
method run_once (line 137) | def run_once
FILE: lib/fluent/counter/server.rb
type Fluent (line 23) | module Fluent
type Counter (line 24) | module Counter
class Server (line 25) | class Server
method initialize (line 29) | def initialize(name, opt = {})
method start (line 46) | def start
method stop (line 58) | def stop
method on_message (line 68) | def on_message(data)
method establish (line 84) | def establish(params, _scope, _options)
method init (line 98) | def init(params, scope, options)
method delete (line 126) | def delete(params, scope, options)
method inc (line 151) | def inc(params, scope, options)
method reset (line 181) | def reset(params, scope, options)
method get (line 206) | def get(params, scope, _options)
method safe_run (line 224) | def safe_run
class Response (line 233) | class Response
method initialize (line 234) | def initialize(errors = [], data = [])
method push_error (line 239) | def push_error(error)
method push_data (line 243) | def push_data(data)
method to_hash (line 247) | def to_hash
class Handler (line 261) | class Handler < Fluent::Counter::BaseSocket
method initialize (line 262) | def initialize(io, on_message)
method on_message (line 267) | def on_message(data)
FILE: lib/fluent/counter/store.rb
type Fluent (line 22) | module Fluent
type Counter (line 23) | module Counter
class Store (line 24) | class Store
method gen_key (line 25) | def self.gen_key(scope, key)
method initialize (line 29) | def initialize(opt = {})
class DummyParent (line 43) | class DummyParent
method initialize (line 48) | def initialize(log)
method plugin_id (line 52) | def plugin_id
method plugin_id_configured? (line 56) | def plugin_id_configured?
method plugin_root_dir (line 61) | def plugin_root_dir
method start (line 66) | def start
method stop (line 70) | def stop
method init (line 74) | def init(key, data, ignore: false)
method get (line 85) | def get(key, raise_error: false, raw: false)
method key? (line 98) | def key?(key)
method delete (line 102) | def delete(key)
method inc (line 107) | def inc(key, data, force: false)
method reset (line 122) | def reset(key)
method build_response (line 148) | def build_response(d)
method build_value (line 161) | def build_value(data)
method initial_value (line 177) | def initial_value(type)
method valid_type! (line 185) | def valid_type!(v, value)
method type_str (line 191) | def type_str(v)
FILE: lib/fluent/counter/validator.rb
type Fluent (line 19) | module Fluent
type Counter (line 20) | module Counter
class Validator (line 21) | class Validator
method request (line 26) | def self.request(data)
method initialize (line 45) | def initialize(*types)
method call (line 50) | def call(data)
method dispatch (line 72) | def dispatch(type, data)
class ArrayValidator (line 79) | class ArrayValidator < Validator
method validate_key! (line 80) | def validate_key!(name)
method validate_scope! (line 90) | def validate_scope!(name)
class HashValidator (line 101) | class HashValidator < Validator
method validate_name! (line 102) | def validate_name!(hash)
method validate_value! (line 117) | def validate_value!(hash)
method validate_reset_interval! (line 128) | def validate_reset_interval!(hash)
FILE: lib/fluent/daemonizer.rb
type Fluent (line 19) | module Fluent
class Daemonizer (line 20) | class Daemonizer
method daemonize (line 21) | def self.daemonize(pid_path, args = [], &block)
method daemonize (line 25) | def daemonize(pid_path, args = [])
method daemonize_with_spawn (line 45) | def daemonize_with_spawn(pid_fullpath, args)
method check_pidfile (line 53) | def check_pidfile(pid_path)
method install_at_exit_handlers (line 80) | def install_at_exit_handlers(pidfile)
FILE: lib/fluent/engine.rb
type Fluent (line 28) | module Fluent
class EngineClass (line 29) | class EngineClass
method initialize (line 33) | def initialize
method init (line 54) | def init(system_config, supervisor_mode: false, start_in_parallel: f...
method log (line 68) | def log
method parse_config (line 72) | def parse_config(io, fname, basepath = Dir.pwd, v1_config = false)
method run_configure (line 81) | def run_configure(conf, dry_run: false)
method configure (line 106) | def configure(conf)
method add_plugin_dir (line 120) | def add_plugin_dir(dir)
method emit (line 125) | def emit(tag, time, record)
method emit_array (line 129) | def emit_array(tag, array)
method emit_stream (line 133) | def emit_stream(tag, es)
method flush! (line 137) | def flush!
method cancel_source_only! (line 143) | def cancel_source_only!
method now (line 149) | def now
method run (line 154) | def run
method reload_config (line 181) | def reload_config(conf, supervisor: false)
method stop (line 220) | def stop
method push_log_event (line 225) | def push_log_event(tag, time, record)
method worker_id (line 229) | def worker_id
method stop_phase (line 243) | def stop_phase(root_agent)
method start_phase (line 254) | def start_phase(root_agent)
method start (line 263) | def start
FILE: lib/fluent/env.rb
type Fluent (line 22) | module Fluent
function windows? (line 33) | def self.windows?
function linux? (line 37) | def self.linux?
function macos? (line 41) | def self.macos?
FILE: lib/fluent/error.rb
type Fluent (line 17) | module Fluent
class UnrecoverableError (line 18) | class UnrecoverableError < StandardError
method initialize (line 19) | def initialize(error_message = nil)
method to_s (line 23) | def to_s
class InvalidRootDirectory (line 28) | class InvalidRootDirectory < UnrecoverableError
class InvalidLockDirectory (line 31) | class InvalidLockDirectory < UnrecoverableError
class UncatchableError (line 35) | class UncatchableError < Exception
FILE: lib/fluent/event.rb
type Fluent (line 20) | module Fluent
class EventStream (line 21) | class EventStream
method dup (line 26) | def dup
method size (line 30) | def size
method empty? (line 35) | def empty?
method == (line 40) | def ==(other)
method repeatable? (line 44) | def repeatable?
method slice (line 48) | def slice(index, num)
method each (line 52) | def each(unpacker: nil, &block)
method to_msgpack_stream (line 56) | def to_msgpack_stream(time_int: false, packer: nil)
method to_compressed_msgpack_stream (line 65) | def to_compressed_msgpack_stream(time_int: false, packer: nil, type:...
method to_msgpack_stream_forced_integer (line 70) | def to_msgpack_stream_forced_integer(packer: nil)
class OneEventStream (line 79) | class OneEventStream < EventStream
method initialize (line 80) | def initialize(time, record)
method dup (line 85) | def dup
method empty? (line 89) | def empty?
method size (line 93) | def size
method repeatable? (line 97) | def repeatable?
method slice (line 101) | def slice(index, num)
method each (line 109) | def each(unpacker: nil, &block)
class ArrayEventStream (line 119) | class ArrayEventStream < EventStream
method initialize (line 120) | def initialize(entries)
method dup (line 124) | def dup
method size (line 129) | def size
method repeatable? (line 133) | def repeatable?
method empty? (line 137) | def empty?
method slice (line 141) | def slice(index, num)
method each (line 145) | def each(unpacker: nil, &block)
class MultiEventStream (line 161) | class MultiEventStream < EventStream
method initialize (line 162) | def initialize(time_array = [], record_array = [])
method dup (line 167) | def dup
method size (line 171) | def size
method add (line 175) | def add(time, record)
method repeatable? (line 180) | def repeatable?
method empty? (line 184) | def empty?
method slice (line 188) | def slice(index, num)
method each (line 192) | def each(unpacker: nil, &block)
class MessagePackEventStream (line 202) | class MessagePackEventStream < EventStream
method initialize (line 206) | def initialize(data, cached_unpacker = nil, size = 0, unpacked_times...
method empty? (line 213) | def empty?
method dup (line 217) | def dup
method size (line 225) | def size
method repeatable? (line 232) | def repeatable?
method ensure_unpacked! (line 236) | def ensure_unpacked!(unpacker: nil)
method slice (line 251) | def slice(index, num)
method each (line 256) | def each(unpacker: nil, &block)
method to_msgpack_stream (line 264) | def to_msgpack_stream(time_int: false, packer: nil)
class CompressedMessagePackEventStream (line 270) | class CompressedMessagePackEventStream < MessagePackEventStream
method initialize (line 271) | def initialize(data, cached_unpacker = nil, size = 0, unpacked_times...
method empty? (line 278) | def empty?
method ensure_unpacked! (line 283) | def ensure_unpacked!(unpacker: nil)
method each (line 288) | def each(unpacker: nil, &block)
method to_msgpack_stream (line 293) | def to_msgpack_stream(time_int: false, packer: nil)
method to_compressed_msgpack_stream (line 298) | def to_compressed_msgpack_stream(time_int: false, packer: nil)
method ensure_decompressed! (line 305) | def ensure_decompressed!
type ChunkMessagePackEventStreamer (line 311) | module ChunkMessagePackEventStreamer
function each (line 314) | def each(unpacker: nil, &block)
function to_msgpack_stream (line 326) | def to_msgpack_stream(time_int: false, packer: nil)
FILE: lib/fluent/event_router.rb
type Fluent (line 22) | module Fluent
class EventRouter (line 44) | class EventRouter
method initialize (line 45) | def initialize(default_collector, emit_error_handler)
class Rule (line 57) | class Rule
method initialize (line 58) | def initialize(pattern, collector)
method match? (line 69) | def match?(tag)
method suppress_missing_match! (line 77) | def suppress_missing_match!
method add_rule (line 84) | def add_rule(pattern, collector)
method add_metric_callbacks (line 88) | def add_metric_callbacks(caller_plugin_id, callback)
method caller_plugin_id= (line 92) | def caller_plugin_id=(caller_plugin_id)
method find_callback (line 96) | def find_callback
method emit (line 104) | def emit(tag, time, record)
method emit_array (line 110) | def emit_array(tag, array)
method emit_stream (line 114) | def emit_stream(tag, es)
method emit_error_event (line 125) | def emit_error_event(tag, time, record, error)
method match? (line 129) | def match?(tag)
method match (line 133) | def match(tag)
class MatchCache (line 140) | class MatchCache
method initialize (line 143) | def initialize
method get (line 149) | def get(key)
class Pipeline (line 165) | class Pipeline
class OutputError (line 167) | class OutputError < StandardError
method initialize (line 171) | def initialize(internal_error, processed_es)
method initialize (line 177) | def initialize
method add_filter (line 183) | def add_filter(filter)
method set_output (line 188) | def set_output(output)
method emit_events (line 192) | def emit_events(tag, es)
class FilterOptimizer (line 202) | class FilterOptimizer
method initialize (line 203) | def initialize(filters = [])
method filters= (line 208) | def filters=(filters)
method filter_stream (line 213) | def filter_stream(tag, es)
method optimized_filter_stream (line 227) | def optimized_filter_stream(tag, es)
method optimizable? (line 260) | def optimizable?
method filters_having_filter_stream (line 274) | def filters_having_filter_stream
method reset_optimization (line 280) | def reset_optimization
method find (line 287) | def find(tag)
FILE: lib/fluent/file_wrapper.rb
type Fluent (line 22) | module Fluent
type FileWrapper (line 23) | module FileWrapper
function open (line 24) | def self.open(path, mode='r')
function stat (line 35) | def self.stat(path)
class WindowsFile (line 43) | class WindowsFile
method initialize (line 50) | def initialize(path, mode_enc='r')
method close (line 62) | def close
method ino (line 72) | def ino
method stat (line 82) | def stat
method mode2flags (line 92) | def mode2flags(mode)
method delete_pending (line 124) | def delete_pending
FILE: lib/fluent/filter.rb
type Fluent (line 19) | module Fluent
FILE: lib/fluent/fluent_log_event_router.rb
type Fluent (line 19) | module Fluent
class NullFluentLogEventRouter (line 21) | class NullFluentLogEventRouter
method start (line 22) | def start; end
method stop (line 24) | def stop; end
method graceful_stop (line 26) | def graceful_stop; end
method emit_event (line 28) | def emit_event(_event); end
method emittable? (line 30) | def emittable?
class FluentLogEventRouter (line 37) | class FluentLogEventRouter < NullFluentLogEventRouter
method build (line 39) | def self.build(root_agent)
method initialize (line 85) | def initialize(event_router)
method start (line 92) | def start
method stop (line 123) | def stop
method graceful_stop (line 129) | def graceful_stop
method emit_event (line 135) | def emit_event(event)
FILE: lib/fluent/formatter.rb
type Fluent (line 19) | module Fluent
FILE: lib/fluent/input.rb
type Fluent (line 19) | module Fluent
FILE: lib/fluent/label.rb
type Fluent (line 19) | module Fluent
class Label (line 20) | class Label < Agent
method initialize (line 21) | def initialize(name, log:)
method configure (line 30) | def configure(conf)
method emit_error_event (line 38) | def emit_error_event(tag, time, record, e)
method handle_emits_error (line 42) | def handle_emits_error(tag, es, e)
FILE: lib/fluent/log.rb
type Fluent (line 20) | module Fluent
class Log (line 21) | class Log
type TTYColor (line 22) | module TTYColor
method str_to_level (line 56) | def self.str_to_level(log_level_str)
method event_tags (line 68) | def self.event_tags
method per_process_path (line 78) | def self.per_process_path(path, process_type, worker_id)
method initialize (line 90) | def initialize(logger, opts={})
method dup (line 167) | def dup
method logdev= (line 193) | def logdev=(logdev)
method format= (line 199) | def format=(fmt)
method time_format= (line 231) | def time_format=(time_fmt)
method stdout? (line 236) | def stdout?
method reopen! (line 240) | def reopen!
method force_stacktrace_level? (line 245) | def force_stacktrace_level?
method force_stacktrace_level (line 249) | def force_stacktrace_level(level)
method enable_debug (line 253) | def enable_debug(b=true)
method enable_event (line 258) | def enable_event(b=true)
method disable_events (line 265) | def disable_events(thread)
method enable_color? (line 270) | def enable_color?
method enable_color (line 274) | def enable_color(b=true)
method log_type (line 295) | def log_type(args)
method skipped_type? (line 304) | def skipped_type?(type)
method on_trace (line 317) | def on_trace
method trace (line 322) | def trace(*args, &block)
method trace_backtrace (line 335) | def trace_backtrace(backtrace=$!.backtrace, type: :default)
method on_debug (line 339) | def on_debug
method debug (line 344) | def debug(*args, &block)
method debug_backtrace (line 356) | def debug_backtrace(backtrace=$!.backtrace, type: :default)
method on_info (line 360) | def on_info
method info (line 365) | def info(*args, &block)
method info_backtrace (line 377) | def info_backtrace(backtrace=$!.backtrace, type: :default)
method on_warn (line 381) | def on_warn
method warn (line 386) | def warn(*args, &block)
method warn_backtrace (line 398) | def warn_backtrace(backtrace=$!.backtrace, type: :default)
method on_error (line 402) | def on_error
method error (line 407) | def error(*args, &block)
method error_backtrace (line 419) | def error_backtrace(backtrace=$!.backtrace, type: :default)
method on_fatal (line 423) | def on_fatal
method fatal (line 428) | def fatal(*args, &block)
method fatal_backtrace (line 440) | def fatal_backtrace(backtrace=$!.backtrace, type: :default)
method puts (line 444) | def puts(msg)
method write (line 453) | def write(data)
method flush (line 460) | def flush
method reset (line 464) | def reset
method ignore_repeated_log? (line 470) | def ignore_repeated_log?(key, time, message)
method ignore_same_log? (line 476) | def ignore_same_log?(time, message)
method suppress_stacktrace? (line 504) | def suppress_stacktrace?(backtrace)
method dump_stacktrace (line 510) | def dump_stacktrace(type, backtrace, level)
method dump_stacktrace_internal (line 520) | def dump_stacktrace_internal(type, backtrace, level)
method get_worker_id (line 563) | def get_worker_id(type)
method event (line 571) | def event(level, args)
method caller_line (line 617) | def caller_line(type, time, depth, level)
method format_time (line 636) | def format_time(time)
class PluginLogger (line 647) | class PluginLogger < Log
method initialize (line 648) | def initialize(logger)
method level= (line 671) | def level=(log_level_str)
method format= (line 679) | def format=(fmt)
method time_format= (line 684) | def time_format=(fmt)
method enable_color (line 689) | def enable_color(b = true)
type PluginLoggerMixin (line 702) | module PluginLoggerMixin
function included (line 703) | def self.included(klass)
function initialize (line 710) | def initialize
function configure (line 718) | def configure(conf)
function terminate (line 735) | def terminate
class LogDeviceIO (line 743) | class LogDeviceIO < ::Logger::LogDevice
method flush (line 744) | def flush
method tty? (line 752) | def tty?
method sync= (line 760) | def sync=(v)
method reopen (line 768) | def reopen(path, mode)
FILE: lib/fluent/log/console_adapter.rb
type Fluent (line 19) | module Fluent
class Log (line 20) | class Log
class ConsoleAdapter (line 24) | class ConsoleAdapter < Console::Output::Terminal
method wrap (line 25) | def self.wrap(logger)
method initialize (line 36) | def initialize(logger)
method call (line 51) | def call(subject = nil, *arguments, name: nil, severity: 'info', *...
FILE: lib/fluent/match.rb
type Fluent (line 17) | module Fluent
class MatchPattern (line 18) | class MatchPattern
method create (line 19) | def self.create(str)
class AllMatchPattern (line 28) | class AllMatchPattern < MatchPattern
method match (line 29) | def match(str)
class GlobMatchPattern (line 34) | class GlobMatchPattern < MatchPattern
method initialize (line 35) | def initialize(pat)
method match (line 136) | def match(str)
class OrMatchPattern (line 141) | class OrMatchPattern < MatchPattern
method initialize (line 142) | def initialize(patterns)
method match (line 146) | def match(str)
class NoMatchMatch (line 151) | class NoMatchMatch
method initialize (line 152) | def initialize(log)
method suppress_missing_match! (line 158) | def suppress_missing_match!
method emit_events (line 163) | def emit_events(tag, es)
method start (line 181) | def start
method shutdown (line 184) | def shutdown
FILE: lib/fluent/mixin.rb
type Fluent (line 25) | module Fluent
FILE: lib/fluent/msgpack_factory.rb
type Fluent (line 20) | module Fluent
type MessagePackFactory (line 21) | module MessagePackFactory
type Mixin (line 24) | module Mixin
function msgpack_factory (line 25) | def msgpack_factory
function msgpack_packer (line 32) | def msgpack_packer(*args)
function msgpack_unpacker (line 39) | def msgpack_unpacker(*args)
function deprecated_log (line 46) | def deprecated_log(str)
function engine_factory (line 54) | def self.engine_factory(enable_time_support: false)
function msgpack_packer (line 58) | def self.msgpack_packer(*args)
function msgpack_unpacker (line 62) | def self.msgpack_unpacker(*args)
function factory (line 66) | def self.factory(enable_time_support: false)
function packer (line 78) | def self.packer(*args)
function unpacker (line 82) | def self.unpacker(*args)
function init (line 86) | def self.init(enable_time_support: false)
function thread_local_msgpack_packer (line 98) | def self.thread_local_msgpack_packer
function thread_local_msgpack_unpacker (line 102) | def self.thread_local_msgpack_unpacker
FILE: lib/fluent/oj_options.rb
type Fluent (line 3) | module Fluent
class OjOptions (line 4) | class OjOptions
method available? (line 24) | def self.available?
method load_env (line 28) | def self.load_env
method get_options (line 42) | def self.get_options
FILE: lib/fluent/output.rb
type Fluent (line 20) | module Fluent
FILE: lib/fluent/output_chain.rb
type Fluent (line 19) | module Fluent
FILE: lib/fluent/parser.rb
type Fluent (line 19) | module Fluent
FILE: lib/fluent/plugin.rb
type Fluent (line 20) | module Fluent
type Plugin (line 21) | module Plugin
function register_input (line 43) | def self.register_input(type, klass)
function register_output (line 47) | def self.register_output(type, klass)
function register_filter (line 51) | def self.register_filter(type, klass)
function register_buffer (line 55) | def self.register_buffer(type, klass)
function register_sd (line 59) | def self.register_sd(type, klass)
function register_metrics (line 63) | def self.register_metrics(type, klass)
function register_parser (line 67) | def self.register_parser(type, klass_or_proc)
function register_formatter (line 77) | def self.register_formatter(type, klass_or_proc)
function register_storage (line 87) | def self.register_storage(type, klass)
function lookup_type_from_class (line 91) | def self.lookup_type_from_class(klass_or_its_name)
function add_plugin_dir (line 102) | def self.add_plugin_dir(dir)
function new_input (line 109) | def self.new_input(type)
function new_output (line 113) | def self.new_output(type)
function new_filter (line 117) | def self.new_filter(type)
function new_buffer (line 121) | def self.new_buffer(type, parent: nil)
function new_sd (line 125) | def self.new_sd(type, parent: nil)
function new_metrics (line 129) | def self.new_metrics(type, parent: nil)
function new_parser (line 138) | def self.new_parser(type, parent: nil)
function new_formatter (line 150) | def self.new_formatter(type, parent: nil)
function new_storage (line 154) | def self.new_storage(type, parent: nil)
function register_impl (line 158) | def self.register_impl(kind, registry, type, value)
function new_impl (line 167) | def self.new_impl(kind, registry, type, parent=nil)
type FeatureAvailabilityChecker (line 185) | module FeatureAvailabilityChecker
function configure (line 186) | def configure(conf)
FILE: lib/fluent/plugin/bare_output.rb
type Fluent (line 23) | module Fluent
type Plugin (line 24) | module Plugin
class BareOutput (line 25) | class BareOutput < Base
method process (line 39) | def process(tag, es)
method initialize (line 43) | def initialize
method configure (line 53) | def configure(conf)
method statistics (line 63) | def statistics
method emit_sync (line 74) | def emit_sync(tag, es)
FILE: lib/fluent/plugin/base.rb
type Fluent (line 21) | module Fluent
type Plugin (line 22) | module Plugin
class Base (line 23) | class Base
method initialize (line 31) | def initialize
method has_router? (line 41) | def has_router?
method plugin_root_dir (line 45) | def plugin_root_dir
method fluentd_worker_id (line 49) | def fluentd_worker_id
method configure (line 55) | def configure(conf)
method multi_workers_ready? (line 68) | def multi_workers_ready?
method get_lock_path (line 72) | def get_lock_path(name)
method acquire_worker_lock (line 77) | def acquire_worker_lock(name)
method string_safe_encoding (line 90) | def string_safe_encoding(str)
method context_router= (line 98) | def context_router=(router)
method context_router (line 102) | def context_router
method start (line 106) | def start
method after_start (line 117) | def after_start
method stop (line 122) | def stop
method before_shutdown (line 127) | def before_shutdown
method shutdown (line 132) | def shutdown
method after_shutdown (line 137) | def after_shutdown
method close (line 142) | def close
method terminate (line 147) | def terminate
method configured? (line 152) | def configured?
method started? (line 156) | def started?
method after_started? (line 160) | def after_started?
method stopped? (line 164) | def stopped?
method before_shutdown? (line 168) | def before_shutdown?
method shutdown? (line 172) | def shutdown?
method after_shutdown? (line 176) | def after_shutdown?
method closed? (line 180) | def closed?
method terminated? (line 184) | def terminated?
method called_in_test? (line 188) | def called_in_test?
method inspect (line 200) | def inspect
method reloadable_plugin? (line 208) | def reloadable_plugin?
FILE: lib/fluent/plugin/buf_file.rb
type Fluent (line 24) | module Fluent
type Plugin (line 25) | module Plugin
class FileBuffer (line 26) | class FileBuffer < Fluent::Plugin::Buffer
method initialize (line 45) | def initialize
method configure (line 54) | def configure(conf)
method multi_workers_ready? (line 114) | def multi_workers_ready?
method start (line 121) | def start
method stop (line 127) | def stop
method persistent? (line 135) | def persistent?
method resume (line 139) | def resume
method generate_chunk (line 205) | def generate_chunk(metadata)
method handle_broken_files (line 214) | def handle_broken_files(path, mode, e)
method evacuate_chunk (line 232) | def evacuate_chunk(chunk)
method escaped_patterns (line 248) | def escaped_patterns(patterns)
FILE: lib/fluent/plugin/buf_file_single.rb
type Fluent (line 24) | module Fluent
type Plugin (line 25) | module Plugin
class FileSingleBuffer (line 26) | class FileSingleBuffer < Fluent::Plugin::Buffer
method initialize (line 51) | def initialize
method configure (line 59) | def configure(conf)
method multi_workers_ready? (line 135) | def multi_workers_ready?
method start (line 142) | def start
method stop (line 148) | def stop
method persistent? (line 156) | def persistent?
method resume (line 160) | def resume
method generate_chunk (line 216) | def generate_chunk(metadata)
method handle_broken_files (line 226) | def handle_broken_files(path, mode, e)
method evacuate_chunk (line 244) | def evacuate_chunk(chunk)
method escaped_patterns (line 260) | def escaped_patterns(patterns)
FILE: lib/fluent/plugin/buf_memory.rb
type Fluent (line 20) | module Fluent
type Plugin (line 21) | module Plugin
class MemoryBuffer (line 22) | class MemoryBuffer < Fluent::Plugin::Buffer
method resume (line 25) | def resume
method generate_chunk (line 29) | def generate_chunk(metadata)
FILE: lib/fluent/plugin/buffer.rb
type Fluent (line 24) | module Fluent
type Plugin (line 25) | module Plugin
class Buffer (line 26) | class Buffer < Base
class BufferError (line 33) | class BufferError < StandardError; end
class BufferOverflowError (line 34) | class BufferOverflowError < BufferError; end
class BufferChunkOverflowError (line 35) | class BufferChunkOverflowError < BufferError; end
method initialize (line 73) | def initialize(timekey, tag, variables)
method dup_next (line 77) | def dup_next
method empty? (line 83) | def empty?
method cmp_variables (line 87) | def cmp_variables(v1, v2)
method <=> (line 123) | def <=>(o)
method hash (line 160) | def hash
method initialize (line 172) | def initialize
method stage_size (line 201) | def stage_size
method stage_size= (line 205) | def stage_size=(value)
method queue_size (line 209) | def queue_size
method queue_size= (line 213) | def queue_size=(value)
method persistent? (line 217) | def persistent?
method configure (line 221) | def configure(conf)
method enable_update_timekeys (line 251) | def enable_update_timekeys
method start (line 255) | def start
method close (line 271) | def close
method terminate (line 287) | def terminate
method storable? (line 296) | def storable?
method resume (line 305) | def resume
method generate_chunk (line 310) | def generate_chunk(metadata)
method new_metadata (line 314) | def new_metadata(timekey: nil, tag: nil, variables: nil)
method metadata (line 319) | def metadata(timekey: nil, tag: nil, variables: nil)
method timekeys (line 323) | def timekeys
method write (line 330) | def write(metadata_and_data, format: nil, size: nil, enqueue: false)
method queue_full? (line 464) | def queue_full?
method queued_records (line 468) | def queued_records
method queued? (line 472) | def queued?(metadata = nil, optimistic: false)
method enqueue_chunk (line 482) | def enqueue_chunk(metadata)
method enqueue_unstaged_chunk (line 508) | def enqueue_unstaged_chunk(chunk)
method update_timekeys (line 523) | def update_timekeys
method enqueue_all (line 537) | def enqueue_all(force_enqueue = false)
method dequeue_chunk (line 559) | def dequeue_chunk
method takeback_chunk (line 578) | def takeback_chunk(chunk_id)
method purge_chunk (line 592) | def purge_chunk(chunk_id)
method clear_queue! (line 621) | def clear_queue!
method evacuate_chunk (line 640) | def evacuate_chunk(chunk)
method chunk_size_over? (line 659) | def chunk_size_over?(chunk)
method chunk_size_full? (line 663) | def chunk_size_full?(chunk)
class ShouldRetry (line 667) | class ShouldRetry < StandardError; end
method write_once (line 675) | def write_once(metadata, data, format: nil, size: nil, &block)
method write_step_by_step (line 751) | def write_step_by_step(metadata, data, format, splits_count, &block)
method statistics (line 911) | def statistics
method backup (line 940) | def backup(chunk_unique_id)
method optimistic_queued? (line 958) | def optimistic_queued?(metadata = nil)
method safe_owner_id (line 967) | def safe_owner_id
method backup_base_dir (line 971) | def backup_base_dir
FILE: lib/fluent/plugin/buffer/chunk.rb
type Fluent (line 26) | module Fluent
type Plugin (line 27) | module Plugin
class Buffer (line 28) | class Buffer # fluent/plugin/buffer is already loaded
class Chunk (line 29) | class Chunk
method initialize (line 51) | def initialize(metadata, compress: :text)
method raw_create_at (line 71) | def raw_create_at
method raw_modified_at (line 75) | def raw_modified_at
method created_at (line 80) | def created_at
method modified_at (line 85) | def modified_at
method append (line 90) | def append(data, **kwargs)
method concat (line 107) | def concat(bulk, records)
method commit (line 111) | def commit
method rollback (line 115) | def rollback
method bytesize (line 119) | def bytesize
method size (line 123) | def size
method empty? (line 128) | def empty?
method writable? (line 132) | def writable?
method unstaged? (line 136) | def unstaged?
method staged? (line 140) | def staged?
method queued? (line 144) | def queued?
method closed? (line 148) | def closed?
method staged! (line 152) | def staged!
method unstaged! (line 157) | def unstaged!
method enqueued! (line 162) | def enqueued!
method close (line 167) | def close
method purge (line 172) | def purge
method read (line 177) | def read(**kwargs)
method open (line 182) | def open(**kwargs, &block)
method write_to (line 187) | def write_to(io, **kwargs)
type GzipDecompressable (line 194) | module GzipDecompressable
function append (line 197) | def append(data, **kwargs)
function open (line 211) | def open(**kwargs, &block)
function read (line 229) | def read(**kwargs)
function write_to (line 237) | def write_to(io, **kwargs)
type ZstdDecompressable (line 248) | module ZstdDecompressable
function append (line 251) | def append(data, **kwargs)
function open (line 265) | def open(**kwargs, &block)
function read (line 283) | def read(**kwargs)
function write_to (line 291) | def write_to(io, **kwargs)
FILE: lib/fluent/plugin/buffer/file_chunk.rb
type Fluent (line 21) | module Fluent
type Plugin (line 22) | module Plugin
class Buffer (line 23) | class Buffer
class FileChunk (line 24) | class FileChunk < Chunk
class FileChunkError (line 25) | class FileChunkError < StandardError; end
method initialize (line 42) | def initialize(metadata, path, mode, perm: nil, compress: :text)
method concat (line 58) | def concat(bulk, bulk_size)
method commit (line 68) | def commit
method rollback (line 81) | def rollback
method bytesize (line 90) | def bytesize
method size (line 94) | def size
method empty? (line 98) | def empty?
method enqueued! (line 102) | def enqueued!
method close (line 146) | def close
method purge (line 156) | def purge
method read (line 164) | def read(**kwargs)
method open (line 169) | def open(**kwargs, &block)
method assume_chunk_state (line 176) | def self.assume_chunk_state(path)
method generate_stage_chunk_path (line 186) | def self.generate_stage_chunk_path(path, unique_id)
method generate_queued_chunk_path (line 198) | def self.generate_queued_chunk_path(path, unique_id)
method unique_id_from_path (line 208) | def self.unique_id_from_path(path)
method restore_metadata (line 215) | def restore_metadata(bindata)
method restore_metadata_partially (line 240) | def restore_metadata_partially(chunk)
method write_metadata (line 252) | def write_metadata(update: true)
method file_rename (line 265) | def file_rename(file, old_path, new_path, callback=nil)
method create_new_chunk (line 282) | def create_new_chunk(path, perm)
method load_existing_staged_chunk (line 323) | def load_existing_staged_chunk(path)
method load_existing_enqueued_chunk (line 373) | def load_existing_enqueued_chunk(path)
method restore_metadata_with_new_format (line 400) | def restore_metadata_with_new_format(chunk)
FILE: lib/fluent/plugin/buffer/file_single_chunk.rb
type Fluent (line 22) | module Fluent
type Plugin (line 23) | module Plugin
class Buffer (line 24) | class Buffer
class FileSingleChunk (line 25) | class FileSingleChunk < Chunk
class FileChunkError (line 26) | class FileChunkError < StandardError; end
method initialize (line 38) | def initialize(metadata, path, mode, key, perm: Fluent::DEFAULT_...
method concat (line 54) | def concat(bulk, bulk_size)
method commit (line 64) | def commit
method rollback (line 74) | def rollback
method bytesize (line 83) | def bytesize
method size (line 87) | def size
method empty? (line 91) | def empty?
method enqueued! (line 95) | def enqueued!
method close (line 121) | def close
method purge (line 130) | def purge
method read (line 137) | def read(**kwargs)
method open (line 142) | def open(**kwargs, &block)
method assume_chunk_state (line 149) | def self.assume_chunk_state(path)
method unique_id_and_key_from_path (line 161) | def self.unique_id_and_key_from_path(path)
method generate_stage_chunk_path (line 172) | def self.generate_stage_chunk_path(path, key, unique_id)
method generate_queued_chunk_path (line 183) | def self.generate_queued_chunk_path(path, unique_id)
method restore_metadata (line 193) | def restore_metadata
method restore_size (line 212) | def restore_size(chunk_format)
method file_rename (line 224) | def file_rename(file, old_path, new_path, callback = nil)
method encode_key (line 243) | def encode_key(metadata)
method decode_key (line 249) | def decode_key(key)
method create_new_chunk (line 253) | def create_new_chunk(path, metadata, perm)
method load_existing_staged_chunk (line 273) | def load_existing_staged_chunk(path)
method load_existing_enqueued_chunk (line 292) | def load_existing_enqueued_chunk(path)
FILE: lib/fluent/plugin/buffer/memory_chunk.rb
type Fluent (line 19) | module Fluent
type Plugin (line 20) | module Plugin
class Buffer (line 21) | class Buffer
class MemoryChunk (line 22) | class MemoryChunk < Chunk
method initialize (line 23) | def initialize(metadata, compress: :text)
method concat (line 31) | def concat(bulk, bulk_size)
method commit (line 41) | def commit
method rollback (line 51) | def rollback
method bytesize (line 57) | def bytesize
method size (line 61) | def size
method empty? (line 65) | def empty?
method purge (line 69) | def purge
method read (line 76) | def read(**kwargs)
method open (line 80) | def open(**kwargs, &block)
method write_to (line 84) | def write_to(io, **kwargs)
FILE: lib/fluent/plugin/compressable.rb
type Fluent (line 21) | module Fluent
type Plugin (line 22) | module Plugin
type Compressable (line 23) | module Compressable
function compress (line 24) | def compress(data, type: :gzip, **kwargs)
function decompress (line 41) | def decompress(compressed_data = nil, output_io: nil, input_io: ni...
function string_decompress_gzip (line 63) | def string_decompress_gzip(compressed_data)
function string_decompress_zstd (line 80) | def string_decompress_zstd(compressed_data)
function string_decompress (line 93) | def string_decompress(compressed_data, type = :gzip)
function io_decompress_gzip (line 103) | def io_decompress_gzip(input, output)
function io_decompress_zstd (line 119) | def io_decompress_zstd(input, output)
function io_decompress (line 131) | def io_decompress(input, output, type = :gzip)
FILE: lib/fluent/plugin/exec_util.rb
type Fluent (line 19) | module Fluent
FILE: lib/fluent/plugin/file_util.rb
type Fluent (line 19) | module Fluent
FILE: lib/fluent/plugin/filter.rb
type Fluent (line 24) | module Fluent
type Plugin (line 25) | module Plugin
class Filter (line 26) | class Filter < Base
method initialize (line 35) | def initialize
method configure (line 44) | def configure(conf)
method statistics (line 52) | def statistics
method measure_metrics (line 61) | def measure_metrics(es)
method filter (line 66) | def filter(tag, time, record)
method filter_with_time (line 70) | def filter_with_time(tag, time, record)
method filter_stream (line 74) | def filter_stream(tag, es)
method has_filter_with_time? (line 100) | def has_filter_with_time?
FILE: lib/fluent/plugin/filter_grep.rb
type Fluent::Plugin (line 21) | module Fluent::Plugin
class GrepFilter (line 22) | class GrepFilter < Filter
method initialize (line 25) | def initialize
method configure (line 88) | def configure(conf)
method filter (line 162) | def filter(tag, time, record)
method match? (line 184) | def match?(record)
FILE: lib/fluent/plugin/filter_parser.rb
type Fluent::Plugin (line 23) | module Fluent::Plugin
class ParserFilter (line 24) | class ParserFilter < Filter
method configure (line 48) | def configure(conf)
method filter_stream (line 59) | def filter_stream(tag, es)
method filter_one_record (line 81) | def filter_one_record(tag, time, record, raw_value)
method handle_parsed (line 113) | def handle_parsed(tag, record, t, values)
FILE: lib/fluent/plugin/filter_record_transformer.rb
type Fluent::Plugin (line 26) | module Fluent::Plugin
class RecordTransformerFilter (line 27) | class RecordTransformerFilter < Fluent::Plugin::Filter
method configure (line 45) | def configure(conf)
method filter_stream (line 84) | def filter_stream(tag, es)
method parse_value (line 117) | def parse_value(value_str)
method reform (line 128) | def reform(record, placeholder_values)
method expand_placeholders (line 140) | def expand_placeholders(value, placeholders)
method tag_prefix (line 160) | def tag_prefix(tag_parts)
method tag_suffix (line 169) | def tag_suffix(tag_parts)
class PlaceholderExpander (line 180) | class PlaceholderExpander
method initialize (line 183) | def initialize(params)
method time_value (line 188) | def time_value(time)
method preprocess_map (line 192) | def preprocess_map(value, force_stringify = false)
method prepare_placeholders (line 196) | def prepare_placeholders(placeholder_values)
method expand (line 222) | def expand(str, placeholders, force_stringify = false)
method log_if_unknown_placeholder (line 238) | def log_if_unknown_placeholder(placeholder, placeholders)
class RubyPlaceholderExpander (line 246) | class RubyPlaceholderExpander
method initialize (line 249) | def initialize(params)
method time_value (line 255) | def time_value(time)
method preprocess_map (line 263) | def preprocess_map(value, force_stringify = false)
method prepare_placeholders (line 291) | def prepare_placeholders(placeholder_values)
method expand (line 298) | def expand(str, placeholders, force_stringify = false)
class CleanroomExpander (line 313) | class CleanroomExpander
method expand (line 314) | def expand(__str_to_eval__, tag, time, record, tag_parts, tag_pr...
FILE: lib/fluent/plugin/filter_stdout.rb
type Fluent::Plugin (line 19) | module Fluent::Plugin
class StdoutFilter (line 20) | class StdoutFilter < Filter
method configure (line 34) | def configure(conf)
method filter_stream (line 40) | def filter_stream(tag, es)
FILE: lib/fluent/plugin/formatter.rb
type Fluent (line 22) | module Fluent
type Plugin (line 23) | module Plugin
class Formatter (line 24) | class Formatter < Base
method formatter_type (line 31) | def formatter_type
method format (line 35) | def format(tag, time, record)
class ProcWrappedFormatter (line 40) | class ProcWrappedFormatter < Formatter
method initialize (line 41) | def initialize(proc)
method format (line 46) | def format(tag, time, record)
type Newline (line 51) | module Newline
type Mixin (line 52) | module Mixin
function configure (line 63) | def configure(conf)
FILE: lib/fluent/plugin/formatter_csv.rb
type Fluent (line 21) | module Fluent
type Plugin (line 22) | module Plugin
class CsvFormatter (line 23) | class CsvFormatter < Formatter
method csv_cacheable? (line 38) | def csv_cacheable?
method csv_thread_key (line 42) | def csv_thread_key
method csv_for_thread (line 46) | def csv_for_thread
method configure (line 54) | def configure(conf)
method format (line 72) | def format(tag, time, record)
method format_with_nested_fields (line 81) | def format_with_nested_fields(tag, time, record)
FILE: lib/fluent/plugin/formatter_hash.rb
type Fluent (line 19) | module Fluent
type Plugin (line 20) | module Plugin
class HashFormatter (line 21) | class HashFormatter < Formatter
method format (line 28) | def format(tag, time, record)
FILE: lib/fluent/plugin/formatter_json.rb
type Fluent (line 20) | module Fluent
type Plugin (line 21) | module Plugin
class JSONFormatter (line 22) | class JSONFormatter < Formatter
method configure (line 30) | def configure(conf)
method format (line 50) | def format(tag, time, record)
method format_without_nl (line 57) | def format_without_nl(tag, time, record)
FILE: lib/fluent/plugin/formatter_ltsv.rb
type Fluent (line 19) | module Fluent
type Plugin (line 20) | module Plugin
class LabeledTSVFormatter (line 21) | class LabeledTSVFormatter < Formatter
method format (line 33) | def format(tag, time, record)
FILE: lib/fluent/plugin/formatter_msgpack.rb
type Fluent (line 19) | module Fluent
type Plugin (line 20) | module Plugin
class MessagePackFormatter (line 21) | class MessagePackFormatter < Formatter
method formatter_type (line 24) | def formatter_type
method format (line 28) | def format(tag, time, record)
FILE: lib/fluent/plugin/formatter_out_file.rb
type Fluent (line 21) | module Fluent
type Plugin (line 22) | module Plugin
class OutFileFormatter (line 23) | class OutFileFormatter < Formatter
method configure (line 40) | def configure(conf)
method format (line 45) | def format(tag, time, record)
FILE: lib/fluent/plugin/formatter_single_value.rb
type Fluent (line 19) | module Fluent
type Plugin (line 20) | module Plugin
class SingleValueFormatter (line 21) | class SingleValueFormatter < Formatter
method format (line 29) | def format(tag, time, record)
FILE: lib/fluent/plugin/formatter_stdout.rb
type Fluent (line 19) | module Fluent
type Plugin (line 20) | module Plugin
class StdoutFormatter (line 21) | class StdoutFormatter < Formatter
method configure (line 28) | def configure(conf)
method start (line 36) | def start
method format (line 41) | def format(tag, time, record)
method stop (line 45) | def stop
method before_shutdown (line 50) | def before_shutdown
method shutdown (line 55) | def shutdown
method after_shutdown (line 60) | def after_shutdown
method close (line 65) | def close
method terminate (line 70) | def terminate
FILE: lib/fluent/plugin/formatter_tsv.rb
type Fluent (line 19) | module Fluent
type Plugin (line 20) | module Plugin
class TSVFormatter (line 21) | class TSVFormatter < Formatter
method format (line 33) | def format(tag, time, record)
FILE: lib/fluent/plugin/in_debug_agent.rb
type Fluent::Plugin (line 19) | module Fluent::Plugin
class DebugAgentInput (line 20) | class DebugAgentInput < Input
method initialize (line 23) | def initialize
method configure (line 35) | def configure(conf)
method multi_workers_ready? (line 47) | def multi_workers_ready?
method start (line 51) | def start
method shutdown (line 65) | def shutdown
FILE: lib/fluent/plugin/in_exec.rb
type Fluent::Plugin (line 20) | module Fluent::Plugin
class ExecInput (line 21) | class ExecInput < Fluent::Plugin::Input
method configure (line 53) | def configure(conf)
method validate_encoding (line 72) | def validate_encoding(encoding)
method multi_workers_ready? (line 78) | def multi_workers_ready?
method start (line 82) | def start
method run (line 95) | def run(io)
method on_record (line 112) | def on_record(time, record)
FILE: lib/fluent/plugin/in_forward.rb
type Fluent::Plugin (line 24) | module Fluent::Plugin
class ForwardInput (line 25) | class ForwardInput < Input
method configure (line 101) | def configure(conf)
method multi_workers_ready? (line 160) | def multi_workers_ready?
method start (line 166) | def start
method handle_connection (line 193) | def handle_connection(conn)
method read_messages (line 242) | def read_messages(conn, &block)
method response (line 275) | def response(option)
method on_message (line 282) | def on_message(msg, chunk_size, conn)
method invalid_event? (line 367) | def invalid_event?(tag, time, record)
method check_and_skip_invalid_event (line 371) | def check_and_skip_invalid_event(tag, es, remote_host)
method add_source_info (line 383) | def add_source_info(es, conn)
method select_authenticate_users (line 411) | def select_authenticate_users(node, username)
method generate_salt (line 419) | def generate_salt
method generate_helo (line 423) | def generate_helo(nonce, user_auth_salt)
method check_ping (line 429) | def check_ping(message, remote_addr, user_auth_salt, nonce)
method generate_pong (line 466) | def generate_pong(auth_result, reason_or_salt, nonce, shared_key)
FILE: lib/fluent/plugin/in_gc_stat.rb
type Fluent::Plugin (line 19) | module Fluent::Plugin
class GCStatInput (line 20) | class GCStatInput < Fluent::Plugin::Input
method initialize (line 25) | def initialize
method configure (line 34) | def configure(conf)
method multi_workers_ready? (line 45) | def multi_workers_ready?
method start (line 49) | def start
method shutdown (line 55) | def shutdown
method on_timer (line 59) | def on_timer
FILE: lib/fluent/plugin/in_http.rb
type Fluent::Plugin (line 27) | module Fluent::Plugin
class InHttpParser (line 28) | class InHttpParser < Parser
method configure (line 33) | def configure(conf)
method parse (line 44) | def parse(text)
method get_time_parser (line 49) | def get_time_parser
class HttpInput (line 54) | class HttpInput < Input
method initialize (line 96) | def initialize
method configure (line 114) | def configure(conf)
class KeepaliveManager (line 152) | class KeepaliveManager < Coolio::TimerWatcher
method initialize (line 153) | def initialize(timeout)
method add (line 159) | def add(sock)
method delete (line 163) | def delete(sock)
method on_timer (line 167) | def on_timer
method multi_workers_ready? (line 176) | def multi_workers_ready?
method start (line 180) | def start
method close (line 194) | def close
method on_request (line 206) | def on_request(path_info, params)
method on_server_connect (line 260) | def on_server_connect(conn)
method parse_params_default (line 279) | def parse_params_default(params)
method parse_params_with_parser (line 299) | def parse_params_with_parser(params)
method add_params_to_record (line 309) | def add_params_to_record(record, params)
method convert_time_field (line 331) | def convert_time_field(record)
class Handler (line 343) | class Handler
method initialize (line 346) | def initialize(io, km, callback, body_size_limit, format_name, log,
method step_idle (line 365) | def step_idle
method on_close (line 369) | def on_close
method on_read (line 373) | def on_read(data)
method on_message_begin (line 382) | def on_message_begin
method on_headers_complete (line 386) | def on_headers_complete(headers)
method on_body (line 440) | def on_body(chunk)
method handle_get_request (line 455) | def handle_get_request
method handle_options_request (line 461) | def handle_options_request
method on_message_complete (line 492) | def on_message_complete
method close (line 590) | def close
method on_write_complete (line 594) | def on_write_complete
method send_response_and_close (line 598) | def send_response_and_close(code, header, body)
method closing? (line 603) | def closing?
method send_response (line 607) | def send_response(code, header, body)
method send_response_nobody (line 621) | def send_response_nobody(code, header)
method include_cors_allow_origin (line 630) | def include_cors_allow_origin
method parse_query (line 647) | def parse_query(query)
FILE: lib/fluent/plugin/in_monitor_agent.rb
type Fluent::Plugin (line 25) | module Fluent::Plugin
class MonitorAgentInput (line 26) | class MonitorAgentInput < Input
class APIHandler (line 44) | class APIHandler
method initialize (line 45) | def initialize(agent)
method plugins_ltsv (line 49) | def plugins_ltsv(req)
method plugins_json (line 55) | def plugins_json(req)
method config_ltsv (line 62) | def config_ltsv(_req)
method config_json (line 72) | def config_json(req)
method render_error_json (line 85) | def render_error_json(code:, msg:, pretty_json: nil, **additional_...
method render_json (line 90) | def render_json(obj, code: 200, pretty_json: nil)
method render_ltsv (line 101) | def render_ltsv(obj, code: 200)
method build_object (line 122) | def build_object(opts)
method build_option (line 149) | def build_option(req)
method initialize (line 182) | def initialize
method configure (line 188) | def configure(conf)
method multi_workers_ready? (line 193) | def multi_workers_ready?
class NotFoundJson (line 197) | class NotFoundJson
method call (line 199) | def self.call(_req)
method start (line 204) | def start
method all_plugins (line 240) | def all_plugins
method plugin_info_by_tag (line 263) | def plugin_info_by_tag(tag, opts={})
method plugin_info_by_id (line 276) | def plugin_info_by_id(plugin_id, opts={})
method plugins_info_by_type (line 289) | def plugins_info_by_type(type, opts={})
method plugins_info_all (line 298) | def plugins_info_all(opts={})
method get_monitor_info (line 307) | def get_monitor_info(pe, opts={})
method get_retry_info (line 370) | def get_retry_info(pe_retry)
method plugin_category (line 382) | def plugin_category(pe)
method fluentd_opts (line 395) | def fluentd_opts
method get_fluentd_opts (line 399) | def get_fluentd_opts
FILE: lib/fluent/plugin/in_object_space.rb
type Fluent::Plugin (line 21) | module Fluent::Plugin
class ObjectSpaceInput (line 22) | class ObjectSpaceInput < Fluent::Plugin::Input
method initialize (line 27) | def initialize
method multi_workers_ready? (line 35) | def multi_workers_ready?
method start (line 39) | def start
class Counter (line 45) | class Counter
method initialize (line 46) | def initialize(klass, init_count)
method incr! (line 51) | def incr!
method name (line 55) | def name
method on_timer (line 62) | def on_timer
FILE: lib/fluent/plugin/in_sample.rb
type Fluent::Plugin (line 22) | module Fluent::Plugin
class SampleInput (line 23) | class SampleInput < Input
method initialize (line 61) | def initialize
method configure (line 66) | def configure(conf)
method multi_workers_ready? (line 73) | def multi_workers_ready?
method start (line 77) | def start
method run (line 91) | def run
method emit (line 108) | def emit(num)
method next_sample (line 122) | def next_sample
method generate (line 131) | def generate
method wait (line 140) | def wait(time)
FILE: lib/fluent/plugin/in_syslog.rb
type Fluent::Plugin (line 23) | module Fluent::Plugin
class SyslogInput (line 24) | class SyslogInput < Input
method configure (line 119) | def configure(conf)
method multi_workers_ready? (line 155) | def multi_workers_ready?
method zero_downtime_restart_ready? (line 159) | def zero_downtime_restart_ready?
method start (line 163) | def start
method start_udp_server (line 176) | def start_udp_server
method start_tcp_server (line 182) | def start_tcp_server(tls: false)
method emit_unmatched (line 222) | def emit_unmatched(data, sock)
method message_handler (line 229) | def message_handler(data, sock)
method emit (line 274) | def emit(tag, time, record)
FILE: lib/fluent/plugin/in_tail.rb
type Fluent::Plugin (line 30) | module Fluent::Plugin
class TailInput (line 31) | class TailInput < Fluent::Plugin::Input
class WatcherSetupError (line 41) | class WatcherSetupError < StandardError
method initialize (line 42) | def initialize(msg)
method to_s (line 46) | def to_s
method initialize (line 51) | def initialize
method configure (line 127) | def configure(conf)
method check_dir_permission (line 220) | def check_dir_permission
method configure_tag (line 234) | def configure_tag
method configure_encoding (line 245) | def configure_encoding
method parse_encoding_param (line 259) | def parse_encoding_param(encoding_name)
method start (line 267) | def start
method stop (line 289) | def stop
method shutdown (line 297) | def shutdown
method close (line 309) | def close
method have_read_capability? (line 316) | def have_read_capability?
method extended_glob_pattern (line 321) | def extended_glob_pattern(path)
method use_glob? (line 329) | def use_glob?(path)
method expand_paths_raw (line 343) | def expand_paths_raw
method expand_paths (line 392) | def expand_paths
method existence_path (line 414) | def existence_path
method refresh_watchers (line 431) | def refresh_watchers
method setup_watcher (line 485) | def setup_watcher(target_info, pe)
method construct_watcher (line 519) | def construct_watcher(target_info)
method start_watchers (line 547) | def start_watchers(targets_info)
method stop_watchers (line 554) | def stop_watchers(targets_info, immediate: false, unwatched: false, ...
method close_watcher_handles (line 574) | def close_watcher_handles
method update_watcher (line 587) | def update_watcher(tail_watcher, pe, new_inode)
method detach_watcher (line 638) | def detach_watcher(tw, ino, close_io = true)
method throttling_is_enabled? (line 656) | def throttling_is_enabled?(tw)
method detach_watcher_after_rotate_wait (line 662) | def detach_watcher_after_rotate_wait(tw, ino)
method flush_buffer (line 695) | def flush_buffer(tw, buf)
method receive_lines (line 723) | def receive_lines(lines, tail_watcher)
method convert_line_to_event (line 744) | def convert_line_to_event(line, es, tail_watcher)
method parse_singleline (line 766) | def parse_singleline(lines, tail_watcher)
method parse_multilines (line 775) | def parse_multilines(lines, tail_watcher)
method statistics (line 813) | def statistics
method io_handler (line 830) | def io_handler(watcher, path)
class StatWatcher (line 856) | class StatWatcher < Coolio::StatWatcher
method initialize (line 857) | def initialize(path, log, &callback)
method on_change (line 863) | def on_change(prev, cur)
class TimerTrigger (line 871) | class TimerTrigger < Coolio::TimerWatcher
method initialize (line 872) | def initialize(interval, log, &callback)
method on_timer (line 878) | def on_timer
class TailWatcher (line 886) | class TailWatcher
method initialize (line 887) | def initialize(target_info, pe, log, read_from_head, follow_inodes...
method tag (line 910) | def tag
method register_watcher (line 914) | def register_watcher(watcher)
method detach (line 918) | def detach(shutdown_start_time = nil)
method close (line 926) | def close
method eof? (line 933) | def eof?
method on_notify (line 937) | def on_notify
method on_rotate (line 950) | def on_rotate(stat)
method io_handler (line 1031) | def io_handler
method swap_state (line 1035) | def swap_state(pe)
class FIFO (line 1043) | class FIFO
method initialize (line 1044) | def initialize(encoding, log, max_line_size=nil, encoding_to_con...
method << (line 1056) | def <<(chunk)
method convert (line 1060) | def convert(s)
method read_lines (line 1070) | def read_lines(lines)
method reading_bytesize (line 1121) | def reading_bytesize
class IOHandler (line 1127) | class IOHandler
method initialize (line 1133) | def initialize(watcher, path:, read_lines_limit:, read_bytes_lim...
method group_watcher (line 1157) | def group_watcher
method on_notify (line 1161) | def on_notify
method ready_to_shutdown (line 1165) | def ready_to_shutdown(shutdown_start_time = nil)
method close (line 1172) | def close
method opened? (line 1180) | def opened?
method eof? (line 1184) | def eof?
method limit_bytes_per_second_reached? (line 1190) | def limit_bytes_per_second_reached?
method should_shutdown_now? (line 1207) | def should_shutdown_now?
method handle_notify (line 1216) | def handle_notify
method open (line 1280) | def open
method with_io (line 1295) | def with_io
class NullIOHandler (line 1320) | class NullIOHandler
method initialize (line 1321) | def initialize
method io (line 1324) | def io
method on_notify (line 1327) | def on_notify
method close (line 1330) | def close
method opened? (line 1333) | def opened?
method eof? (line 1337) | def eof?
class RotateHandler (line 1342) | class RotateHandler
method initialize (line 1343) | def initialize(log, &on_rotate)
method on_notify (line 1350) | def on_notify(stat)
class LineBufferTimerFlusher (line 1370) | class LineBufferTimerFlusher
method initialize (line 1373) | def initialize(log, flush_interval, &flush_method)
method on_notify (line 1381) | def on_notify(tw)
method close (line 1393) | def close(tw)
method reset_timer (line 1400) | def reset_timer
FILE: lib/fluent/plugin/in_tail/group_watch.rb
type Fluent::Plugin (line 19) | module Fluent::Plugin
class TailInput (line 20) | class TailInput < Fluent::Plugin::Input
type GroupWatchParams (line 21) | module GroupWatchParams
type GroupWatch (line 46) | module GroupWatch
function included (line 47) | def self.included(mod)
function initialize (line 53) | def initialize
function configure (line 60) | def configure(conf)
function add_path_to_group_watcher (line 81) | def add_path_to_group_watcher(path)
function remove_path_from_group_watcher (line 88) | def remove_path_from_group_watcher(path)
function construct_group_key (line 94) | def construct_group_key(named_captures)
function construct_groupwatchers (line 104) | def construct_groupwatchers
function find_group (line 111) | def find_group(metadata)
function find_group_from_metadata (line 119) | def find_group_from_metadata(path)
class GroupWatcher (line 132) | class GroupWatcher
method initialize (line 140) | def initialize(rate_period = 60, limit = -1)
method add (line 146) | def add(path)
method include? (line 150) | def include?(path)
method size (line 154) | def size
method delete (line 158) | def delete(path)
method update_reading_time (line 162) | def update_reading_time(path)
method update_lines_read (line 166) | def update_lines_read(path, value)
method reset_counter (line 170) | def reset_counter(path)
method time_spent_reading (line 175) | def time_spent_reading(path)
method limit_time_period_reached? (line 179) | def limit_time_period_reached?(path)
method limit_lines_reached? (line 183) | def limit_lines_reached?(path)
method to_s (line 199) | def to_s
FILE: lib/fluent/plugin/in_tail/position_file.rb
type Fluent::Plugin (line 19) | module Fluent::Plugin
class TailInput (line 20) | class TailInput < Fluent::Plugin::Input
class PositionFile (line 21) | class PositionFile
method load (line 25) | def self.load(file, follow_inodes, existing_targets, logger:)
method initialize (line 31) | def initialize(file, follow_inodes, logger: nil)
method [] (line 39) | def [](target_info)
method unwatch_removed_targets (line 56) | def unwatch_removed_targets(existing_targets)
method unwatch (line 64) | def unwatch(target_info)
method load (line 68) | def load(existing_targets = nil)
method try_compact (line 95) | def try_compact
method unwatch_key (line 127) | def unwatch_key(key)
method compact (line 133) | def compact(existing_targets = nil)
method fetch_compacted_entries (line 151) | def fetch_compacted_entries
method remove_deleted_files_entries (line 183) | def remove_deleted_files_entries(existent_entries, existing_targets)
method to_entry_fmt (line 193) | def to_entry_fmt
class FilePositionEntry (line 200) | class FilePositionEntry
method initialize (line 207) | def initialize(file, file_mutex, seek, pos, inode)
method update (line 217) | def update(ino, pos)
method update_pos (line 226) | def update_pos(pos)
method read_inode (line 234) | def read_inode
method read_pos (line 238) | def read_pos
class MemoryPositionEntry (line 243) | class MemoryPositionEntry
method initialize (line 244) | def initialize
method update (line 249) | def update(ino, pos)
method update_pos (line 254) | def update_pos(pos)
method read_pos (line 258) | def read_pos
method read_inode (line 262) | def read_inode
FILE: lib/fluent/plugin/in_tcp.rb
type Fluent::Plugin (line 19) | module Fluent::Plugin
class TcpInput (line 20) | class TcpInput < Input
method configure (line 60) | def configure(conf)
method multi_workers_ready? (line 100) | def multi_workers_ready?
method zero_downtime_restart_ready? (line 104) | def zero_downtime_restart_ready?
method start (line 108) | def start
method check_client (line 217) | def check_client(conn)
FILE: lib/fluent/plugin/in_udp.rb
type Fluent::Plugin (line 19) | module Fluent::Plugin
class UdpInput (line 20) | class UdpInput < Input
method configure (line 55) | def configure(conf)
method multi_workers_ready? (line 69) | def multi_workers_ready?
method zero_downtime_restart_ready? (line 73) | def zero_downtime_restart_ready?
method start (line 77) | def start
FILE: lib/fluent/plugin/in_unix.rb
type Fluent::Plugin (line 26) | module Fluent::Plugin
class UnixInput (line 28) | class UnixInput < Input
method initialize (line 33) | def initialize
method configure (line 46) | def configure(conf)
method start (line 50) | def start
method shutdown (line 57) | def shutdown
method listen (line 66) | def listen
method on_message (line 99) | def on_message(msg)
method convert_time (line 135) | def convert_time(time)
class Handler (line 146) | class Handler < Coolio::Socket
method initialize (line 147) | def initialize(io, log, on_message)
method on_connect (line 154) | def on_connect
method on_read (line 157) | def on_read(data)
method on_read_json (line 174) | def on_read_json(data)
method on_read_msgpack (line 182) | def on_read_msgpack(data)
method on_close (line 190) | def on_close
FILE: lib/fluent/plugin/input.rb
type Fluent (line 23) | module Fluent
type Plugin (line 24) | module Plugin
class Input (line 25) | class Input < Base
method initialize (line 32) | def initialize
method configure (line 40) | def configure(conf)
method statistics (line 48) | def statistics
method metric_callback (line 57) | def metric_callback(es)
method multi_workers_ready? (line 62) | def multi_workers_ready?
method zero_downtime_restart_ready? (line 66) | def zero_downtime_restart_ready?
FILE: lib/fluent/plugin/metrics.rb
type Fluent (line 25) | module Fluent
type Plugin (line 26) | module Plugin
class Metrics (line 27) | class Metrics < Base
method initialize (line 42) | def initialize
method configure (line 50) | def configure(conf)
method use_gauge_metric= (line 62) | def use_gauge_metric=(use_gauge_metric=false)
method create (line 66) | def create(namespace:, subsystem:,name:,help_text:,labels: {})
method get (line 70) | def get
method inc (line 74) | def inc
method dec (line 78) | def dec
method add (line 82) | def add(value)
method sub (line 86) | def sub(value)
method set (line 90) | def set(value)
method has_methods_for_counter? (line 96) | def has_methods_for_counter?
method has_methods_for_gauge? (line 107) | def has_methods_for_gauge?
FILE: lib/fluent/plugin/metrics_local.rb
type Fluent (line 20) | module Fluent
type Plugin (line 21) | module Plugin
class LocalMetrics (line 22) | class LocalMetrics < Metrics
method initialize (line 25) | def initialize
method configure (line 31) | def configure(conf)
method multi_workers_ready? (line 47) | def multi_workers_ready?
method get (line 51) | def get
method inc (line 57) | def inc
method dec_gauge (line 63) | def dec_gauge
method add (line 69) | def add(value)
method sub_gauge (line 75) | def sub_gauge(value)
method set_counter (line 81) | def set_counter(value)
method set_gauge (line 89) | def set_gauge(value)
FILE: lib/fluent/plugin/multi_output.rb
type Fluent (line 22) | module Fluent
type Plugin (line 23) | module Plugin
class MultiOutput (line 24) | class MultiOutput < Base
method process (line 39) | def process(tag, es)
method initialize (line 43) | def initialize
method statistics (line 59) | def statistics
method multi_output? (line 70) | def multi_output?
method configure (line 74) | def configure(conf)
method static_outputs (line 99) | def static_outputs
method call_lifecycle_method (line 112) | def call_lifecycle_method(method_name, checker_name)
method start (line 125) | def start
method after_start (line 130) | def after_start
method stop (line 135) | def stop
method before_shutdown (line 140) | def before_shutdown
method shutdown (line 145) | def shutdown
method after_shutdown (line 150) | def after_shutdown
method close (line 155) | def close
method terminate (line 160) | def terminate
method emit_sync (line 165) | def emit_sync(tag, es)
FILE: lib/fluent/plugin/out_buffer.rb
type Fluent::Plugin (line 19) | module Fluent::Plugin
class BufferOutput (line 20) | class BufferOutput < Output
method multi_workers_ready? (line 31) | def multi_workers_ready?
method write (line 35) | def write(chunk)
FILE: lib/fluent/plugin/out_copy.rb
type Fluent::Plugin (line 21) | module Fluent::Plugin
class CopyOutput (line 22) | class CopyOutput < MultiOutput
method initialize (line 32) | def initialize
method configure (line 38) | def configure(conf)
method multi_workers_ready? (line 54) | def multi_workers_ready?
method process (line 58) | def process(tag, es)
method gen_copy_proc (line 87) | def gen_copy_proc
FILE: lib/fluent/plugin/out_exec.rb
type Fluent::Plugin (line 22) | module Fluent::Plugin
class ExecOutput (line 23) | class ExecOutput < Output
method configure (line 48) | def configure(conf)
method multi_workers_ready? (line 54) | def multi_workers_ready?
method format (line 60) | def format(tag, time, record)
method try_write (line 69) | def try_write(chunk)
FILE: lib/fluent/plugin/out_exec_filter.rb
type Fluent::Plugin (line 22) | module Fluent::Plugin
class ExecFilterOutput (line 23) | class ExecFilterOutput < Output
method exec_filter_compat_parameters_copy_to_subsection! (line 106) | def exec_filter_compat_parameters_copy_to_subsection!(conf, subsecti...
method exec_filter_compat_parameters_convert! (line 116) | def exec_filter_compat_parameters_convert!(conf)
method configure (line 130) | def configure(conf)
method multi_workers_ready? (line 176) | def multi_workers_ready?
method start (line 182) | def start
method terminate (line 247) | def terminate
method tag_remove_prefix (line 252) | def tag_remove_prefix(tag)
method format (line 263) | def format(tag, time, record)
method write (line 273) | def write(chunk)
method run (line 286) | def run(io)
method on_record (line 304) | def on_record(time, record)
FILE: lib/fluent/plugin/out_file.rb
type Fluent::Plugin (line 27) | module Fluent::Plugin
class FileOutput (line 28) | class FileOutput < Output
type SymlinkBufferMixin (line 74) | module SymlinkBufferMixin
function metadata (line 75) | def metadata(timekey: nil, tag: nil, variables: nil)
function output_plugin_for_symlink= (line 86) | def output_plugin_for_symlink=(output_plugin)
function symlink_path= (line 90) | def symlink_path=(path)
function generate_chunk (line 94) | def generate_chunk(metadata)
method configure (line 114) | def configure(conf)
method multi_workers_ready? (line 217) | def multi_workers_ready?
method format (line 221) | def format(tag, time, record)
method write (line 226) | def write(chunk)
method write_without_compression (line 261) | def write_without_compression(path, chunk)
method write_with_compression (line 267) | def write_with_compression(type, path, chunk)
method write_from_compressed_chunk (line 280) | def write_from_compressed_chunk(type, path, chunk)
method timekey_to_timeformat (line 286) | def timekey_to_timeformat(timekey)
method compression_suffix (line 296) | def compression_suffix(compress)
method generate_path_template (line 312) | def generate_path_template(original, timekey, append, compress, path...
method find_filepath_available (line 338) | def find_filepath_available(path_with_placeholder, with_lock: false)...
FILE: lib/fluent/plugin/out_forward.rb
type Fluent::Plugin (line 33) | module Fluent::Plugin
class ForwardOutput (line 34) | class ForwardOutput < Output
method initialize (line 162) | def initialize
method configure (line 176) | def configure(conf)
method multi_workers_ready? (line 291) | def multi_workers_ready?
method prefer_delayed_commit (line 295) | def prefer_delayed_commit
method overwrite_delayed_commit_timeout (line 299) | def overwrite_delayed_commit_timeout
method start (line 308) | def start
method close (line 340) | def close
method stop (line 349) | def stop
method before_shutdown (line 357) | def before_shutdown
method after_shutdown (line 362) | def after_shutdown
method try_flush (line 367) | def try_flush
method last_ack (line 372) | def last_ack
method write (line 377) | def write(chunk)
method try_write (line 384) | def try_write(chunk)
method create_transfer_socket (line 395) | def create_transfer_socket(host, port, hostname, &block)
method statistics (line 441) | def statistics
method forward_header (line 463) | def forward_header
method build_node (line 469) | def build_node(server)
method on_heartbeat_timer (line 481) | def on_heartbeat_timer
method on_udp_heartbeat_response_recv (line 502) | def on_udp_heartbeat_response_recv(data, sock)
method on_purge_obsolete_socks (line 514) | def on_purge_obsolete_socks
method ack_select_interval (line 518) | def ack_select_interval
method ack_reader (line 526) | def ack_reader
method ack_check (line 534) | def ack_check(select_interval)
class Node (line 556) | class Node
method initialize (line 562) | def initialize(sender, server, failure:, connection_manager:, ack_...
method validate_host_resolution! (line 608) | def validate_host_resolution!
method available? (line 612) | def available?
method disable! (line 616) | def disable!
method standby? (line 620) | def standby?
method verify_connection (line 624) | def verify_connection
method establish_connection (line 630) | def establish_connection(sock, ri)
method send_data_actual (line 680) | def send_data_actual(sock, tag, chunk)
method send_data (line 702) | def send_data(tag, chunk)
method send_heartbeat (line 716) | def send_heartbeat
method resolved_host (line 751) | def resolved_host
method resolve_dns! (line 772) | def resolve_dns!
method tick (line 780) | def tick
method heartbeat (line 810) | def heartbeat(detect=true)
method ensure_established_connection (line 824) | def ensure_established_connection(sock, request_info)
method connect (line 834) | def connect(host = nil, ack: false, &block)
class NoneHeartbeatNode (line 840) | class NoneHeartbeatNode < Node
method available? (line 841) | def available?
method tick (line 845) | def tick
method heartbeat (line 849) | def heartbeat(detect=true)
FILE: lib/fluent/plugin/out_forward/ack_handler.rb
type Fluent::Plugin (line 22) | module Fluent::Plugin
class ForwardOutput (line 23) | class ForwardOutput < Output
class AckHandler (line 24) | class AckHandler
type Result (line 25) | module Result
method initialize (line 31) | def initialize(timeout:, log:, read_length:)
method collect_response (line 40) | def collect_response(select_interval)
method expired? (line 89) | def expired?(now)
method enqueue (line 95) | def enqueue(sock)
method create_ack (line 100) | def create_ack(chunk_id, node)
method enqueue (line 104) | def enqueue(node, sock, cid)
method read_ack_from_sock (line 113) | def read_ack_from_sock(sock)
method dump_unique_id_hex (line 159) | def dump_unique_id_hex(unique_id)
method find (line 163) | def find(sock)
method delete (line 169) | def delete(info)
FILE: lib/fluent/plugin/out_forward/connection_manager.rb
type Fluent::Plugin (line 19) | module Fluent::Plugin
class ForwardOutput (line 20) | class ForwardOutput < Output
class ConnectionManager (line 21) | class ConnectionManager
method initialize (line 28) | def initialize(log:, secure:, connection_factory:, socket_cache:)
method stop (line 35) | def stop
method connect (line 40) | def connect(host:, port:, hostname:, ack: nil, &block)
method purge_obsolete_socks (line 65) | def purge_obsolete_socks
method close (line 72) | def close(sock)
method connect_keepalive (line 83) | def connect_keepalive(host:, port:, hostname:, ack: nil)
FILE: lib/fluent/plugin/out_forward/error.rb
type Fluent::Plugin (line 19) | module Fluent::Plugin
class ForwardOutput (line 20) | class ForwardOutput < Output
class Error (line 21) | class Error < StandardError; end
class NoNodesAvailable (line 22) | class NoNodesAvailable < Error; end
class ConnectionClosedError (line 23) | class ConnectionClosedError < Error; end
class HandshakeError (line 24) | class HandshakeError < Error; end
class HeloError (line 25) | class HeloError < HandshakeError; end
class PingpongError (line 26) | class PingpongError < HandshakeError; end
FILE: lib/fluent/plugin/out_forward/failure_detector.rb
type Fluent::Plugin (line 19) | module Fluent::Plugin
class ForwardOutput (line 20) | class ForwardOutput < Output
class FailureDetector (line 21) | class FailureDetector
method initialize (line 25) | def initialize(heartbeat_interval, hard_timeout, init_last)
method hard_timeout? (line 35) | def hard_timeout?(now)
method add (line 39) | def add(now)
method phi (line 51) | def phi(now)
method sample_size (line 74) | def sample_size
method clear (line 78) | def clear
FILE: lib/fluent/plugin/out_forward/handshake_protocol.rb
type Fluent::Plugin (line 21) | module Fluent::Plugin
class ForwardOutput (line 22) | class ForwardOutput < Output
class HandshakeProtocol (line 23) | class HandshakeProtocol
method initialize (line 24) | def initialize(log:, hostname:, shared_key:, password:, username:)
method invoke (line 33) | def invoke(sock, ri, data)
method check_pong (line 58) | def check_pong(ri, message)
method check_helo (line 83) | def check_helo(ri, message)
method generate_ping (line 97) | def generate_ping(ri)
method generate_salt (line 120) | def generate_salt
FILE: lib/fluent/plugin/out_forward/load_balancer.rb
type Fluent::Plugin (line 20) | module Fluent::Plugin
class ForwardOutput (line 21) | class ForwardOutput < Output
class LoadBalancer (line 22) | class LoadBalancer
method initialize (line 23) | def initialize(log)
method select_healthy_node (line 31) | def select_healthy_node
method rebuild_weight_array (line 58) | def rebuild_weight_array(nodes)
FILE: lib/fluent/plugin/out_forward/socket_cache.rb
type Fluent::Plugin (line 19) | module Fluent::Plugin
class ForwardOutput (line 20) | class ForwardOutput < Output
class SocketCache (line 21) | class SocketCache
method initialize (line 24) | def initialize(timeout, log)
method checkout_or (line 33) | def checkout_or(key)
method checkin (line 50) | def checkin(sock)
method revoke (line 61) | def revoke(sock)
method purge_obsolete_socks (line 71) | def purge_obsolete_socks
method clear (line 98) | def clear
method pick_socket (line 118) | def pick_socket(key)
method timeout (line 133) | def timeout
method expired_socket? (line 137) | def expired_socket?(sock, time: Time.now)
FILE: lib/fluent/plugin/out_http.rb
class Net::HTTP (line 27) | class Net::HTTP
type Fluent::Plugin (line 34) | module Fluent::Plugin
class HTTPOutput (line 35) | class HTTPOutput < Output
class RetryableResponse (line 38) | class RetryableResponse < StandardError; end
method connection_cache_id_thread_key (line 109) | def connection_cache_id_thread_key
method connection_cache_id_for_thread (line 113) | def connection_cache_id_for_thread
method connection_cache_id_for_thread= (line 117) | def connection_cache_id_for_thread=(id)
method initialize (line 121) | def initialize
method close (line 133) | def close
method configure (line 139) | def configure(conf)
method multi_workers_ready? (line 192) | def multi_workers_ready?
method formatted_to_msgpack_binary? (line 196) | def formatted_to_msgpack_binary?
method format (line 200) | def format(tag, time, record)
method format_json_array (line 204) | def format_json_array(tag, time, record)
method write (line 208) | def write(chunk)
method setup_content_type (line 219) | def setup_content_type
method setup_http_option (line 236) | def setup_http_option
method parse_endpoint (line 279) | def parse_endpoint(chunk)
method set_headers (line 284) | def set_headers(req, uri, chunk)
method set_auth (line 301) | def set_auth(req, uri)
method create_request (line 323) | def create_request(chunk, uri)
method make_request_cached (line 345) | def make_request_cached(uri, req)
method make_request (line 367) | def make_request(uri, req, &block)
method send_request (line 375) | def send_request(uri, req)
FILE: lib/fluent/plugin/out_null.rb
type Fluent::Plugin (line 19) | module Fluent::Plugin
class NullOutput (line 20) | class NullOutput < Output
method prefer_buffered_processing (line 33) | def prefer_buffered_processing
method prefer_delayed_commit (line 37) | def prefer_delayed_commit
method initialize (line 43) | def initialize
method multi_workers_ready? (line 49) | def multi_workers_ready?
method process (line 53) | def process(tag, es)
method write (line 58) | def write(chunk)
method try_write (line 65) | def try_write(chunk)
FILE: lib/fluent/plugin/out_relabel.rb
type Fluent::Plugin (line 19) | module Fluent::Plugin
class RelabelOutput (line 20) | class RelabelOutput < Output
method multi_workers_ready? (line 24) | def multi_workers_ready?
method process (line 28) | def process(tag, es)
FILE: lib/fluent/plugin/out_roundrobin.rb
type Fluent::Plugin (line 20) | module Fluent::Plugin
class RoundRobinOutput (line 21) | class RoundRobinOutput < MultiOutput
method initialize (line 28) | def initialize
method configure (line 35) | def configure(conf)
method multi_workers_ready? (line 45) | def multi_workers_ready?
method start (line 49) | def start
method process (line 54) | def process(tag, es)
method next_output (line 60) | def next_output
method rebuild_weight_array (line 65) | def rebuild_weight_array
FILE: lib/fluent/plugin/out_secondary_file.rb
type Fluent::Plugin (line 22) | module Fluent::Plugin
class SecondaryFileOutput (line 23) | class SecondaryFileOutput < Output
method configure (line 36) | def configure(conf)
method multi_workers_ready? (line 66) | def multi_workers_ready?
method write (line 70) | def write(chunk)
method validate_compatible_with_primary_buffer! (line 94) | def validate_compatible_with_primary_buffer!(path_without_suffix)
method has_time_format? (line 112) | def has_time_format?(str)
method generate_path (line 116) | def generate_path(path_without_suffix)
class FileAlreadyExist (line 145) | class FileAlreadyExist < StandardError
FILE: lib/fluent/plugin/out_stdout.rb
type Fluent::Plugin (line 19) | module Fluent::Plugin
class StdoutOutput (line 20) | class StdoutOutput < Output
method prefer_buffered_processing (line 42) | def prefer_buffered_processing
method multi_workers_ready? (line 46) | def multi_workers_ready?
method dest_io (line 50) | def dest_io
method configure (line 56) | def configure(conf)
method process (line 64) | def process(tag, es)
method format (line 72) | def format(tag, time, record)
method write (line 77) | def write(chunk)
FILE: lib/fluent/plugin/out_stream.rb
type Fluent (line 23) | module Fluent
class StreamOutput (line 25) | class StreamOutput < BufferedOutput
method configure (line 30) | def configure(conf)
method format_stream (line 35) | def format_stream(tag, es)
method write (line 40) | def write(chunk)
method flush_secondary (line 55) | def flush_secondary(secondary)
class ReformatWriter (line 62) | class ReformatWriter
method initialize (line 63) | def initialize(secondary)
method write (line 67) | def write(chunk)
class TcpOutput (line 88) | class TcpOutput < StreamOutput
method initialize (line 93) | def initialize
method configure (line 102) | def configure(conf)
method connect (line 106) | def connect
class UnixOutput (line 112) | class UnixOutput < StreamOutput
method initialize (line 115) | def initialize
method configure (line 122) | def configure(conf)
method connect (line 126) | def connect
FILE: lib/fluent/plugin/output.rb
type Fluent (line 33) | module Fluent
type Plugin (line 34) | module Plugin
class Output (line 35) | class Output < Base
method process (line 114) | def process(tag, es)
method write (line 118) | def write(chunk)
method try_write (line 122) | def try_write(chunk)
method format (line 126) | def format(tag, time, record)
method formatted_to_msgpack_binary? (line 131) | def formatted_to_msgpack_binary?
method formatted_to_msgpack_binary (line 138) | def formatted_to_msgpack_binary
method prefer_buffered_processing (line 142) | def prefer_buffered_processing
method prefer_delayed_commit (line 149) | def prefer_delayed_commit
method multi_workers_ready? (line 154) | def multi_workers_ready?
method expired? (line 161) | def expired?
method initialize (line 174) | def initialize
method acts_as_secondary (line 226) | def acts_as_secondary(primary)
method configure (line 244) | def configure(conf)
method keep_buffer_config_compat (line 421) | def keep_buffer_config_compat
method start (line 427) | def start
method after_start (line 505) | def after_start
method stop (line 510) | def stop
method before_shutdown (line 517) | def before_shutdown
method shutdown (line 536) | def shutdown
method after_shutdown (line 543) | def after_shutdown
method close (line 569) | def close
method terminate (line 576) | def terminate
method actual_flush_thread_count (line 583) | def actual_flush_thread_count
method synchronize_path (line 593) | def synchronize_path(path)
method synchronize_path_in_workers (line 601) | def synchronize_path_in_workers(path)
method synchronize_in_threads (line 610) | def synchronize_in_threads
method support_in_v12_style? (line 619) | def support_in_v12_style?(feature)
method implement? (line 631) | def implement?(feature)
method placeholder_validate! (line 643) | def placeholder_validate!(name, str)
method placeholder_validators (line 649) | def placeholder_validators(name, str, time_key = (@chunk_key_time ...
class PlaceholderValidator (line 670) | class PlaceholderValidator
method initialize (line 673) | def initialize(name, str, type, arg)
method time? (line 681) | def time?
method tag? (line 685) | def tag?
method keys? (line 689) | def keys?
method validate! (line 693) | def validate!
method validate_time! (line 701) | def validate_time!
method validate_tag! (line 717) | def validate_tag!
method validate_keys! (line 728) | def validate_keys!
method get_placeholders_time (line 750) | def get_placeholders_time(str)
method get_placeholders_tag (line 760) | def get_placeholders_tag(str)
method get_placeholders_keys (line 773) | def get_placeholders_keys(str)
method extract_placeholders (line 778) | def extract_placeholders(str, chunk)
method emit_events (line 853) | def emit_events(tag, es)
method emit_sync (line 862) | def emit_sync(tag, es)
method emit_buffered (line 874) | def emit_buffered(tag, es)
method metadata (line 889) | def metadata(tag, time, record)
method calculate_timekey (line 928) | def calculate_timekey(time)
method chunk_for_test (line 938) | def chunk_for_test(tag, time, record)
method execute_chunking (line 945) | def execute_chunking(tag, es, enqueue: false)
method write_guard (line 955) | def write_guard(&block)
method generate_format_proc (line 1004) | def generate_format_proc
method handle_stream_with_custom_format (line 1023) | def handle_stream_with_custom_format(tag, es, enqueue: false)
method handle_stream_with_standard_format (line 1043) | def handle_stream_with_standard_format(tag, es, enqueue: false)
method handle_stream_simple (line 1061) | def handle_stream_simple(tag, es, enqueue: false)
method commit_write (line 1087) | def commit_write(chunk_id, delayed: @delayed_commit, secondary: fa...
method rollback_write (line 1111) | def rollback_write(chunk_id, update_retry: true)
method try_rollback_write (line 1132) | def try_rollback_write
method try_rollback_all (line 1146) | def try_rollback_all
method next_flush_time (line 1161) | def next_flush_time
method try_flush (line 1173) | def try_flush
method backup_chunk (line 1274) | def backup_chunk(chunk, using_secondary, delayed_commit)
method check_slow_flush (line 1285) | def check_slow_flush(start)
method update_retry_state (line 1296) | def update_retry_state(chunk_id, using_secondary, error = nil)
method log_retry_error (line 1331) | def log_retry_error(error, chunk_id_hex, using_secondary)
method handle_limit_reached (line 1342) | def handle_limit_reached(error)
method retry_state (line 1354) | def retry_state(randomize)
method submit_flush_once (line 1373) | def submit_flush_once
method force_flush (line 1389) | def force_flush
method submit_flush_all (line 1396) | def submit_flush_all
method interrupt_flushes (line 1405) | def interrupt_flushes
method enqueue_thread_wait (line 1410) | def enqueue_thread_wait
method flush_thread_wakeup (line 1422) | def flush_thread_wakeup
method enqueue_thread_run (line 1434) | def enqueue_thread_run
method flush_thread_run (line 1499) | def flush_thread_run(state)
method statistics (line 1568) | def statistics
FILE: lib/fluent/plugin/owned_by_mixin.rb
type Fluent (line 17) | module Fluent
type Plugin (line 18) | module Plugin
type OwnedByMixin (line 19) | module OwnedByMixin
function owner= (line 20) | def owner=(plugin)
function owner (line 28) | def owner
function log (line 34) | def log
FILE: lib/fluent/plugin/parser.rb
type Fluent (line 27) | module Fluent
type Plugin (line 28) | module Plugin
class Parser (line 29) | class Parser < Base
class TimeoutChecker (line 30) | class TimeoutChecker
method initialize (line 33) | def initialize(timeout)
method start (line 41) | def start
method stop (line 58) | def stop
method execute (line 63) | def execute
class ParserError (line 76) | class ParserError < StandardError; end
method parser_type (line 104) | def parser_type
method initialize (line 108) | def initialize
method configure (line 114) | def configure(conf)
method start (line 131) | def start
method stop (line 137) | def stop
method parse (line 143) | def parse(text, &block)
method parse_with_timeout (line 147) | def parse_with_timeout(text, &block)
method call (line 157) | def call(*a, &b)
method implement? (line 163) | def implement?(feature)
method parse_io (line 173) | def parse_io(io, &block)
method parse_partial_data (line 177) | def parse_partial_data(data, &block)
method parse_time (line 181) | def parse_time(record)
method convert_values (line 202) | def convert_values(time, record)
method string_like_null (line 222) | def string_like_null(value, null_empty_string = @null_empty_string...
method build_type_converters (line 228) | def build_type_converters(types)
FILE: lib/fluent/plugin/parser_apache.rb
type Fluent (line 19) | module Fluent
type Plugin (line 20) | module Plugin
class ApacheParser (line 21) | class ApacheParser < RegexpParser
FILE: lib/fluent/plugin/parser_apache2.rb
type Fluent (line 19) | module Fluent
type Plugin (line 20) | module Plugin
class Apache2Parser (line 21) | class Apache2Parser < Parser
method initialize (line 27) | def initialize
method configure (line 32) | def configure(conf)
method patterns (line 37) | def patterns
method parse (line 41) | def parse(text)
FILE: lib/fluent/plugin/parser_apache_error.rb
type Fluent (line 19) | module Fluent
type Plugin (line 20) | module Plugin
class ApacheErrorParser (line 21) | class ApacheErrorParser < RegexpParser
FILE: lib/fluent/plugin/parser_csv.rb
type Fluent (line 21) | module Fluent
type Plugin (line 22) | module Plugin
class CSVParser (line 23) | class CSVParser < Parser
method configure (line 33) | def configure(conf)
method parse (line 48) | def parse(text, &block)
method parse_fast (line 55) | def parse_fast(text, &block)
method parse_fast_internal (line 64) | def parse_fast_internal(text)
FILE: lib/fluent/plugin/parser_json.rb
type Fluent (line 24) | module Fluent
type Plugin (line 25) | module Plugin
class JSONParser (line 26) | class JSONParser < Parser
method configure (line 41) | def configure(conf)
method configure_json_parser (line 50) | def configure_json_parser(name)
method parse (line 64) | def parse(text)
method parse_one_record (line 87) | def parse_one_record(record)
method parser_type (line 92) | def parser_type
method parse_io (line 96) | def parse_io(io, &block)
FILE: lib/fluent/plugin/parser_ltsv.rb
type Fluent (line 19) | module Fluent
type Plugin (line 20) | module Plugin
class LabeledTSVParser (line 21) | class LabeledTSVParser < Parser
method configure (line 33) | def configure(conf)
method parse (line 38) | def parse(text)
FILE: lib/fluent/plugin/parser_msgpack.rb
type Fluent (line 20) | module Fluent
type Plugin (line 21) | module Plugin
class MessagePackParser (line 22) | class MessagePackParser < Parser
method configure (line 25) | def configure(conf)
method parser_type (line 30) | def parser_type
method parse (line 34) | def parse(data, &block)
method parse_io (line 41) | def parse_io(io, &block)
method parse_unpacked_data (line 48) | def parse_unpacked_data(data)
FILE: lib/fluent/plugin/parser_multiline.rb
type Fluent (line 20) | module Fluent
type Plugin (line 21) | module Plugin
class MultilineParser (line 22) | class MultilineParser < Parser
class MultilineRegexpParser (line 32) | class MultilineRegexpParser < Fluent::Plugin::RegexpParser
method parse (line 33) | def parse(text)
method configure (line 54) | def configure(conf)
method parse (line 76) | def parse(text, &block)
method has_firstline? (line 102) | def has_firstline?
method firstline? (line 106) | def firstline?(text)
method parse_formats (line 112) | def parse_formats(conf)
method check_format_range (line 129) | def check_format_range(conf)
method check_format_regexp (line 139) | def check_format_regexp(format, key)
FILE: lib/fluent/plugin/parser_nginx.rb
type Fluent (line 19) | module Fluent
type Plugin (line 20) | module Plugin
class NginxParser (line 21) | class NginxParser < RegexpParser
FILE: lib/fluent/plugin/parser_none.rb
type Fluent (line 21) | module Fluent
type Plugin (line 22) | module Plugin
class NoneParser (line 23) | class NoneParser < Parser
method parse (line 29) | def parse(text)
FILE: lib/fluent/plugin/parser_regexp.rb
type Fluent (line 19) | module Fluent
type Plugin (line 20) | module Plugin
class RegexpParser (line 21) | class RegexpParser < Parser
method configure (line 33) | def configure(conf)
method parse (line 49) | def parse(text)
FILE: lib/fluent/plugin/parser_syslog.rb
type Fluent (line 21) | module Fluent
type Plugin (line 22) | module Plugin
class SyslogParser (line 23) | class SyslogParser < Parser
method initialize (line 63) | def initialize
method configure (line 79) | def configure(conf)
method setup_time_parser_3164 (line 124) | def setup_time_parser_3164(time_fmt)
method setup_time_parser_5424 (line 132) | def setup_time_parser_5424(time_fmt)
method patterns (line 140) | def patterns
method parse (line 144) | def parse(text)
method parse_auto (line 148) | def parse_auto(text, &block)
method parse_rfc3164_regex (line 166) | def parse_rfc3164_regex(text, &block)
method parse_rfc5424_regex (line 201) | def parse_rfc5424_regex(text, &block)
method parse_plain (line 246) | def parse_plain(re, time, text, idx, record, capture_list, &block)
method parse_rfc3164 (line 272) | def parse_rfc3164(text, &block)
method parse_rfc5424 (line 374) | def parse_rfc5424(text, &block)
FILE: lib/fluent/plugin/parser_tsv.rb
type Fluent (line 19) | module Fluent
type Plugin (line 20) | module Plugin
class TSVParser (line 21) | class TSVParser < Parser
method configure (line 29) | def configure(conf)
method parse (line 34) | def parse(text)
FILE: lib/fluent/plugin/sd_file.rb
type Fluent (line 22) | module Fluent
type Plugin (line 23) | module Plugin
class FileServiceDiscovery (line 24) | class FileServiceDiscovery < ServiceDiscovery
method initialize (line 38) | def initialize
method configure (line 44) | def configure(conf)
method start (line 59) | def start(queue)
method parser (line 70) | def parser
method refresh_file (line 82) | def refresh_file(queue)
method fetch_server_info (line 115) | def fetch_server_info
class StatWatcher (line 140) | class StatWatcher < Coolio::StatWatcher
method initialize (line 141) | def initialize(path, log, &callback)
method on_change (line 148) | def on_change(prev_stat, cur_stat)
FILE: lib/fluent/plugin/sd_srv.rb
type Fluent (line 22) | module Fluent
type Plugin (line 23) | module Plugin
class SrvServiceDiscovery (line 24) | class SrvServiceDiscovery < ServiceDiscovery
method initialize (line 50) | def initialize
method configure (line 55) | def configure(conf)
method start (line 72) | def start(queue)
method refresh_srv_records (line 82) | def refresh_srv_records(queue)
method fetch_srv_record (line 113) | def fetch_srv_record
method dns_lookup! (line 129) | def dns_lookup!(host)
FILE: lib/fluent/plugin/sd_static.rb
type Fluent (line 19) | module Fluent
type Plugin (line 20) | module Plugin
class StaticServiceDiscovery (line 21) | class StaticServiceDiscovery < ServiceDiscovery
method configure (line 45) | def configure(conf)
method start (line 53) | def start(queue = nil)
FILE: lib/fluent/plugin/service_discovery.rb
type Fluent (line 23) | module Fluent
type Plugin (line 24) | module Plugin
class ServiceDiscovery (line 25) | class ServiceDiscovery < Base
method discovery_id (line 35) | def discovery_id
method service_in_msg (line 45) | def service_in_msg(service)
method service_out_msg (line 49) | def service_out_msg(service)
method initialize (line 54) | def initialize
method start (line 60) | def start(queue = nil)
FILE: lib/fluent/plugin/socket_util.rb
type Fluent (line 19) | module Fluent
FILE: lib/fluent/plugin/storage.rb
type Fluent (line 20) | module Fluent
type Plugin (line 21) | module Plugin
class Storage (line 22) | class Storage < Base
method validate_key (line 34) | def self.validate_key(key)
method persistent_always? (line 41) | def persistent_always?
method synchronized? (line 45) | def synchronized?
method implementation (line 49) | def implementation
method load (line 53) | def load
method save (line 57) | def save
method get (line 61) | def get(key)
method fetch (line 65) | def fetch(key, defval)
method put (line 69) | def put(key, value)
method delete (line 74) | def delete(key)
method update (line 79) | def update(key, &block) # transactional get-and-update
FILE: lib/fluent/plugin/storage_local.rb
type Fluent (line 24) | module Fluent
type Plugin (line 25) | module Plugin
class LocalStorage (line 26) | class LocalStorage < Storage
method initialize (line 40) | def initialize
method configure (line 46) | def configure(conf)
method multi_workers_ready? (line 105) | def multi_workers_ready?
method load (line 112) | def load
method save (line 129) | def save
method get (line 145) | def get(key)
method fetch (line 149) | def fetch(key, defval)
method put (line 153) | def put(key, value)
method delete (line 157) | def delete(key)
method update (line 161) | def update(key, &block)
FILE: lib/fluent/plugin/string_util.rb
type Fluent (line 19) | module Fluent
FILE: lib/fluent/plugin_helper.rb
type Fluent (line 37) | module Fluent
type PluginHelper (line 38) | module PluginHelper
type Mixin (line 39) | module Mixin
function included (line 40) | def self.included(mod)
function extended (line 45) | def self.extended(mod)
function helpers_internal (line 53) | def helpers_internal(*snake_case_symbols)
function helpers (line 65) | def helpers(*snake_case_symbols)
function plugin_helpers (line 71) | def plugin_helpers
FILE: lib/fluent/plugin_helper/cert_option.rb
type Fluent (line 23) | module Fluent
type PluginHelper (line 24) | module PluginHelper
type CertOption (line 25) | module CertOption
function cert_option_create_context (line 26) | def cert_option_create_context(version, insecure, ciphers, conf)
function cert_option_server_validate! (line 68) | def cert_option_server_validate!(conf)
function cert_option_load (line 96) | def cert_option_load(cert_path, private_key_path, private_key_pass...
function cert_option_cert_generation_opts_from_conf (line 103) | def cert_option_cert_generation_opts_from_conf(conf)
function cert_option_generate_pair (line 115) | def cert_option_generate_pair(opts, issuer = nil)
function cert_option_add_extensions (line 138) | def cert_option_add_extensions(cert, extensions)
function cert_option_generate_ca_pair_self_signed (line 146) | def cert_option_generate_ca_pair_self_signed(generate_opts)
function cert_option_generate_server_pair_by_ca (line 157) | def cert_option_generate_server_pair_by_ca(ca_cert_path, ca_key_pa...
function cert_option_generate_server_pair_self_signed (line 174) | def cert_option_generate_server_pair_self_signed(generate_opts)
function cert_option_certificates_from_file (line 187) | def cert_option_certificates_from_file(path)
FILE: lib/fluent/plugin_helper/child_process.rb
type Fluent (line 24) | module Fluent
type PluginHelper (line 25) | module PluginHelper
type ChildProcess (line 26) | module ChildProcess
function child_process_running? (line 44) | def child_process_running?
function child_process_id (line 49) | def child_process_id
function child_process_exist? (line 53) | def child_process_exist?(pid)
function child_process_execute (line 65) | def child_process_execute(
function initialize (line 122) | def initialize
function stop (line 131) | def stop
function shutdown (line 142) | def shutdown
function close (line 174) | def close
function terminate (line 202) | def terminate
function child_process_kill (line 208) | def child_process_kill(pinfo, force: false)
function child_process_execute_once (line 231) | def child_process_execute_once(
FILE: lib/fluent/plugin_helper/compat_parameters.rb
type Fluent (line 20) | module Fluent
type PluginHelper (line 21) | module PluginHelper
type CompatParameters (line 22) | module CompatParameters
function compat_parameters_convert (line 112) | def compat_parameters_convert(conf, *types, **kwargs)
function compat_parameters_buffer (line 133) | def compat_parameters_buffer(conf, default_chunk_key: '')
function compat_parameters_inject (line 181) | def compat_parameters_inject(conf)
function to_bool (line 222) | def to_bool(v)
function compat_parameters_extract (line 230) | def compat_parameters_extract(conf)
function compat_parameters_parser (line 264) | def compat_parameters_parser(conf)
function compat_parameters_formatter (line 310) | def compat_parameters_formatter(conf)
function compat_parameters_copy_to_subsection_attributes (line 327) | def compat_parameters_copy_to_subsection_attributes(conf, params, ...
FILE: lib/fluent/plugin_helper/counter.rb
type Fluent (line 20) | module Fluent
type PluginHelper (line 21) | module PluginHelper
type Counter (line 22) | module Counter
function counter_client_create (line 23) | def counter_client_create(scope:, loop: Coolio::Loop.new)
function initialize (line 35) | def initialize
function stop (line 40) | def stop
function terminate (line 45) | def terminate
FILE: lib/fluent/plugin_helper/event_emitter.rb
type Fluent (line 19) | module Fluent
type PluginHelper (line 20) | module PluginHelper
type EventEmitter (line 21) | module EventEmitter
function router (line 27) | def router
function router= (line 41) | def router=(r)
function has_router? (line 46) | def has_router?
function event_emitter_used_actually? (line 50) | def event_emitter_used_actually?
function event_emitter_apply_source_only (line 54) | def event_emitter_apply_source_only
function event_emitter_cancel_source_only (line 58) | def event_emitter_cancel_source_only
function event_emitter_router (line 62) | def event_emitter_router(label_name)
function initialize (line 82) | def initialize
function configure (line 90) | def configure(conf)
function after_shutdown (line 96) | def after_shutdown
function close (line 101) | def close # unset router many times to reduce test cost
function terminate (line 106) | def terminate
FILE: lib/fluent/plugin_helper/event_loop.rb
type Fluent (line 21) | module Fluent
type PluginHelper (line 22) | module PluginHelper
type EventLoop (line 23) | module EventLoop
function event_loop_attach (line 38) | def event_loop_attach(watcher)
function event_loop_detach (line 46) | def event_loop_detach(watcher)
function event_loop_wait_until_start (line 55) | def event_loop_wait_until_start
function event_loop_wait_until_stop (line 59) | def event_loop_wait_until_stop
function event_loop_running? (line 70) | def event_loop_running?
function initialize (line 74) | def initialize
function start (line 84) | def start
function shutdown (line 100) | def shutdown
function after_shutdown (line 116) | def after_shutdown
function close (line 139) | def close
function terminate (line 151) | def terminate
class DefaultWatcher (line 161) | class DefaultWatcher < Coolio::TimerWatcher
method initialize (line 162) | def initialize
method on_timer (line 166) | def on_timer; end
FILE: lib/fluent/plugin_helper/extract.rb
type Fluent (line 21) | module Fluent
type PluginHelper (line 22) | module PluginHelper
type Extract (line 23) | module Extract
function extract_tag_from_record (line 24) | def extract_tag_from_record(record)
function extract_time_from_record (line 35) | def extract_time_from_record(record)
type ExtractParams (line 46) | module ExtractParams
function included (line 63) | def self.included(mod)
function initialize (line 67) | def initialize
function configure (line 77) | def configure(conf)
FILE: lib/fluent/plugin_helper/formatter.rb
type Fluent (line 22) | module Fluent
type PluginHelper (line 23) | module PluginHelper
type Formatter (line 24) | module Formatter
function formatter_create (line 25) | def formatter_create(usage: '', type: nil, conf: nil, default_type...
type FormatterParams (line 61) | module FormatterParams
function included (line 70) | def self.included(mod)
function initialize (line 76) | def initialize
function configure (line 82) | def configure(conf)
function start (line 95) | def start
function formatter_operate (line 103) | def formatter_operate(method_name, &block)
function stop (line 114) | def stop
function before_shutdown (line 119) | def before_shutdown
function shutdown (line 124) | def shutdown
function after_shutdown (line 129) | def after_shutdown
function close (line 134) | def close
function terminate (line 139) | def terminate
FILE: lib/fluent/plugin_helper/http_server.rb
type Fluent (line 22) | module Fluent
type PluginHelper (line 23) | module PluginHelper
type HttpServer (line 24) | module HttpServer
function included (line 33) | def self.included(mod)
function initialize (line 37) | def initialize(*)
function create_http_server (line 42) | def create_http_server(title, addr:, port:, logger:, default_app: ...
function http_server_create_http_server (line 54) | def http_server_create_http_server(title, addr:, port:, logger:, d...
function http_server_create_https_server (line 80) | def http_server_create_https_server(title, addr:, port:, logger:, ...
function stop (line 100) | def stop
function _http_server_overwrite_config (line 110) | def _http_server_overwrite_config(config, opts)
function _block_until_http_server_start (line 121) | def _block_until_http_server_start
FILE: lib/fluent/plugin_helper/http_server/app.rb
type Fluent (line 21) | module Fluent
type PluginHelper (line 22) | module PluginHelper
type HttpServer (line 23) | module HttpServer
class App (line 24) | class App
method initialize (line 25) | def initialize(router, logger)
method call (line 31) | def call(request)
FILE: lib/fluent/plugin_helper/http_server/methods.rb
type Fluent (line 17) | module Fluent
type PluginHelper (line 18) | module PluginHelper
type HttpServer (line 19) | module HttpServer
type Methods (line 20) | module Methods
FILE: lib/fluent/plugin_helper/http_server/request.rb
type Fluent (line 21) | module Fluent
type PluginHelper (line 22) | module PluginHelper
type HttpServer (line 23) | module HttpServer
class Request (line 24) | class Request
method initialize (line 27) | def initialize(request)
method headers (line 33) | def headers
method query (line 37) | def query
method body (line 47) | def body
FILE: lib/fluent/plugin_helper/http_server/router.rb
type Fluent (line 19) | module Fluent
type PluginHelper (line 20) | module PluginHelper
type HttpServer (line 21) | module HttpServer
class Router (line 22) | class Router
class NotFoundApp (line 23) | class NotFoundApp
method call (line 24) | def self.call(req)
method initialize (line 29) | def initialize(default_app = nil)
method mount (line 37) | def mount(method, path, app)
method route! (line 48) | def route!(method, path, request)
FILE: lib/fluent/plugin_helper/http_server/server.rb
type Fluent (line 26) | module Fluent
type PluginHelper (line 27) | module PluginHelper
type HttpServer (line 28) | module HttpServer
class Server (line 29) | class Server
method initialize (line 33) | def initialize(addr:, port:, logger:, default_app: nil, tls_cont...
method start (line 70) | def start(notify = nil)
method stop (line 92) | def stop
FILE: lib/fluent/plugin_helper/http_server/ssl_context_builder.rb
type Fluent (line 19) | module Fluent
type PluginHelper (line 20) | module PluginHelper
type HttpServer (line 21) | module HttpServer
class SSLContextBuilder (line 23) | class SSLContextBuilder
method initialize (line 26) | def initialize(log)
method build (line 31) | def build(config)
FILE: lib/fluent/plugin_helper/inject.rb
type Fluent (line 22) | module Fluent
type PluginHelper (line 23) | module PluginHelper
type Inject (line 24) | module Inject
function inject_values_to_record (line 25) | def inject_values_to_record(tag, time, record)
function inject_values_to_event_stream (line 45) | def inject_values_to_event_stream(tag, es)
type InjectParams (line 69) | module InjectParams
function included (line 87) | def self.included(mod)
function initialize (line 91) | def initialize
function configure (line 103) | def configure(conf)
FILE: lib/fluent/plugin_helper/metrics.rb
type Fluent (line 26) | module Fluent
type PluginHelper (line 27) | module PluginHelper
type Metrics (line 28) | module Metrics
function initialize (line 33) | def initialize
function configure (line 39) | def configure(conf)
function metrics_create (line 53) | def metrics_create(namespace: "fluentd", subsystem: "metrics", nam...
function metrics_operate (line 85) | def metrics_operate(method_name, &block)
function start (line 96) | def start
function stop (line 103) | def stop
function before_shutdown (line 109) | def before_shutdown
function shutdown (line 114) | def shutdown
function after_shutdown (line 119) | def after_shutdown
function close (line 124) | def close
function terminate (line 129) | def terminate
FILE: lib/fluent/plugin_helper/parser.rb
type Fluent (line 22) | module Fluent
type PluginHelper (line 23) | module PluginHelper
type Parser (line 24) | module Parser
function parser_create (line 25) | def parser_create(usage: '', type: nil, conf: nil, default_type: nil)
type ParserParams (line 61) | module ParserParams
function included (line 70) | def self.included(mod)
function initialize (line 76) | def initialize
function configure (line 82) | def configure(conf)
function start (line 95) | def start
function parser_operate (line 103) | def parser_operate(method_name, &block)
function stop (line 114) | def stop
function before_shutdown (line 119) | def before_shutdown
function shutdown (line 124) | def shutdown
function after_shutdown (line 129) | def after_shutdown
function close (line 134) | def close
function terminate (line 139) | def terminate
FILE: lib/fluent/plugin_helper/record_accessor.rb
type Fluent (line 19) | module Fluent
type PluginHelper (line 20) | module PluginHelper
type RecordAccessor (line 21) | module RecordAccessor
function record_accessor_create (line 22) | def record_accessor_create(param)
function record_accessor_nested? (line 26) | def record_accessor_nested?(param)
class Accessor (line 30) | class Accessor
method initialize (line 33) | def initialize(param)
method call (line 54) | def call(r)
method call_dig (line 60) | def call_dig(r)
method delete (line 64) | def delete(r)
method delete_nest (line 68) | def delete_nest(r)
method set (line 80) | def set(r, v)
method set_nest (line 86) | def set_nest(r, v)
method parse_parameter (line 92) | def self.parse_parameter(param)
method parse_dot_notation (line 102) | def self.parse_dot_notation(param)
method validate_dot_keys (line 119) | def self.validate_dot_keys(keys)
method parse_dot_array_op (line 128) | def self.parse_dot_array_op(key, param)
method parse_bracket_notation (line 162) | def self.parse_bracket_notation(param)
FILE: lib/fluent/plugin_helper/retry_state.rb
type Fluent (line 17) | module Fluent
type PluginHelper (line 18) | module PluginHelper
type RetryState (line 19) | module RetryState
function retry_state_create (line 20) | def retry_state_create(
class RetryStateMachine (line 35) | class RetryStateMachine
method initialize (line 38) | def initialize(title, wait, timeout, forever, max_steps, randomi...
method current_time (line 75) | def current_time
method randomize (line 79) | def randomize(interval)
method calc_next_time (line 85) | def calc_next_time
method naive_next_time (line 114) | def naive_next_time(retry_times)
method secondary? (line 118) | def secondary?
method step (line 122) | def step
method recalc_next_time (line 140) | def recalc_next_time
method limit? (line 144) | def limit?
class ExponentialBackOffRetry (line 153) | class ExponentialBackOffRetry < RetryStateMachine
method initialize (line 154) | def initialize(title, wait, timeout, forever, max_steps, randomi...
method naive_next_time (line 164) | def naive_next_time(retry_next_times)
method calc_max_retry_timeout (line 169) | def calc_max_retry_timeout(max_steps)
method calc_interval (line 177) | def calc_interval(num)
method raw_interval (line 195) | def raw_interval(num)
class PeriodicRetry (line 200) | class PeriodicRetry < RetryStateMachine
method initialize (line 201) | def initialize(title, wait, timeout, forever, max_steps, randomi...
method naive_next_time (line 209) | def naive_next_time(retry_next_times)
method calc_max_retry_timeout (line 213) | def calc_max_retry_timeout(max_steps)
FILE: lib/fluent/plugin_helper/server.rb
type Fluent (line 29) | module Fluent
type PluginHelper (line 30) | module PluginHelper
type Server (line 31) | module Server
function server_wait_until_start (line 48) | def server_wait_until_start
function server_wait_until_stop (line 52) | def server_wait_until_stop
function server_create_connection (line 70) | def server_create_connection(title, port, proto: nil, bind: '0.0.0...
function server_create (line 124) | def server_create(title, port, proto: nil, bind: '0.0.0.0', shared...
function server_create_tcp (line 192) | def server_create_tcp(title, port, **kwargs, &callback)
function server_create_udp (line 196) | def server_create_udp(title, port, **kwargs, &callback)
function server_create_tls (line 200) | def server_create_tls(title, port, **kwargs, &callback)
function server_create_unix (line 204) | def server_create_unix(title, port, **kwargs, &callback)
function server_attach (line 210) | def server_attach(title, proto, port, bind, shared, server)
function server_create_for_tcp_connection (line 215) | def server_create_for_tcp_connection(shared, bind, port, backlog, ...
function server_create_for_tls_connection (line 230) | def server_create_for_tls_connection(shared, bind, port, conf, bac...
function server_create_transport_section_object (line 257) | def server_create_transport_section_object(opts)
type ServerTransportParams (line 267) | module ServerTransportParams
function included (line 325) | def self.included(mod)
function initialize (line 329) | def initialize
function configure (line 336) | def configure(conf)
function stop (line 346) | def stop
function shutdown (line 358) | def shutdown
function terminate (line 369) | def terminate
function server_socket_manager_client (line 374) | def server_socket_manager_client
function server_create_tcp_socket (line 382) | def server_create_tcp_socket(shared, bind, port)
function server_create_udp_socket (line 397) | def server_create_udp_socket(shared, bind, port)
class CallbackSocket (line 414) | class CallbackSocket
method initialize (line 415) | def initialize(server_type, sock, enabled_events = [], close_soc...
method remote_addr (line 423) | def remote_addr
method remote_host (line 427) | def remote_host
method remote_port (line 431) | def remote_port
method send (line 435) | def send(data, flags = 0)
method write (line 439) | def write(data)
method close_after_write_complete (line 443) | def close_after_write_complete
method close (line 447) | def close
method data (line 451) | def data(&callback)
method on (line 455) | def on(event, &callback)
class TCPCallbackSocket (line 472) | class TCPCallbackSocket < CallbackSocket
method initialize (line 477) | def initialize(sock)
method write (line 483) | def write(data)
class TLSCallbackSocket (line 488) | class TLSCallbackSocket < CallbackSocket
method initialize (line 493) | def initialize(sock)
method write (line 499) | def write(data)
class UDPCallbackSocket (line 504) | class UDPCallbackSocket < CallbackSocket
method initialize (line 507) | def initialize(sock, peeraddr, **kwargs)
method remote_addr (line 512) | def remote_addr
method remote_host (line 516) | def remote_host
method remote_port (line 520) | def remote_port
method write (line 524) | def write(data)
type EventHandler (line 529) | module EventHandler
class UDPServer (line 530) | class UDPServer < Coolio::IO
method initialize (line 533) | def initialize(sock, max_bytes, flags, close_socket, log, unde...
method on_readable_without_sock (line 555) | def on_readable_without_sock
method on_readable_with_sock (line 572) | def on_readable_with_sock
class TCPServer (line 590) | class TCPServer < Coolio::TCPSocket
method initialize (line 594) | def initialize(sock, socket_option_setter, close_callback, log...
method to_io (line 616) | def to_io
method data (line 620) | def data(&callback)
method write (line 632) | def write(data)
method on_writable (line 638) | def on_writable
method on_connect (line 643) | def on_connect
method on_read_without_connection (line 651) | def on_read_without_connection(data)
method on_read_with_connection (line 660) | def on_read_with_connection(data)
method close (line 669) | def close
class TLSServer (line 679) | class TLSServer < Coolio::Socket
method initialize (line 684) | def initialize(sock, context, socket_option_setter, close_call...
method to_io (line 708) | def to_io
method data (line 712) | def data(&callback)
method write (line 724) | def write(data)
method try_tls_accept (line 732) | def try_tls_accept
method on_connect (line 766) | def on_connect
method on_readable (line 770) | def on_readable
method on_writable (line 781) | def on_writable
method on_read_without_connection (line 810) | def on_read_without_connection(data)
method on_read_with_connection (line 819) | def on_read_with_connection(data)
method close (line 828) | def close
FILE: lib/fluent/plugin_helper/service_discovery.rb
type Fluent (line 20) | module Fluent
type PluginHelper (line 21) | module PluginHelper
type ServiceDiscovery (line 22) | module ServiceDiscovery
function included (line 28) | def self.included(mod)
function configure (line 32) | def configure(conf)
function start (line 38) | def start
function service_discovery_configure (line 68) | def service_discovery_configure(title, static_default_service_dire...
function service_discovery_select_service (line 81) | def service_discovery_select_service(&block)
function service_discovery_services (line 85) | def service_discovery_services
function service_discovery_rebalance (line 89) | def service_discovery_rebalance
function service_discovery_create_manager (line 97) | def service_discovery_create_manager(title, configurations:, load_...
function discovery_manager (line 112) | def discovery_manager
type ServiceDiscoveryParams (line 116) | module ServiceDiscoveryParams
FILE: lib/fluent/plugin_helper/service_discovery/manager.rb
type Fluent (line 20) | module Fluent
type PluginHelper (line 21) | module PluginHelper
type ServiceDiscovery (line 22) | module ServiceDiscovery
class Manager (line 23) | class Manager
method initialize (line 24) | def initialize(log:, load_balancer: nil, custom_build_method: nil)
method configure (line 35) | def configure(configs, parent: nil)
method static_config? (line 59) | def static_config?
method start (line 63) | def start
method run_once (line 77) | def run_once
method rebalance (line 103) | def rebalance
method select_service (line 107) | def select_service(&block)
method services (line 111) | def services
method handle_message (line 117) | def handle_message(msg)
method build_service (line 140) | def build_service(n)
FILE: lib/fluent/plugin_helper/service_discovery/round_robin_balancer.rb
type Fluent (line 17) | module Fluent
type PluginHelper (line 18) | module PluginHelper
type ServiceDiscovery (line 19) | module ServiceDiscovery
class RoundRobinBalancer (line 20) | class RoundRobinBalancer
method initialize (line 21) | def initialize
method rebalance (line 26) | def rebalance(services)
method select_service (line 32) | def select_service
FILE: lib/fluent/plugin_helper/socket.rb
type Fluent (line 27) | module Fluent
type PluginHelper (line 28) | module PluginHelper
type Socket (line 29) | module Socket
function socket_create (line 41) | def socket_create(proto, host, port, **kwargs, &block)
function socket_create_tcp (line 56) | def socket_create_tcp(host, port, resolve_name: false, connect_tim...
function socket_create_udp (line 77) | def socket_create_udp(host, port, resolve_name: false, connect: fa...
function socket_create_tls (line 93) | def socket_create_tls(
function socket_certificates_from_file (line 207) | def socket_certificates_from_file(path)
function tls_verify_result_name (line 218) | def self.tls_verify_result_name(code)
type WrappedSocket (line 257) | module WrappedSocket
class TCP (line 258) | class TCP < ::TCPSocket
method remote_addr (line 259) | def remote_addr; peeraddr[3]; end
method remote_host (line 260) | def remote_host; peeraddr[2]; end
method remote_port (line 261) | def remote_port; peeraddr[1]; end
class UDP (line 263) | class UDP < ::UDPSocket
method remote_addr (line 264) | def remote_addr; peeraddr[3]; end
method remote_host (line 265) | def remote_host; peeraddr[2]; end
method remote_port (line 266) | def remote_port; peeraddr[1]; end
class TLS (line 268) | class TLS < OpenSSL::SSL::SSLSocket
method remote_addr (line 269) | def remote_addr; peeraddr[3]; end
method remote_host (line 270) | def remote_host; peeraddr[2]; end
method remote_port (line 271) | def remote_port; peeraddr[1]; end
function initialize (line 275) | def initialize
FILE: lib/fluent/plugin_helper/socket_option.rb
type Fluent (line 21) | module Fluent
type PluginHelper (line 22) | module PluginHelper
type SocketOption (line 23) | module SocketOption
function socket_option_validate! (line 29) | def socket_option_validate!(protocol, resolve_name: nil, linger_ti...
function socket_option_set (line 47) | def socket_option_set(sock, resolve_name: nil, nonblock: false, li...
function socket_option_set_one (line 91) | def socket_option_set_one(sock, option, value)
FILE: lib/fluent/plugin_helper/storage.rb
type Fluent (line 25) | module Fluent
type PluginHelper (line 26) | module PluginHelper
type Storage (line 27) | module Storage
function storage_create (line 32) | def storage_create(usage: '', type: nil, conf: nil, default_type: ...
type StorageParams (line 79) | module StorageParams
function included (line 88) | def self.included(mod)
function initialize (line 94) | def initialize
function configure (line 100) | def configure(conf)
function start (line 116) | def start
function storage_operate (line 137) | def storage_operate(method_name, &block)
function stop (line 148) | def stop
function before_shutdown (line 154) | def before_shutdown
function shutdown (line 159) | def shutdown
function after_shutdown (line 166) | def after_shutdown
function close (line 171) | def close
function terminate (line 176) | def terminate
function wrap_instance (line 182) | def wrap_instance(storage)
class PersistentWrapper (line 194) | class PersistentWrapper
method initialize (line 198) | def initialize(storage)
method method_missing (line 207) | def method_missing(name, *args)
method persistent_always? (line 211) | def persistent_always?
method persistent (line 215) | def persistent
method autosave (line 219) | def autosave
method synchronized? (line 223) | def synchronized?
method implementation (line 227) | def implementation
method load (line 231) | def load
method save (line 237) | def save
method get (line 243) | def get(key)
method fetch (line 250) | def fetch(key, defval)
method put (line 257) | def put(key, value)
method delete (line 266) | def delete(key)
method update (line 275) | def update(key, &block)
class SynchronizeWrapper (line 286) | class SynchronizeWrapper
method initialize (line 289) | def initialize(storage)
method method_missing (line 299) | def method_missing(name, *args)
method synchronized? (line 303) | def synchronized?
method implementation (line 307) | def implementation
method load (line 311) | def load
method save (line 317) | def save
method get (line 323) | def get(key)
method fetch (line 327) | def fetch(key, defval)
method put (line 331) | def put(key, value)
method delete (line 335) | def delete(key)
method update (line 339) | def update(key, &block)
FILE: lib/fluent/plugin_helper/thread.rb
type Fluent (line 19) | module Fluent
type PluginHelper (line 20) | module PluginHelper
type Thread (line 21) | module Thread
function thread_current_running? (line 32) | def thread_current_running?
function thread_wait_until_start (line 37) | def thread_wait_until_start
function thread_wait_until_stop (line 43) | def thread_wait_until_stop
function thread_create (line 65) | def thread_create(title)
function thread_exist? (line 103) | def thread_exist?(title)
function thread_started? (line 107) | def thread_started?(title)
function thread_running? (line 112) | def thread_running?(title)
function initialize (line 117) | def initialize
function stop (line 124) | def stop
function after_shutdown (line 140) | def after_shutdown
function close (line 153) | def close
function terminate (line 164) | def terminate
FILE: lib/fluent/plugin_helper/timer.rb
type Fluent (line 20) | module Fluent
type PluginHelper (line 21) | module PluginHelper
type Timer (line 22) | module Timer
function timer_execute (line 33) | def timer_execute(title, interval, repeat: true, &block)
function timer_running? (line 44) | def timer_running?
function initialize (line 48) | def initialize
function start (line 53) | def start
function stop (line 58) | def stop
function terminate (line 63) | def terminate
class TimerWatcher (line 68) | class TimerWatcher < Coolio::TimerWatcher
method initialize (line 69) | def initialize(title, interval, repeat, log, checker, detacher, ...
method on_timer (line 79) | def on_timer
FILE: lib/fluent/plugin_id.rb
type Fluent (line 21) | module Fluent
type PluginId (line 22) | module PluginId
function initialize (line 24) | def initialize
function configure (line 32) | def configure(conf)
function plugin_id_for_test? (line 47) | def plugin_id_for_test?
function plugin_id_configured? (line 59) | def plugin_id_configured?
function plugin_id (line 65) | def plugin_id
function plugin_root_dir (line 73) | def plugin_root_dir
function stop (line 85) | def stop
FILE: lib/fluent/process.rb
type Fluent (line 19) | module Fluent
FILE: lib/fluent/registry.rb
type Fluent (line 19) | module Fluent
class Registry (line 20) | class Registry
method initialize (line 24) | def initialize(kind, search_prefix, dir_search_prefix: nil)
method register (line 34) | def register(type, value)
method lookup (line 39) | def lookup(type)
method reverse_lookup (line 52) | def reverse_lookup(value)
method search (line 59) | def search(type)
FILE: lib/fluent/root_agent.rb
type Fluent (line 27) | module Fluent
class RootAgent (line 48) | class RootAgent < Agent
class SourceOnlyMode (line 51) | class SourceOnlyMode
method initialize (line 56) | def initialize(with_source_only, start_in_parallel)
method enabled? (line 66) | def enabled?
method only_zero_downtime_restart_ready? (line 70) | def only_zero_downtime_restart_ready?
method disable! (line 74) | def disable!
method initialize (line 79) | def initialize(log:, system_config: SystemConfig.new, start_in_paral...
method source_only_router (line 97) | def source_only_router
method configure (line 102) | def configure(conf)
method setup_error_label (line 203) | def setup_error_label(e)
method setup_source_only_buffer_agent (line 209) | def setup_source_only_buffer_agent(flush: false)
method cleanup_source_only_buffer_agent (line 214) | def cleanup_source_only_buffer_agent
method lifecycle (line 218) | def lifecycle(desc: false, kind_callback: nil, kind_or_agent_list: nil)
method start (line 261) | def start(kind_or_agent_list: nil)
method flush! (line 274) | def flush!
method cancel_source_only! (line 294) | def cancel_source_only!
method shutdown (line 326) | def shutdown(kind_or_agent_list: nil)
method suppress_interval (line 401) | def suppress_interval(interval_time)
method add_source (line 406) | def add_source(type, conf)
method add_label (line 425) | def add_label(name)
method find_label (line 432) | def find_label(label_name)
method emit_error_event (line 440) | def emit_error_event(tag, time, record, error)
method handle_emits_error (line 452) | def handle_emits_error(tag, es, error)
FILE: lib/fluent/rpc.rb
type Fluent (line 19) | module Fluent
type RPC (line 20) | module RPC
class Server (line 21) | class Server
method initialize (line 22) | def initialize(endpoint, log)
method mount (line 37) | def mount(path, servlet, *args)
method mount_proc (line 42) | def mount_proc(path, &block)
method start (line 76) | def start
method shutdown (line 83) | def shutdown
FILE: lib/fluent/source_only_buffer_agent.rb
type Fluent (line 20) | module Fluent
class SourceOnlyBufferAgent (line 21) | class SourceOnlyBufferAgent < Agent
method initialize (line 26) | def initialize(log:, system_config:)
method configure (line 35) | def configure(flush: false)
method cleanup (line 60) | def cleanup
method emit_error_event (line 79) | def emit_error_event(tag, time, record, error)
method handle_emits_error (line 84) | def handle_emits_error(tag, es, error)
method config_example_to_recover (line 92) | def config_example_to_recover(path)
FILE: lib/fluent/static_config_analysis.rb
type Fluent (line 20) | module Fluent
class StaticConfigAnalysis (line 22) | class StaticConfigAnalysis
type Elem (line 23) | module Elem
method all_plugins (line 32) | def all_plugins
method call (line 39) | def self.call(conf, workers: 1)
method initialize (line 43) | def initialize(workers)
method call (line 49) | def call(config)
method reset (line 64) | def reset
method static_worker_analyse (line 71) | def static_worker_analyse(conf)
method parse_worker_id (line 103) | def parse_worker_id(conf)
method static_label_analyse (line 137) | def static_label_analyse(conf)
method static_filter_and_output_analyse (line 157) | def static_filter_and_output_analyse(conf)
method static_input_analyse (line 179) | def static_input_analyse(conf)
FILE: lib/fluent/supervisor.rb
type Fluent (line 41) | module Fluent
type ServerModule (line 42) | module ServerModule
function before_run (line 43) | def before_run
function after_run (line 92) | def after_run
function cleanup_lock_dir (line 102) | def cleanup_lock_dir
function run_rpc_server (line 107) | def run_rpc_server
function stop_rpc_server (line 183) | def stop_rpc_server
function run_counter_server (line 187) | def run_counter_server(counter_conf)
function stop_counter_server (line 195) | def stop_counter_server
function stop_parallel_old_supervisor_after_delay (line 199) | def stop_parallel_old_supervisor_after_delay
function notify_new_supervisor_that_old_one_has_stopped (line 218) | def notify_new_supervisor_that_old_one_has_stopped
function install_supervisor_signal_handlers (line 237) | def install_supervisor_signal_handlers
function restart (line 270) | def restart(graceful)
function reload (line 276) | def reload
function install_windows_event_handler (line 283) | def install_windows_event_handler
function stop_windows_event_thread (line 341) | def stop_windows_event_thread
function supervisor_sighup_handler (line 349) | def supervisor_sighup_handler
function supervisor_sigusr1_handler (line 353) | def supervisor_sigusr1_handler
function graceful_reload (line 358) | def graceful_reload
function zero_downtime_restart (line 386) | def zero_downtime_restart
function cancel_source_only (line 432) | def cancel_source_only
function supervisor_dump_handler_for_windows (line 459) | def supervisor_dump_handler_for_windows
function kill_worker (line 479) | def kill_worker
function supervisor_dump_config_handler (line 493) | def supervisor_dump_config_handler
function supervisor_get_dump_config_handler (line 497) | def supervisor_get_dump_config_handler
function dump (line 501) | def dump
function reopen_log (line 507) | def reopen_log
function send_signal_to_workers (line 517) | def send_signal_to_workers(signal)
function send_command_to_workers (line 530) | def send_command_to_workers(signal)
function dump_all_windows_workers (line 544) | def dump_all_windows_workers
type WorkerModule (line 551) | module WorkerModule
function spawn (line 552) | def spawn(process_manager)
function after_start (line 561) | def after_start
function dump (line 565) | def dump
class Supervisor (line 570) | class Supervisor
method serverengine_config (line 571) | def self.serverengine_config(params = {})
method default_options (line 617) | def self.default_options
method cleanup_socketmanager_path (line 648) | def self.cleanup_socketmanager_path
method initialize (line 655) | def initialize(cl_opt)
method run_supervisor (line 689) | def run_supervisor(dry_run: false)
method options (line 748) | def options
method run_worker (line 758) | def run_worker
method configure (line 789) | def configure(supervisor: false)
method setup_global_logger (line 852) | def setup_global_logger(supervisor: false)
method create_socket_manager (line 939) | def create_socket_manager
method show_plugin_config (line 944) | def show_plugin_config
method supervise (line 950) | def supervise
method install_main_process_signal_handlers (line 989) | def install_main_process_signal_handlers
method install_main_process_command_handlers (line 1042) | def install_main_process_command_handlers
method flush_buffer (line 1076) | def flush_buffer
method cancel_source_only (line 1092) | def cancel_source_only
method reload_config (line 1104) | def reload_config
method dump_non_windows (line 1137) | def dump_non_windows
method dump_windows (line 1145) | def dump_windows
method logging_with_console_output (line 1155) | def logging_with_console_output
method main_process (line 1166) | def main_process(&block)
method build_system_config (line 1211) | def build_system_config(conf)
method build_additional_configurations (line 1229) | def build_additional_configurations(parsed_files)
method build_spawn_command (line 1260) | def build_spawn_command
type FluentSigdump (line 1299) | module FluentSigdump
function dump_windows (line 1300) | def self.dump_windows
function get_path_with_pid (line 1316) | def self.get_path_with_pid(raw_path)
FILE: lib/fluent/system_config.rb
type Fluent (line 21) | module Fluent
class SystemConfig (line 22) | class SystemConfig
method force_stacktrace_level? (line 122) | def force_stacktrace_level?
method create (line 126) | def self.create(conf, strict_config_value=false)
method blank_system_config (line 134) | def self.blank_system_config
method overwrite_system_config (line 138) | def self.overwrite_system_config(hash)
method initialize (line 148) | def initialize(conf=nil, strict_config_value=false)
method configure (line 154) | def configure(conf, strict_config_value=false)
method dup (line 173) | def dup
method overwrite_variables (line 181) | def overwrite_variables(**opt)
type Mixin (line 189) | module Mixin
function system_config (line 190) | def system_config
function system_config_override (line 199) | def system_config_override(opts={})
FILE: lib/fluent/test.rb
type Fluent (line 29) | module Fluent
type Test (line 30) | module Test
function dummy_logger (line 31) | def self.dummy_logger
function setup (line 38) | def self.setup
FILE: lib/fluent/test/base.rb
type Fluent (line 23) | module Fluent
type Test (line 24) | module Test
class TestDriver (line 25) | class TestDriver
method initialize (line 28) | def initialize(klass, &block)
method configure (line 51) | def configure(str, use_v1 = false)
method run (line 65) | def run(num_waits = 10, &block)
FILE: lib/fluent/test/driver/base.rb
type Fluent (line 28) | module Fluent
type Test (line 29) | module Test
type Driver (line 30) | module Driver
class TestTimedOut (line 31) | class TestTimedOut < RuntimeError; end
class Base (line 33) | class Base
method initialize (line 38) | def initialize(klass, opts: {}, &block)
method configure (line 59) | def configure(conf, syntax: :v1)
method end_if (line 63) | def end_if(&block)
method break_if (line 68) | def break_if(&block)
method broken? (line 73) | def broken?
method run (line 77) | def run(timeout: nil, start: true, shutdown: true, &block)
method instance_start (line 104) | def instance_start
method instance_hook_after_started (line 137) | def instance_hook_after_started
method instance_hook_before_stopped (line 141) | def instanc
Condensed preview — 578 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (3,921K chars).
[
{
"path": ".deepsource.toml",
"chars": 165,
"preview": "version = 1\n\ntest_patterns = [\"test/**/test_*.rb\"]\n\nexclude_patterns = [\n \"bin/**\",\n \"docs/**\",\n \"example/**\"\n]"
},
{
"path": ".github/DISCUSSION_TEMPLATE/q-a-japanese.yml",
"chars": 1327,
"preview": "title: \"[QA (Japanese)]\"\nlabels: [\"Q&A (Japanese)\"]\nbody:\n - type: markdown\n attributes:\n value: |\n 日本語で"
},
{
"path": ".github/DISCUSSION_TEMPLATE/q-a.yml",
"chars": 1359,
"preview": "title: \"[Q&A]\"\nlabels: [\"Q&A\"]\nbody:\n - type: markdown\n attributes:\n value: |\n It is recommended to supp"
},
{
"path": ".github/ISSUE_TEMPLATE/bug_report.yml",
"chars": 2130,
"preview": "name: Bug Report\ndescription: Create a report with a procedure for reproducing the bug\nlabels: \"waiting-for-triage\"\nbody"
},
{
"path": ".github/ISSUE_TEMPLATE/config.yml",
"chars": 492,
"preview": "blank_issues_enabled: false\ncontact_links:\n - name: Ask a Question\n url: https://github.com/fluent/fluentd/discussio"
},
{
"path": ".github/ISSUE_TEMPLATE/feature_request.yml",
"chars": 1310,
"preview": "name: Feature request\ndescription: Suggest an idea for this project\nlabels: \"waiting-for-triage\"\nbody:\n - type: markdow"
},
{
"path": ".github/ISSUE_TEMPLATE.md",
"chars": 929,
"preview": "Check [CONTRIBUTING guideline](https://github.com/fluent/fluentd/blob/master/CONTRIBUTING.md) first and here is the list"
},
{
"path": ".github/PULL_REQUEST_TEMPLATE.md",
"chars": 333,
"preview": "<!--\nThank you for contributing to Fluentd!\nYour commits need to follow DCO: https://probot.github.io/apps/dco/\nAnd plea"
},
{
"path": ".github/dependabot.yml",
"chars": 118,
"preview": "version: 2\nupdates:\n - package-ecosystem: 'github-actions'\n directory: '/'\n schedule:\n interval: 'weekly'\n"
},
{
"path": ".github/workflows/backport.yml",
"chars": 1337,
"preview": "name: Backport Pull Requests\n\non:\n schedule:\n # Sun 10:00 (JST)\n - cron: '0 1 * * 0'\n workflow_dispatch:\n\npermis"
},
{
"path": ".github/workflows/benchmark.yml",
"chars": 1041,
"preview": "name: Benchmark\n\non:\n push:\n branches: [master]\n pull_request:\n branches: [master]\n workflow_dispatch:\n\npermiss"
},
{
"path": ".github/workflows/rubocop.yml",
"chars": 982,
"preview": "name: RucoCop Security & Performance Check\n\non:\n push:\n paths-ignore:\n - '*.md'\n - 'lib/fluent/version.rb'"
},
{
"path": ".github/workflows/scorecards.yml",
"chars": 2933,
"preview": "name: Scorecard supply-chain security\non:\n # For Branch-Protection check. Only the default branch is supported. See\n #"
},
{
"path": ".github/workflows/stale-actions.yml",
"chars": 1356,
"preview": "name: \"Mark or close stale issues and PRs\"\non:\n schedule:\n - cron: \"00 10 * * *\"\n\npermissions: read-all\n\njobs:\n stale"
},
{
"path": ".github/workflows/test-ruby-head.yml",
"chars": 1040,
"preview": "name: Test with Ruby head\n\non:\n schedule:\n - cron: '11 14 * * 0'\n workflow_dispatch:\n\npermissions: read-all\n\njobs:\n"
},
{
"path": ".github/workflows/test.yml",
"chars": 1970,
"preview": "name: Test\n\non:\n push:\n branches: [master]\n paths-ignore:\n - '*.md'\n - 'lib/fluent/version.rb'\n pull_r"
},
{
"path": ".gitignore",
"chars": 335,
"preview": "Gemfile.lock\nINSTALL\nNEWS\nMakefile\nMakefile.in\nREADME\nac\naclocal.m4\nautom4te.cache\nconfdefs.h\nconfig.log\nconfig.status\nc"
},
{
"path": ".rubocop.yml",
"chars": 2157,
"preview": "plugins:\n - rubocop-performance\n\nAllCops:\n Exclude:\n - 'vendor/**/*'\n NewCops: enable\n SuggestExtensions: false\n "
},
{
"path": "ADOPTERS.md",
"chars": 194,
"preview": "# Fluentd Adopters\n\nFluentd is widely used by hundred of companies, please refer to the testimonial section of our proje"
},
{
"path": "AUTHORS",
"chars": 90,
"preview": "FURUHASHI Sadayuki <frsyuki _at_ gmail.com>\nNAKAGAWA Masahiro <repeatedly _at_ gmail.com>\n"
},
{
"path": "CHANGELOG.md",
"chars": 119346,
"preview": "# v1.20\n\n## Release v1.20.0 - TBD\n\n### Bug fix\n\n* http_server helper: Fix IPv6 bind address support in URI construction\n"
},
{
"path": "CONTRIBUTING.md",
"chars": 2229,
"preview": "# Contributing to Fluentd\n\nWe'd love your contribution. Here are the guidelines!\n\n## Got a question or problem?\n\nRESOURC"
},
{
"path": "GOVERNANCE.md",
"chars": 2856,
"preview": "# Fluentd Governance\n\n## Principles\n\nThe Fluentd community adheres to the following principles:\n\n- Open: Fluentd is open"
},
{
"path": "Gemfile",
"chars": 272,
"preview": "source 'https://rubygems.org/'\n\ngemspec\n\ngem 'benchmark'\n\nlocal_gemfile = File.join(File.dirname(__FILE__), \"Gemfile.loc"
},
{
"path": "GithubWorkflow.md",
"chars": 2731,
"preview": "# Github workflow for contributing to fluentd\n\nTable of Contents\n\n* [Fork a repository](#fork-a-repository)\n* [Clone for"
},
{
"path": "LICENSE",
"chars": 11351,
"preview": "\n Apache License\n Version 2.0, January 2004\n "
},
{
"path": "MAINTAINERS.md",
"chars": 990,
"preview": "# Fluentd Maintainers\n\n- [Naotoshi Seo](https://github.com/sonots), [ZOZO Technologies](https://tech.zozo.com/en/)\n- [Ok"
},
{
"path": "README.md",
"chars": 2692,
"preview": "Fluentd: Open-Source Log Collector\n===================================\n\n[\n$LOAD_PATH << File.expand_path(File.join(here,"
},
{
"path": "bin/fluent-ca-generate",
"chars": 133,
"preview": "#!/usr/bin/env ruby\n\n$LOAD_PATH.unshift(File.join(__dir__, 'lib'))\nrequire 'fluent/command/ca_generate'\n\nFluent::CaGener"
},
{
"path": "bin/fluent-cap-ctl",
"chars": 192,
"preview": "#!/usr/bin/env ruby\n# -*- coding: utf-8 -*-\nhere = File.dirname(__FILE__)\n$LOAD_PATH << File.expand_path(File.join(here,"
},
{
"path": "bin/fluent-ctl",
"chars": 163,
"preview": "#!/usr/bin/env ruby\n\nhere = File.dirname(__FILE__)\n$LOAD_PATH << File.expand_path(File.join(here, '..', 'lib'))\nrequire "
},
{
"path": "bin/fluent-debug",
"chars": 166,
"preview": "#!/usr/bin/env ruby\n# -*- coding: utf-8 -*-\nhere = File.dirname(__FILE__)\n$LOAD_PATH << File.expand_path(File.join(here,"
},
{
"path": "bin/fluent-plugin-config-format",
"chars": 153,
"preview": "#!/usr/bin/env ruby\n$LOAD_PATH.unshift(File.join(__dir__, 'lib'))\nrequire 'fluent/command/plugin_config_formatter'\n\nFlue"
},
{
"path": "bin/fluent-plugin-generate",
"chars": 158,
"preview": "#!/usr/bin/env ruby\n$LOAD_PATH << File.expand_path(File.join(__dir__, '..', 'lib'))\nrequire 'fluent/command/plugin_gener"
},
{
"path": "code-of-conduct.md",
"chars": 149,
"preview": "## Fluentd Community Code of Conduct\n\nFluentd follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob"
},
{
"path": "example/copy_roundrobin.conf",
"chars": 573,
"preview": "<source>\n @type sample\n @label @test\n tag test.copy\n auto_increment_key id\n</source>\n\n<source>\n @type sample\n "
},
{
"path": "example/counter.conf",
"chars": 249,
"preview": "<system>\n <counter_server>\n scope server1\n bind 127.0.0.1\n port 24321\n backup_path tmp/back\n </counter_ser"
},
{
"path": "example/filter_stdout.conf",
"chars": 228,
"preview": "<source>\n @type sample\n tag sample\n</source>\n\n<filter **>\n @type stdout\n</filter>\n\n<filter **>\n @type stdout\n outpu"
},
{
"path": "example/in_forward.conf",
"chars": 174,
"preview": "<system>\n rpc_endpoint 0.0.0.0:24444\n</system>\n\n<source>\n @type forward\n</source>\n\n<match test>\n @type stdout\n # <bu"
},
{
"path": "example/in_forward_client.conf",
"chars": 742,
"preview": "<system>\n rpc_endpoint 0.0.0.0:24444\n</system>\n\n<source>\n @type forward\n port 24224\n bind 0.0.0.0\n <security>\n s"
},
{
"path": "example/in_forward_shared_key.conf",
"chars": 237,
"preview": "<system>\n rpc_endpoint 0.0.0.0:24444\n</system>\n\n<source>\n @type forward\n <security>\n self_hostname input.testing.l"
},
{
"path": "example/in_forward_tls.conf",
"chars": 189,
"preview": "<source>\n @type forward\n port 24224\n <transport tls>\n insecure true\n </transport>\n</source>\n\n<match test>\n @type"
},
{
"path": "example/in_forward_users.conf",
"chars": 434,
"preview": "<system>\n rpc_endpoint 0.0.0.0:24444\n</system>\n\n<source>\n @type forward\n <security>\n self_hostname input.testing.l"
},
{
"path": "example/in_forward_workers.conf",
"chars": 312,
"preview": "<system>\n workers 3\n root_dir \"#{File.join(Dir.pwd, 'test', 'tmp', 'root')}\"\n</system>\n\n<source>\n @type forward\n @id"
},
{
"path": "example/in_http.conf",
"chars": 218,
"preview": "<source>\n @type http\n bind 0.0.0.0\n port 9880\n body_size_limit 32MB\n keepalive_timeout 10\n # backlog 0\n add_http_"
},
{
"path": "example/in_out_forward.conf",
"chars": 246,
"preview": "<source>\n @type forward\n port 24224\n</source>\n\n<match test.**>\n @type forward\n buffer_type file\n buffer_path /tmp/f"
},
{
"path": "example/in_sample_blocks.conf",
"chars": 303,
"preview": "<source>\n @type sample\n tag sample\n rate 100\n sample {\"message\":\"yaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaay\""
},
{
"path": "example/in_sample_with_compression.conf",
"chars": 495,
"preview": "<source>\n @type sample\n @label @main\n tag \"test.data\"\n size 2\n rate 10\n sample {\"message\":\"yaaaaaaaaaaaaaaaaaaaaaa"
},
{
"path": "example/in_syslog.conf",
"chars": 226,
"preview": "<source>\n @type syslog\n bind 0.0.0.0\n port 5140\n tag test\n protocol_type udp\n include_source_host false\n source_h"
},
{
"path": "example/in_tail.conf",
"chars": 225,
"preview": "<source>\n @type tail\n format none\n path /var/log/fluentd_test.log\n pos_file /var/log/fluentd_test.pos\n tag test\n r"
},
{
"path": "example/in_tcp.conf",
"chars": 161,
"preview": "<source>\n @type tcp\n format none\n bind 0.0.0.0\n port 5170\n delimiter \\n\n source_host_key \"host\"\n tag test\n</sourc"
},
{
"path": "example/in_udp.conf",
"chars": 168,
"preview": "<source>\n @type udp\n format none\n bind 0.0.0.0\n port 5160\n body_size_limit 4KB\n source_host_key \"host\"\n tag test\n"
},
{
"path": "example/logevents.conf",
"chars": 480,
"preview": "<source>\n @type sample\n @label @samplelog\n tag \"data\"\n sample {\"message\":\"yay\"}\n</source>\n<label @samplelog>\n <matc"
},
{
"path": "example/multi_filters.conf",
"chars": 743,
"preview": "# This example is to measure optimized filter pipeline performance.\n\n<source>\n @type sample\n tag test\n size 1000\n</"
},
{
"path": "example/out_copy.conf",
"chars": 315,
"preview": "<source>\n @type forward\n</source>\n\n<match test>\n @type copy\n deep_copy false\n <store>\n @type stdout\n </store>\n "
},
{
"path": "example/out_exec_filter.conf",
"chars": 780,
"preview": "<source>\n @type sample\n @label @exec\n tag exec_input\n rate 10\n auto_increment_key num\n sample {\"data\":\"mydata\"}\n</"
},
{
"path": "example/out_file.conf",
"chars": 211,
"preview": "<source>\n @type forward\n</source>\n\n<match test>\n @type file\n path /var/log/fluentd/out_file_test\n format json\n buff"
},
{
"path": "example/out_forward.conf",
"chars": 537,
"preview": "<source>\n @type sample\n tag test\n</source>\n\n<match test>\n @type forward\n\n <server>\n # first server\n host 127.0"
},
{
"path": "example/out_forward_buf_file.conf",
"chars": 370,
"preview": "<source>\n @type sample\n tag test\n</source>\n\n<source>\n @type monitor_agent\n emit_interval 5\n</source>\n\n<match"
},
{
"path": "example/out_forward_client.conf",
"chars": 2406,
"preview": "<source>\n @type sample\n tag test\n</source>\n<source>\n @type sample\n tag test2\n</source>\n<source>\n @type sample\n tag"
},
{
"path": "example/out_forward_heartbeat_none.conf",
"chars": 211,
"preview": "<source>\n @type sample\n tag test\n</source>\n\n<match test>\n @type forward\n heartbeat_type none\n <server>\n host 127"
},
{
"path": "example/out_forward_sd.conf",
"chars": 228,
"preview": "<source>\n @type sample\n tag test\n</source>\n\n<match test>\n @type forward\n\n <service_discovery>\n @type file\n pat"
},
{
"path": "example/out_forward_shared_key.conf",
"chars": 734,
"preview": "<source>\n @type sample\n tag test\n</source>\n<source>\n @type sample\n tag test2\n</source>\n\n<match test>\n @type forward"
},
{
"path": "example/out_forward_tls.conf",
"chars": 245,
"preview": "<source>\n @type sample\n tag test\n</source>\n\n<match test>\n @type forward\n transport tls\n tls_insecure_mode true\n <s"
},
{
"path": "example/out_forward_users.conf",
"chars": 1271,
"preview": "<source>\n @type sample\n tag test\n</source>\n<source>\n @type sample\n tag test2\n</source>\n<source>\n @type sample\n tag"
},
{
"path": "example/out_null.conf",
"chars": 726,
"preview": "#\n# bundle exec bin/fluentd -c example/out_buffered_null.conf\n# (+ --emit-error-log-interval 10)\n<source>\n @type samp"
},
{
"path": "example/sd.yaml",
"chars": 136,
"preview": "- 'host': 127.0.0.1\n 'port': 24224\n 'weight': 1\n 'name': server1\n- 'host': 127.0.0.1\n 'port': 24225\n 'weight': 1\n "
},
{
"path": "example/secondary_file.conf",
"chars": 563,
"preview": "<system>\n rpc_endpoint 0.0.0.0:24444\n</system>\n\n<source>\n @type sample\n tag test\n</source>\n\n<source>\n @type forward\n"
},
{
"path": "example/suppress_config_dump.conf",
"chars": 88,
"preview": "<system>\n suppress_config_dump false\n</system>\n\n<match data.*>\n @type stdout\n</match>\n"
},
{
"path": "example/v0_12_filter.conf",
"chars": 1867,
"preview": "# An example config to use filter plugins.\n# THIS FEATURE IS SUPPORTED FOR v0.12 AND ABOVE.\n\n# in_forward to generate ev"
},
{
"path": "example/v1_literal_example.conf",
"chars": 1207,
"preview": "<section1>\n key1 'text' # text\n key2 '\\'' # ' (1 char)\n key3 '\\\\' # \\ (1 char)\n key4 '\\t' "
},
{
"path": "example/worker_section.conf",
"chars": 686,
"preview": "<system>\n workers 4\n root_dir /path/fluentd/root\n</system>\n\n<source> # top-level sections works on all workers in para"
},
{
"path": "fluent.conf",
"chars": 2710,
"preview": "# In v1 configuration, type and id are @ prefix parameters.\n# @type and @id are recommended. type and id are still avail"
},
{
"path": "fluentd.gemspec",
"chars": 3996,
"preview": "require File.expand_path('../lib/fluent/version', __FILE__)\n\nGem::Specification.new do |gem|\n gem.name = \"flue"
},
{
"path": "lib/fluent/agent.rb",
"chars": 5067,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/capability.rb",
"chars": 1851,
"preview": "#\n# Fluent\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except "
},
{
"path": "lib/fluent/clock.rb",
"chars": 1729,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/command/binlog_reader.rb",
"chars": 5951,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/command/bundler_injection.rb",
"chars": 1169,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/command/ca_generate.rb",
"chars": 5641,
"preview": "require 'openssl'\nrequire 'optparse'\nrequire 'fileutils'\nrequire 'fluent/version'\n\nmodule Fluent\n class CaGenerate\n "
},
{
"path": "lib/fluent/command/cap_ctl.rb",
"chars": 5179,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/command/cat.rb",
"chars": 7428,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/command/ctl.rb",
"chars": 4997,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/command/debug.rb",
"chars": 2406,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/command/fluentd.rb",
"chars": 11285,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/command/plugin_config_formatter.rb",
"chars": 8720,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/command/plugin_generator.rb",
"chars": 8415,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/compat/call_super_mixin.rb",
"chars": 2877,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/compat/detach_process_mixin.rb",
"chars": 966,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/compat/exec_util.rb",
"chars": 2965,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/compat/file_util.rb",
"chars": 1705,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/compat/filter.rb",
"chars": 1913,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/compat/formatter.rb",
"chars": 3787,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/compat/formatter_utils.rb",
"chars": 3330,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/compat/handle_tag_and_time_mixin.rb",
"chars": 1925,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/compat/handle_tag_name_mixin.rb",
"chars": 1827,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/compat/input.rb",
"chars": 1290,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/compat/output.rb",
"chars": 24380,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/compat/output_chain.rb",
"chars": 1478,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/compat/parser.rb",
"chars": 9637,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/compat/parser_utils.rb",
"chars": 1233,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/compat/propagate_default.rb",
"chars": 2429,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/compat/record_filter_mixin.rb",
"chars": 957,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/compat/set_tag_key_mixin.rb",
"chars": 1399,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/compat/set_time_key_mixin.rb",
"chars": 1952,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/compat/socket_util.rb",
"chars": 4551,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/compat/string_util.rb",
"chars": 1067,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/compat/structured_format_mixin.rb",
"chars": 786,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/compat/type_converter.rb",
"chars": 2529,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/config/basic_parser.rb",
"chars": 2844,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/config/configure_proxy.rb",
"chars": 15497,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/config/dsl.rb",
"chars": 4477,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/config/element.rb",
"chars": 7862,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/config/error.rb",
"chars": 1025,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/config/literal_parser.rb",
"chars": 7499,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/config/parser.rb",
"chars": 3952,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/config/section.rb",
"chars": 9621,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/config/types.rb",
"chars": 7172,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/config/v1_parser.rb",
"chars": 7089,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/config/yaml_parser/fluent_value.rb",
"chars": 1178,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/config/yaml_parser/loader.rb",
"chars": 3354,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/config/yaml_parser/parser.rb",
"chars": 5691,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/config/yaml_parser/section_builder.rb",
"chars": 2712,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/config/yaml_parser.rb",
"chars": 1711,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/config.rb",
"chars": 3268,
"preview": "#\n# Fluent\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except "
},
{
"path": "lib/fluent/configurable.rb",
"chars": 6621,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/counter/base_socket.rb",
"chars": 1119,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/counter/client.rb",
"chars": 7287,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/counter/error.rb",
"chars": 1985,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/counter/mutex_hash.rb",
"chars": 4023,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/counter/server.rb",
"chars": 7735,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/counter/store.rb",
"chars": 5397,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/counter/validator.rb",
"chars": 4326,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/counter.rb",
"chars": 694,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/daemon.rb",
"chars": 408,
"preview": "#!/usr/bin/env ruby\n# -*- coding: utf-8 -*-\n\nhere = File.dirname(__FILE__)\n$LOAD_PATH << File.expand_path(File.join(here"
},
{
"path": "lib/fluent/daemonizer.rb",
"chars": 2372,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/engine.rb",
"chars": 7840,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/env.rb",
"chars": 1411,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/error.rb",
"chars": 1004,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/event.rb",
"chars": 8469,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/event_router.rb",
"chars": 8855,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/ext_monitor_require.rb",
"chars": 883,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/file_wrapper.rb",
"chars": 3976,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/filter.rb",
"chars": 672,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/fluent_log_event_router.rb",
"chars": 4475,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/formatter.rb",
"chars": 772,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/input.rb",
"chars": 669,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/label.rb",
"chars": 1190,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/load.rb",
"chars": 719,
"preview": "require 'socket'\nrequire 'fcntl'\nrequire 'time'\nrequire 'stringio'\nrequire 'fileutils'\nrequire 'json'\nrequire 'yajl'\nreq"
},
{
"path": "lib/fluent/log/console_adapter.rb",
"chars": 2196,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/log.rb",
"chars": 23154,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/match.rb",
"chars": 4061,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/mixin.rb",
"chars": 1132,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/msgpack_factory.rb",
"chars": 3323,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/oj_options.rb",
"chars": 1261,
"preview": "require 'fluent/config/types'\n\nmodule Fluent\n class OjOptions\n OPTIONS = {\n 'bigdecimal_load': :symbol,\n '"
},
{
"path": "lib/fluent/output.rb",
"chars": 1076,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/output_chain.rb",
"chars": 792,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/parser.rb",
"chars": 766,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/bare_output.rb",
"chars": 2952,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/base.rb",
"chars": 5884,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/buf_file.rb",
"chars": 10221,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/buf_file_single.rb",
"chars": 10324,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/buf_memory.rb",
"chars": 980,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/buffer/chunk.rb",
"chars": 9060,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/buffer/file_chunk.rb",
"chars": 14946,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/buffer/file_single_chunk.rb",
"chars": 9968,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/buffer/memory_chunk.rb",
"chars": 2292,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/buffer.rb",
"chars": 37379,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/compressable.rb",
"chars": 4341,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/exec_util.rb",
"chars": 692,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/file_util.rb",
"chars": 692,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/filter.rb",
"chars": 3928,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/filter_grep.rb",
"chars": 7736,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/filter_parser.rb",
"chars": 4236,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/filter_record_transformer.rb",
"chars": 10414,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/filter_stdout.rb",
"chars": 1413,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/formatter.rb",
"chars": 1912,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/formatter_csv.rb",
"chars": 3004,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/formatter_hash.rb",
"chars": 982,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/formatter_json.rb",
"chars": 1791,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/formatter_ltsv.rb",
"chars": 1419,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/formatter_msgpack.rb",
"chars": 888,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/formatter_out_file.rb",
"chars": 1667,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/formatter_single_value.rb",
"chars": 1083,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/formatter_stdout.rb",
"chars": 1808,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/formatter_tsv.rb",
"chars": 1315,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/in_debug_agent.rb",
"chars": 1884,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/in_dummy.rb",
"chars": 650,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/in_exec.rb",
"chars": 3946,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/in_forward.rb",
"chars": 17932,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/in_gc_stat.rb",
"chars": 1639,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/in_http.rb",
"chars": 19997,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/in_monitor_agent.rb",
"chars": 12272,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/in_object_space.rb",
"chars": 2038,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/in_sample.rb",
"chars": 4774,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/in_syslog.rb",
"chars": 9099,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
},
{
"path": "lib/fluent/plugin/in_tail/group_watch.rb",
"chars": 6478,
"preview": "#\n# Fluentd\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except"
}
]
// ... and 378 more files (download for full content)
About this extraction
This page contains the full source code of the fluent/fluentd GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 578 files (3.6 MB), approximately 959.6k tokens, and a symbol index with 5493 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.