fluentd 1.16.11-x86-mingw32 → 1.17.0-x86-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. checksums.yaml +4 -4
  2. data/.github/DISCUSSION_TEMPLATE/q-a-japanese.yml +50 -0
  3. data/.github/DISCUSSION_TEMPLATE/q-a.yml +47 -0
  4. data/.github/workflows/test-ruby-head.yml +31 -0
  5. data/.github/workflows/test.yml +6 -38
  6. data/CHANGELOG.md +33 -122
  7. data/README.md +4 -1
  8. data/Rakefile +1 -1
  9. data/SECURITY.md +4 -6
  10. data/fluentd.gemspec +5 -11
  11. data/lib/fluent/command/binlog_reader.rb +1 -1
  12. data/lib/fluent/command/fluentd.rb +1 -1
  13. data/lib/fluent/compat/formatter.rb +0 -6
  14. data/lib/fluent/config/configure_proxy.rb +2 -2
  15. data/lib/fluent/config/parser.rb +3 -15
  16. data/lib/fluent/config/types.rb +1 -1
  17. data/lib/fluent/config/v1_parser.rb +1 -1
  18. data/lib/fluent/config/yaml_parser/parser.rb +0 -4
  19. data/lib/fluent/configurable.rb +2 -2
  20. data/lib/fluent/counter/mutex_hash.rb +1 -1
  21. data/lib/fluent/fluent_log_event_router.rb +0 -2
  22. data/lib/fluent/plugin/buf_file.rb +1 -1
  23. data/lib/fluent/plugin/buffer/file_chunk.rb +1 -1
  24. data/lib/fluent/plugin/buffer/file_single_chunk.rb +2 -3
  25. data/lib/fluent/plugin/filter_parser.rb +26 -8
  26. data/lib/fluent/plugin/formatter_csv.rb +4 -18
  27. data/lib/fluent/plugin/in_http.rb +17 -52
  28. data/lib/fluent/plugin/in_tail.rb +35 -3
  29. data/lib/fluent/plugin/out_file.rb +0 -8
  30. data/lib/fluent/plugin/out_forward.rb +0 -10
  31. data/lib/fluent/plugin/out_http.rb +125 -13
  32. data/lib/fluent/plugin/owned_by_mixin.rb +0 -1
  33. data/lib/fluent/plugin/parser_json.rb +34 -9
  34. data/lib/fluent/plugin/parser_msgpack.rb +24 -3
  35. data/lib/fluent/plugin_helper/metrics.rb +2 -2
  36. data/lib/fluent/plugin_helper/server.rb +1 -4
  37. data/lib/fluent/registry.rb +6 -6
  38. data/lib/fluent/supervisor.rb +3 -3
  39. data/lib/fluent/test/output_test.rb +1 -1
  40. data/lib/fluent/test.rb +2 -5
  41. data/lib/fluent/unique_id.rb +1 -1
  42. data/lib/fluent/version.rb +1 -1
  43. data/lib/fluent/winsvc.rb +8 -38
  44. data/test/command/test_cat.rb +2 -2
  45. data/test/command/test_fluentd.rb +11 -58
  46. data/test/config/test_dsl.rb +1 -8
  47. data/test/config/test_element.rb +2 -2
  48. data/test/config/test_plugin_configuration.rb +6 -6
  49. data/test/helper.rb +7 -27
  50. data/test/log/test_console_adapter.rb +10 -3
  51. data/test/plugin/data/log_numeric/01.log +0 -0
  52. data/test/plugin/data/log_numeric/02.log +0 -0
  53. data/test/plugin/data/log_numeric/12.log +0 -0
  54. data/test/plugin/data/log_numeric/14.log +0 -0
  55. data/test/plugin/in_tail/test_io_handler.rb +14 -13
  56. data/test/plugin/in_tail/test_position_file.rb +7 -6
  57. data/test/plugin/out_forward/test_ack_handler.rb +3 -3
  58. data/test/plugin/out_forward/test_socket_cache.rb +3 -3
  59. data/test/plugin/test_buffer.rb +2 -2
  60. data/test/plugin/test_filter_grep.rb +1 -1
  61. data/test/plugin/test_filter_stdout.rb +4 -4
  62. data/test/plugin/test_formatter_hash.rb +2 -2
  63. data/test/plugin/test_in_forward.rb +1 -2
  64. data/test/plugin/test_in_http.rb +23 -1
  65. data/test/plugin/test_in_monitor_agent.rb +6 -6
  66. data/test/plugin/test_in_object_space.rb +0 -4
  67. data/test/plugin/test_in_syslog.rb +18 -25
  68. data/test/plugin/test_in_tail.rb +153 -5
  69. data/test/plugin/test_in_tcp.rb +1 -1
  70. data/test/plugin/test_in_udp.rb +10 -16
  71. data/test/plugin/test_out_exec_filter.rb +7 -12
  72. data/test/plugin/test_out_file.rb +2 -22
  73. data/test/plugin/test_out_forward.rb +37 -61
  74. data/test/plugin/test_out_http.rb +128 -0
  75. data/test/plugin/test_out_stdout.rb +3 -3
  76. data/test/plugin/test_out_stream.rb +1 -1
  77. data/test/plugin/test_output.rb +1 -1
  78. data/test/plugin/test_output_as_buffered.rb +2 -2
  79. data/test/plugin/test_output_as_buffered_retries.rb +2 -2
  80. data/test/plugin/test_owned_by.rb +0 -1
  81. data/test/plugin/test_parser_csv.rb +1 -1
  82. data/test/plugin/test_parser_json.rb +106 -31
  83. data/test/plugin/test_parser_msgpack.rb +127 -0
  84. data/test/plugin/test_storage.rb +0 -1
  85. data/test/plugin_helper/test_http_server_helper.rb +1 -1
  86. data/test/plugin_helper/test_server.rb +41 -83
  87. data/test/plugin_helper/test_socket.rb +1 -1
  88. data/test/test_config.rb +0 -6
  89. data/test/test_configdsl.rb +1 -8
  90. data/test/test_event_router.rb +2 -2
  91. data/test/test_plugin_helper.rb +1 -1
  92. data/test/test_supervisor.rb +21 -32
  93. data/test/test_tls.rb +1 -1
  94. metadata +66 -52
  95. data/test/scripts/windows_service_test.ps1 +0 -73
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 36bd7c2bdd6e11420c794e31dd14162d8f55557e3d96871f53680a2fe459f2b7
4
- data.tar.gz: 34703e891bc6cf823c88b98fa920fe049d54da981c466be21e63a684966d6988
3
+ metadata.gz: cc7924012e09f9568cbda96bbb4d1449074a4db721795d74900261b984b04047
4
+ data.tar.gz: 8c3e8f5ef86237b5c18943ffbf393188338f9dbd3dbcac3d9fb321973ba3b43e
5
5
  SHA512:
6
- metadata.gz: ee8a524341160192a0b8e49ae9309ce665827fc7b8a707e569014abd1001ff8a8e2e757552c67e82f16179bb7375171e934b545ee7b754b5174ce06460b4ac02
7
- data.tar.gz: a7740e6e6b8ec714811ce128725964a4108b456e0f12d5ef8a98ea95a151fba151fda0ac54ca49ed42c213b66d45b20f9879948f7b04ea3f00d2808816221646
6
+ metadata.gz: 7998a2f12349a767e7952dcf3a17a108cfb0f2e2063524862d97b83159012e8b753e46d2e4893e235e6a4bb1d43533f3068dc955601533fddf839f75edcca096
7
+ data.tar.gz: '09dac9716859404ddb3b563408cab32921c894300f2701b3e7aff89a608be154d0090e321adbbed9e0615459b06a4be3038f3e5b16206e624a0e1e770970c803'
@@ -0,0 +1,50 @@
1
+ title: "[QA (Japanese)]"
2
+ labels: ["Q&A (Japanese)"]
3
+ body:
4
+ - type: markdown
5
+ attributes:
6
+ value: |
7
+ 日本語で気軽に質問するためのカテゴリです。もし他の人が困っているのを見つけたらぜひ回答してあげてください。
8
+ - type: textarea
9
+ id: question
10
+ attributes:
11
+ label: やりたいこと
12
+ description: |
13
+ 何について困っているのかを書いてください。試したことや実際の結果を示してください。
14
+ 期待する挙動と実際の結果の違いがあればそれも書くのをおすすめします。
15
+ render: markdown
16
+ validations:
17
+ required: true
18
+ - type: textarea
19
+ id: configuration
20
+ attributes:
21
+ label: 設定した内容
22
+ description: |
23
+ どのような設定をして期待する挙動を実現しようとしたのかを書いてください。(例: fluentd.confの内容を貼り付ける)
24
+ render: apache
25
+ - type: textarea
26
+ id: logs
27
+ attributes:
28
+ label: ログの内容
29
+ description: |
30
+ Fluentdのログを提示してください。エラーログがあると回答の助けになります。(例: fluentd.logの内容を貼り付ける)
31
+ render: shell
32
+ - type: textarea
33
+ id: environment
34
+ attributes:
35
+ label: 環境について
36
+ description: |
37
+ - Fluentd or td-agent version: `fluentd --version` or `td-agent --version`
38
+ - Operating system: `cat /etc/os-release`
39
+ - Kernel version: `uname -r`
40
+
41
+ どんな環境で困っているかの情報がないと、再現できないため誰も回答できないことがあります。
42
+ 必要な情報を記入することをおすすめします。
43
+ value: |
44
+ - Fluentd version:
45
+ - TD Agent version:
46
+ - Fluent Package version:
47
+ - Docker image (tag):
48
+ - Operating system:
49
+ - Kernel version:
50
+ render: markdown
@@ -0,0 +1,47 @@
1
+ title: "[Q&A]"
2
+ labels: ["Q&A"]
3
+ body:
4
+ - type: markdown
5
+ attributes:
6
+ value: |
7
+ It is recommended to support each other.
8
+ - type: textarea
9
+ id: question
10
+ attributes:
11
+ label: What is a problem?
12
+ description: |
13
+ A clear and concise description of what you want to happen.
14
+ What exactly did you do (or not do) that was effective (or ineffective)?
15
+ render: markdown
16
+ validations:
17
+ required: true
18
+ - type: textarea
19
+ id: configuration
20
+ attributes:
21
+ label: Describe the configuration of Fluentd
22
+ description: |
23
+ If there is the actual configuration of Fluentd, it will help.
24
+ - type: textarea
25
+ id: logs
26
+ attributes:
27
+ label: Describe the logs of Fluentd
28
+ description: |
29
+ If there are error logs of Fluentd, it will help.
30
+ - type: textarea
31
+ id: environment
32
+ attributes:
33
+ label: Environment
34
+ description: |
35
+ - Fluentd or td-agent version: `fluentd --version` or `td-agent --version`
36
+ - Operating system: `cat /etc/os-release`
37
+ - Kernel version: `uname -r`
38
+
39
+ Please describe your environment information. If will help to support.
40
+ value: |
41
+ - Fluentd version:
42
+ - TD Agent version:
43
+ - Fluent Package version:
44
+ - Docker image (tag):
45
+ - Operating system:
46
+ - Kernel version:
47
+ render: markdown
@@ -0,0 +1,31 @@
1
+ name: Test with Ruby head
2
+
3
+ on:
4
+ schedule:
5
+ - cron: '11 14 * * 0'
6
+ workflow_dispatch:
7
+
8
+ jobs:
9
+ test:
10
+ runs-on: ${{ matrix.os }}
11
+ continue-on-error: true
12
+ strategy:
13
+ fail-fast: false
14
+ matrix:
15
+ os: ['ubuntu-latest', 'macos-latest', 'windows-latest']
16
+ ruby-version: ['head']
17
+
18
+ name: Ruby ${{ matrix.ruby-version }} on ${{ matrix.os }}
19
+ steps:
20
+ - uses: actions/checkout@v3
21
+ - name: Set up Ruby
22
+ uses: ruby/setup-ruby@v1
23
+ with:
24
+ ruby-version: ${{ matrix.ruby-version }}
25
+ - name: Install addons
26
+ if: ${{ matrix.os == 'ubuntu-latest' }}
27
+ run: sudo apt-get install libgmp3-dev libcap-ng-dev
28
+ - name: Install dependencies
29
+ run: bundle install
30
+ - name: Run tests
31
+ run: bundle exec rake test TESTOPTS="-v --no-show-detail-immediately"
@@ -2,21 +2,9 @@ name: Test
2
2
 
3
3
  on:
4
4
  push:
5
- branches: [v1.16]
6
- paths-ignore:
7
- - '*.md'
8
- - 'lib/fluent/version.rb'
5
+ branches: [master]
9
6
  pull_request:
10
- branches: [v1.16]
11
- paths-ignore:
12
- - '*.md'
13
- - 'lib/fluent/version.rb'
14
-
15
- concurrency:
16
- group: ${{ github.head_ref || github.sha }}-${{ github.workflow }}
17
- cancel-in-progress: true
18
-
19
- permissions: read-all
7
+ branches: [master]
20
8
 
21
9
  jobs:
22
10
  test:
@@ -26,39 +14,19 @@ jobs:
26
14
  fail-fast: false
27
15
  matrix:
28
16
  os: ['ubuntu-latest', 'macos-latest', 'windows-latest']
29
- ruby-version: ['3.4', '3.3', '3.2', '3.1', '3.0', '2.7']
17
+ ruby-version: ['3.3', '3.2', '3.1', '3.0', '2.7']
18
+
30
19
  name: Ruby ${{ matrix.ruby-version }} on ${{ matrix.os }}
31
20
  steps:
32
- - uses: actions/checkout@v5
21
+ - uses: actions/checkout@v3
33
22
  - name: Set up Ruby
34
23
  uses: ruby/setup-ruby@v1
35
24
  with:
36
25
  ruby-version: ${{ matrix.ruby-version }}
37
- rubygems: latest
38
26
  - name: Install addons
39
27
  if: ${{ matrix.os == 'ubuntu-latest' }}
40
28
  run: sudo apt-get install libgmp3-dev libcap-ng-dev
41
29
  - name: Install dependencies
42
30
  run: bundle install
43
31
  - name: Run tests
44
- run: bundle exec rake test TESTOPTS="-v --report-slow-tests --no-show-detail-immediately"
45
-
46
- test-windows-service:
47
- runs-on: windows-latest
48
- strategy:
49
- fail-fast: false
50
- matrix:
51
- ruby-version: ['3.4', '3.3', '3.2', '3.1', '3.0', '2.7']
52
- name: Windows service (Ruby ${{ matrix.ruby-version }})
53
- steps:
54
- - uses: actions/checkout@v5
55
- - name: Set up Ruby
56
- uses: ruby/setup-ruby@v1
57
- with:
58
- ruby-version: ${{ matrix.ruby-version }}
59
- - name: Install dependencies
60
- run: |
61
- bundle install
62
- rake install
63
- - name: Run tests
64
- run: test\scripts\windows_service_test.ps1
32
+ run: bundle exec rake test TESTOPTS="-v --no-show-detail-immediately"
data/CHANGELOG.md CHANGED
@@ -1,135 +1,46 @@
1
- # v1.16
2
-
3
- ## Release v1.16.11 - 2025/12/12
4
-
5
- ### Bug Fix
6
-
7
- * out_forward: fix issue where could cause output to stop when using `<security>` and TLS setting together under unstable network environments
8
- https://github.com/fluent/fluentd/pull/5137
9
-
10
- ### Misc
11
-
12
- * Add missing gem dependency on Ruby 3.4.
13
- https://github.com/fluent/fluentd/pull/5172
14
-
15
- * CI improvemnts
16
- https://github.com/fluent/fluentd/pull/5135
17
- https://github.com/fluent/fluentd/pull/5175
18
- https://github.com/fluent/fluentd/pull/5182
19
- https://github.com/fluent/fluentd/pull/5183
20
- https://github.com/fluent/fluentd/pull/5185
21
- https://github.com/fluent/fluentd/pull/5187
22
- https://github.com/fluent/fluentd/pull/5189
23
-
24
- ## Release v1.16.10 - 2025/09/12
25
-
26
- ### Bug Fix
27
-
28
- * server plugin helper: ensure to close all connections at shutdown
29
- https://github.com/fluent/fluentd/pull/5088
30
-
31
- ### Misc
32
-
33
- * CI improvemnts
34
- https://github.com/fluent/fluentd/pull/5083
35
- https://github.com/fluent/fluentd/pull/5085
36
- https://github.com/fluent/fluentd/pull/5086
37
- https://github.com/fluent/fluentd/pull/5091
38
- https://github.com/fluent/fluentd/pull/5092
39
-
40
- ## Release v1.16.9 - 2025/05/14
41
-
42
- ### Bug Fix
43
-
44
- * winsvc: Fix bug where service accidentally stops after starting.
45
- The previous version (v1.16.8) should not be used for Windows Service.
46
- https://github.com/fluent/fluentd/pull/4955
47
-
48
- ### Misc
49
-
50
- * CI improvemnts
51
- https://github.com/fluent/fluentd/pull/4956
52
-
53
- ## Release v1.16.8 - 2025/05/01
54
-
55
- **This version has a critical bug about Windows Service. Do not use this version.**
56
- (https://github.com/fluent/fluentd/pull/4955)
57
-
58
- ### Bug Fix
1
+ # v1.17
59
2
 
60
- * winsvc: Stop the service when the supervisor is dead
61
- https://github.com/fluent/fluentd/pull/4942
62
- * formatter_csv: Fix memory leak
63
- https://github.com/fluent/fluentd/pull/4920
3
+ ## Release v1.17.0 - 2024/04/30
64
4
 
65
- ### Misc
5
+ ### Enhancement
66
6
 
67
- * Add fiddle as dependency gem for Ruby 3.5 on Windows
68
- https://github.com/fluent/fluentd/pull/4919
69
- * Refactoring code
70
- https://github.com/fluent/fluentd/pull/4921
71
- https://github.com/fluent/fluentd/pull/4922
72
- https://github.com/fluent/fluentd/pull/4926
73
- https://github.com/fluent/fluentd/pull/4943
74
- * CI improvemnts
75
- https://github.com/fluent/fluentd/pull/4821
76
- https://github.com/fluent/fluentd/pull/4850
77
- https://github.com/fluent/fluentd/pull/4851
78
- https://github.com/fluent/fluentd/pull/4862
79
- https://github.com/fluent/fluentd/pull/4915
80
- https://github.com/fluent/fluentd/pull/4923
81
- https://github.com/fluent/fluentd/pull/4925
82
- https://github.com/fluent/fluentd/pull/4927
83
-
84
- ## Release v1.16.7 - 2025/01/29
7
+ * in_http: Recognize CSP reports as JSON data
8
+ https://github.com/fluent/fluentd/pull/4282
9
+ * out_http: Add option to reuse connections
10
+ https://github.com/fluent/fluentd/pull/4330
11
+ * in_tail: Expand glob capability for square brackets and one character matcher
12
+ https://github.com/fluent/fluentd/pull/4401
13
+ * out_http: Support AWS Signature Version 4 authentication
14
+ https://github.com/fluent/fluentd/pull/4459
85
15
 
86
16
  ### Bug Fix
87
17
 
88
- * Windows: Fix `NoMethodError` of `--daemon` option
89
- https://github.com/fluent/fluentd/pull/4796
90
- * Windows: Fixed an issue where stopping the service immediately after startup could leave the processes
91
- https://github.com/fluent/fluentd/pull/4782
92
- * Windows: Fixed an issue where stopping service sometimes can not be completed forever
93
- https://github.com/fluent/fluentd/pull/4782
18
+ * Make sure `parser_json` and `parser_msgpack` return `Hash`.
19
+ Make `parser_json` and `parser_msgpack` accept only `Hash` or `Array` of `Hash`.
20
+ https://github.com/fluent/fluentd/pull/4474
21
+ * filter_parser: Add error event for multiple parsed results
22
+ https://github.com/fluent/fluentd/pull/4478
94
23
 
95
24
  ### Misc
96
25
 
97
- * Windows: Add workaround for unexpected exception
98
- https://github.com/fluent/fluentd/pull/4747
99
- * README: remove deprecated google analytics beacon
100
- https://github.com/fluent/fluentd/pull/4797
101
- * CI improvemnts
102
- https://github.com/fluent/fluentd/pull/4723
103
- https://github.com/fluent/fluentd/pull/4788
104
- https://github.com/fluent/fluentd/pull/4789
105
- https://github.com/fluent/fluentd/pull/4790
106
- https://github.com/fluent/fluentd/pull/4791
107
- https://github.com/fluent/fluentd/pull/4793
108
- https://github.com/fluent/fluentd/pull/4794
109
- https://github.com/fluent/fluentd/pull/4795
110
- https://github.com/fluent/fluentd/pull/4798
111
- https://github.com/fluent/fluentd/pull/4799
112
- https://github.com/fluent/fluentd/pull/4800
113
- https://github.com/fluent/fluentd/pull/4801
114
- https://github.com/fluent/fluentd/pull/4803
115
-
116
- ## Release v1.16.6 - 2024/08/16
117
-
118
- ### Bug Fix
26
+ * Raise minimum required ruby version
27
+ https://github.com/fluent/fluentd/pull/4288
28
+ * Require missing dependent gems as of Ruby 3.4-dev
29
+ https://github.com/fluent/fluentd/pull/4411
30
+ * Minor code refactoring
31
+ https://github.com/fluent/fluentd/pull/4294
32
+ https://github.com/fluent/fluentd/pull/4299
33
+ https://github.com/fluent/fluentd/pull/4302
34
+ https://github.com/fluent/fluentd/pull/4320
35
+ * CI fixes
36
+ https://github.com/fluent/fluentd/pull/4369
37
+ https://github.com/fluent/fluentd/pull/4433
38
+ https://github.com/fluent/fluentd/pull/4452
39
+ https://github.com/fluent/fluentd/pull/4477
40
+ * github: unify YAML file extension to .yml
41
+ https://github.com/fluent/fluentd/pull/4429
119
42
 
120
- * YAML config syntax: Fix issue where `$log_level` element was not supported correctly
121
- https://github.com/fluent/fluentd/pull/4486
122
- * parser_json: Fix wrong LoadError warning
123
- https://github.com/fluent/fluentd/pull/4592
124
- * `fluentd` command: Fix `--plugin` (`-p`) option not to overwrite default value
125
- https://github.com/fluent/fluentd/pull/4605
126
-
127
- ### Misc
128
-
129
- * out_file: Add warn message for symlink_path setting
130
- https://github.com/fluent/fluentd/pull/4512
131
- * Keep console gem v1.23 to avoid LoadError
132
- https://github.com/fluent/fluentd/pull/4510
43
+ # v1.16
133
44
 
134
45
  ## Release v1.16.5 - 2024/03/27
135
46
 
data/README.md CHANGED
@@ -4,6 +4,7 @@ Fluentd: Open-Source Log Collector
4
4
  [![Testing on Ubuntu](https://github.com/fluent/fluentd/actions/workflows/linux-test.yaml/badge.svg?branch=master)](https://github.com/fluent/fluentd/actions/workflows/linux-test.yaml)
5
5
  [![Testing on Windows](https://github.com/fluent/fluentd/actions/workflows/windows-test.yaml/badge.svg?branch=master)](https://github.com/fluent/fluentd/actions/workflows/windows-test.yaml)
6
6
  [![Testing on macOS](https://github.com/fluent/fluentd/actions/workflows/macos-test.yaml/badge.svg?branch=master)](https://github.com/fluent/fluentd/actions/workflows/macos-test.yaml)
7
+ [![Code Climate](https://codeclimate.com/github/fluent/fluentd/badges/gpa.svg)](https://codeclimate.com/github/fluent/fluentd)
7
8
  [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/1189/badge)](https://bestpractices.coreinfrastructure.org/projects/1189)
8
9
 
9
10
  [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)).
@@ -28,7 +29,7 @@ Fluentd: Open-Source Log Collector
28
29
 
29
30
  ### Prerequisites
30
31
 
31
- - Ruby 2.4 or later
32
+ - Ruby 2.7 or later
32
33
  - git
33
34
 
34
35
  `git` should be in `PATH`. On Windows, you can use `Github for Windows` and `GitShell` for easy setup.
@@ -70,3 +71,5 @@ See [SECURITY](SECURITY.md) to contact us about vulnerability.
70
71
  ## Contributors:
71
72
 
72
73
  Patches contributed by [great developers](https://github.com/fluent/fluentd/contributors).
74
+
75
+ [<img src="https://ga-beacon.appspot.com/UA-24890265-6/fluent/fluentd" />](https://github.com/fluent/fluentd)
data/Rakefile CHANGED
@@ -13,7 +13,7 @@ task test: [:base_test]
13
13
  namespace :build do
14
14
  desc 'Build gems for all platforms'
15
15
  task :all do
16
- Bundler.with_clean_env do
16
+ Bundler.with_original_env do
17
17
  %w[ruby x86-mingw32 x64-mingw32 x64-mingw-ucrt].each do |name|
18
18
  ENV['GEM_BUILD_FAKE_PLATFORM'] = name
19
19
  Rake::Task["build"].execute
data/SECURITY.md CHANGED
@@ -2,13 +2,11 @@
2
2
 
3
3
  ## Supported Versions
4
4
 
5
- | Version | Supported |
6
- |-----------|--------------------|
7
- | 1.19.x | :white_check_mark: |
8
- | 1.18.x | :x: |
9
- | 1.17.x | :x: |
5
+ | Version | Supported |
6
+ | ------- | ------------------ |
10
7
  | 1.16.x | :white_check_mark: |
11
- | <= 1.15.x | :x: |
8
+ | 1.15.x | :white_check_mark: |
9
+ | <= 1.14.x | :x: |
12
10
 
13
11
  ## Reporting a Vulnerability
14
12
 
data/fluentd.gemspec CHANGED
@@ -16,7 +16,7 @@ Gem::Specification.new do |gem|
16
16
  gem.require_paths = ["lib"]
17
17
  gem.license = "Apache-2.0"
18
18
 
19
- gem.required_ruby_version = '>= 2.4'
19
+ gem.required_ruby_version = '>= 2.7'
20
20
 
21
21
  gem.add_runtime_dependency("bundler")
22
22
  gem.add_runtime_dependency("msgpack", [">= 1.3.1", "< 2.0.0"])
@@ -29,16 +29,12 @@ Gem::Specification.new do |gem|
29
29
  gem.add_runtime_dependency("tzinfo-data", ["~> 1.0"])
30
30
  gem.add_runtime_dependency("strptime", [">= 0.2.4", "< 1.0.0"])
31
31
  gem.add_runtime_dependency("webrick", ["~> 1.4"])
32
- gem.add_runtime_dependency("console", ["< 1.24"])
33
32
 
34
33
  # gems that aren't default gems as of Ruby 3.4
35
34
  gem.add_runtime_dependency("base64", ["~> 0.2"])
36
35
  gem.add_runtime_dependency("csv", ["~> 3.2"])
37
36
  gem.add_runtime_dependency("drb", ["~> 2.2"])
38
37
 
39
- # gems that aren't default gems as of Ruby 3.5
40
- gem.add_runtime_dependency("logger", ["~> 1.6"])
41
-
42
38
  # build gem for a certain platform. see also Rakefile
43
39
  fake_platform = ENV['GEM_BUILD_FAKE_PLATFORM'].to_s
44
40
  gem.platform = fake_platform unless fake_platform.empty?
@@ -47,9 +43,6 @@ Gem::Specification.new do |gem|
47
43
  gem.add_runtime_dependency("win32-ipc", ["~> 0.7.0"])
48
44
  gem.add_runtime_dependency("win32-event", ["~> 0.6.3"])
49
45
  gem.add_runtime_dependency("certstore_c", ["~> 0.1.7"])
50
-
51
- # gems that aren't default gems as of Ruby 3.5
52
- gem.add_runtime_dependency("fiddle", ["~> 1.1"])
53
46
  end
54
47
 
55
48
  gem.add_development_dependency("rake", ["~> 13.0"])
@@ -57,12 +50,13 @@ Gem::Specification.new do |gem|
57
50
  gem.add_development_dependency("parallel_tests", ["~> 0.15.3"])
58
51
  gem.add_development_dependency("simplecov", ["~> 0.7"])
59
52
  gem.add_development_dependency("rr", ["~> 3.0"])
60
- # timecop v0.9.9 supports `Process.clock_gettime`. It breaks some tests.
61
- # (https://github.com/fluent/fluentd/pull/4521)
62
- gem.add_development_dependency("timecop", ["< 0.9.9"])
53
+ gem.add_development_dependency("timecop", ["~> 0.9"])
63
54
  gem.add_development_dependency("test-unit", ["~> 3.3"])
64
55
  gem.add_development_dependency("test-unit-rr", ["~> 1.0"])
65
56
  gem.add_development_dependency("oj", [">= 2.14", "< 4"])
66
57
  gem.add_development_dependency("async", "~> 1.23")
67
58
  gem.add_development_dependency("async-http", ">= 0.50.0")
59
+ gem.add_development_dependency("aws-sigv4", ["~> 1.8"])
60
+ gem.add_development_dependency("aws-sdk-core", ["~> 3.191"])
61
+ gem.add_development_dependency("rexml", ["~> 3.2"])
68
62
  end
@@ -130,7 +130,7 @@ module BinlogReaderCommand
130
130
  private
131
131
 
132
132
  def configure_option_parser
133
- @options.merge!(config_params: {})
133
+ @options[:config_params] = {}
134
134
 
135
135
  @opt_parser.banner = "Usage: fluent-binlog-reader #{self.class.to_s.split('::').last.downcase} [options] file"
136
136
 
@@ -46,7 +46,7 @@ op.on('--show-plugin-config=PLUGIN', "[DEPRECATED] Show PLUGIN configuration and
46
46
  }
47
47
 
48
48
  op.on('-p', '--plugin DIR', "add plugin directory") {|s|
49
- (cmd_opts[:plugin_dirs] ||= default_opts[:plugin_dirs]) << s
49
+ (cmd_opts[:plugin_dirs] ||= []) << s
50
50
  }
51
51
 
52
52
  op.on('-I PATH', "add library path") {|s|
@@ -101,12 +101,6 @@ module Fluent
101
101
 
102
102
  class CsvFormatter < Fluent::Plugin::CsvFormatter
103
103
  # TODO: warn when deprecated
104
-
105
- # Do not cache because it is hard to consider the thread key correctly.
106
- # (We can try, but it would be low priority.)
107
- def csv_cacheable?
108
- false
109
- end
110
104
  end
111
105
 
112
106
  class SingleValueFormatter < Fluent::Plugin::SingleValueFormatter
@@ -201,7 +201,7 @@ module Fluent
201
201
 
202
202
  def overwrite_defaults(other) # other is owner plugin's corresponding proxy
203
203
  self.defaults = self.defaults.merge(other.defaults)
204
- self.sections.keys.each do |section_key|
204
+ self.sections.each_key do |section_key|
205
205
  if other.sections.has_key?(section_key)
206
206
  self.sections[section_key].overwrite_defaults(other.sections[section_key])
207
207
  end
@@ -274,7 +274,7 @@ module Fluent
274
274
  option_value_type!(name, opts, :deprecated, String)
275
275
  option_value_type!(name, opts, :obsoleted, String)
276
276
  if type == :enum
277
- if !opts.has_key?(:list) || !opts[:list].is_a?(Array) || opts[:list].empty? || !opts[:list].all?{|v| v.is_a?(Symbol) }
277
+ if !opts.has_key?(:list) || !opts[:list].is_a?(Array) || opts[:list].empty? || !opts[:list].all?(Symbol)
278
278
  raise ArgumentError, "#{name}: enum parameter requires :list of Symbols"
279
279
  end
280
280
  end
@@ -92,23 +92,10 @@ module Fluent
92
92
  else
93
93
  basepath = '/'
94
94
  fname = path
95
- parser_proc = ->(f) {
95
+ require 'open-uri'
96
+ URI.open(uri) {|f|
96
97
  Parser.new(basepath, f.each_line, fname).parse!(allow_include, nil, attrs, elems)
97
98
  }
98
-
99
- case u.scheme
100
- when 'http', 'https', 'ftp'
101
- # URI#open can be able to handle URIs for http, https and ftp.
102
- require 'open-uri'
103
- u.open(&parser_proc)
104
- else
105
- # TODO: This case should be handled in the previous if condition. Glob is not applied to some Windows path formats.
106
- # 'c:/path/to/file' will be passed as URI, 'uri' and 'u.path' will be:
107
- # - uri is 'c:/path/to/file'
108
- # - u.path is '/path/to/file' and u.scheme is 'c'
109
- # Therefore, the condition of the if statement above is not met and it is handled here.
110
- File.open(uri, &parser_proc)
111
- end
112
99
  end
113
100
 
114
101
  rescue SystemCallError => e
@@ -117,3 +104,4 @@ module Fluent
117
104
  end
118
105
  end
119
106
  end
107
+
@@ -123,7 +123,7 @@ module Fluent
123
123
 
124
124
  s = val.to_sym
125
125
  list = opts[:list]
126
- raise "Plugin BUG: config type 'enum' requires :list of symbols" unless list.is_a?(Array) && list.all?{|v| v.is_a? Symbol }
126
+ raise "Plugin BUG: config type 'enum' requires :list of symbols" unless list.is_a?(Array) && list.all?(Symbol)
127
127
  unless list.include?(s)
128
128
  raise ConfigError, "valid options are #{list.join(',')} but got #{val}"
129
129
  end
@@ -172,7 +172,7 @@ module Fluent
172
172
  require 'open-uri'
173
173
  basepath = '/'
174
174
  fname = path
175
- data = u.open { |f| f.read }
175
+ data = URI.open(uri) { |f| f.read }
176
176
  data.force_encoding('UTF-8')
177
177
  ss = StringScanner.new(data)
178
178
  V1Parser.new(ss, basepath, fname, @eval_context).parse_element(true, nil, attrs, elems)
@@ -138,10 +138,6 @@ module Fluent
138
138
  sb.add_line('@id', v)
139
139
  end
140
140
 
141
- if (v = config.delete('$log_level'))
142
- sb.add_line('@log_level', v)
143
- end
144
-
145
141
  config.each do |key, val|
146
142
  if val.is_a?(Array)
147
143
  val.each do |v|
@@ -31,13 +31,13 @@ module Fluent
31
31
  super
32
32
  # to simulate implicit 'attr_accessor' by config_param / config_section and its value by config_set_default
33
33
  proxy = self.class.merged_configure_proxy
34
- proxy.params.keys.each do |name|
34
+ proxy.params.each_key do |name|
35
35
  next if name.to_s.start_with?('@')
36
36
  if proxy.defaults.has_key?(name)
37
37
  instance_variable_set("@#{name}".to_sym, proxy.defaults[name])
38
38
  end
39
39
  end
40
- proxy.sections.keys.each do |name|
40
+ proxy.sections.each_key do |name|
41
41
  next if name.to_s.start_with?('@')
42
42
  subproxy = proxy.sections[name]
43
43
  if subproxy.multi?
@@ -54,7 +54,7 @@ module Fluent
54
54
  if mutex.try_lock
55
55
  locks[key] = mutex
56
56
  else
57
- locks.values.each(&:unlock)
57
+ locks.each_value(&:unlock)
58
58
  locks = {} # flush locked keys
59
59
  break
60
60
  end
@@ -47,8 +47,6 @@ module Fluent
47
47
  # it's not suppressed in default event router for non-log-event events
48
48
  log_event_router.suppress_missing_match!
49
49
 
50
- log_event_router = log_event_router
51
-
52
50
  unmatched_tags = Fluent::Log.event_tags.select { |t| !log_event_router.match?(t) }
53
51
  unless unmatched_tags.empty?
54
52
  $log.warn "match for some tags of log events are not defined in @FLUENT_LOG label (to be ignored)", tags: unmatched_tags
@@ -56,7 +56,7 @@ module Fluent
56
56
 
57
57
  @variable_store = Fluent::VariableStore.fetch_or_build(:buf_file)
58
58
 
59
- multi_workers_configured = owner.system_config.workers > 1 ? true : false
59
+ multi_workers_configured = owner.system_config.workers > 1
60
60
 
61
61
  using_plugin_root_dir = false
62
62
  unless @path