fluentd 1.15.2-x64-mingw-ucrt → 1.16.0-x64-mingw-ucrt

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/linux-test.yaml +2 -2
  3. data/.github/workflows/macos-test.yaml +2 -2
  4. data/.github/workflows/windows-test.yaml +2 -2
  5. data/CHANGELOG.md +96 -0
  6. data/MAINTAINERS.md +2 -0
  7. data/README.md +0 -1
  8. data/fluentd.gemspec +2 -2
  9. data/lib/fluent/command/fluentd.rb +55 -64
  10. data/lib/fluent/config/yaml_parser/loader.rb +18 -1
  11. data/lib/fluent/daemon.rb +2 -4
  12. data/lib/fluent/file_wrapper.rb +137 -0
  13. data/lib/fluent/log/console_adapter.rb +66 -0
  14. data/lib/fluent/log.rb +35 -5
  15. data/lib/fluent/oj_options.rb +1 -2
  16. data/lib/fluent/plugin/base.rb +5 -7
  17. data/lib/fluent/plugin/buf_file.rb +32 -3
  18. data/lib/fluent/plugin/buf_file_single.rb +32 -3
  19. data/lib/fluent/plugin/buffer/file_chunk.rb +1 -1
  20. data/lib/fluent/plugin/buffer.rb +21 -0
  21. data/lib/fluent/plugin/in_tail.rb +1 -6
  22. data/lib/fluent/plugin/in_tcp.rb +4 -2
  23. data/lib/fluent/plugin/out_file.rb +0 -4
  24. data/lib/fluent/plugin/out_forward/ack_handler.rb +19 -4
  25. data/lib/fluent/plugin/out_forward.rb +2 -2
  26. data/lib/fluent/plugin/out_secondary_file.rb +39 -22
  27. data/lib/fluent/plugin/output.rb +49 -12
  28. data/lib/fluent/plugin_helper/http_server/server.rb +2 -1
  29. data/lib/fluent/supervisor.rb +157 -232
  30. data/lib/fluent/test/driver/base.rb +11 -5
  31. data/lib/fluent/test/driver/filter.rb +4 -0
  32. data/lib/fluent/test/startup_shutdown.rb +6 -8
  33. data/lib/fluent/version.rb +1 -1
  34. data/test/command/test_ctl.rb +1 -1
  35. data/test/command/test_fluentd.rb +168 -22
  36. data/test/command/test_plugin_config_formatter.rb +0 -1
  37. data/test/compat/test_parser.rb +5 -5
  38. data/test/config/test_system_config.rb +0 -8
  39. data/test/log/test_console_adapter.rb +110 -0
  40. data/test/plugin/out_forward/test_ack_handler.rb +39 -0
  41. data/test/plugin/test_base.rb +98 -0
  42. data/test/plugin/test_buf_file.rb +62 -23
  43. data/test/plugin/test_buf_file_single.rb +65 -0
  44. data/test/plugin/test_in_http.rb +2 -3
  45. data/test/plugin/test_in_monitor_agent.rb +2 -3
  46. data/test/plugin/test_in_tail.rb +105 -103
  47. data/test/plugin/test_in_tcp.rb +15 -0
  48. data/test/plugin/test_out_file.rb +3 -2
  49. data/test/plugin/test_out_forward.rb +14 -18
  50. data/test/plugin/test_out_http.rb +1 -0
  51. data/test/plugin/test_output.rb +269 -0
  52. data/test/plugin/test_parser_regexp.rb +1 -6
  53. data/test/plugin_helper/test_http_server_helper.rb +1 -1
  54. data/test/plugin_helper/test_server.rb +10 -5
  55. data/test/test_config.rb +57 -21
  56. data/test/{plugin/test_file_wrapper.rb → test_file_wrapper.rb} +2 -2
  57. data/test/test_formatter.rb +23 -20
  58. data/test/test_log.rb +85 -40
  59. data/test/test_supervisor.rb +300 -283
  60. metadata +15 -24
  61. data/.drone.yml +0 -35
  62. data/.github/workflows/issue-auto-closer.yml +0 -12
  63. data/.github/workflows/stale-actions.yml +0 -22
  64. data/.gitlab-ci.yml +0 -103
  65. data/lib/fluent/plugin/file_wrapper.rb +0 -131
  66. data/test/test_logger_initializer.rb +0 -46
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluentd
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.15.2
4
+ version: 1.16.0
5
5
  platform: x64-mingw-ucrt
6
6
  authors:
7
7
  - Sadayuki Furuhashi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-22 00:00:00.000000000 Z
11
+ date: 2023-03-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -84,7 +84,7 @@ dependencies:
84
84
  requirements:
85
85
  - - ">="
86
86
  - !ruby/object:Gem::Version
87
- version: 2.3.0
87
+ version: 2.3.2
88
88
  - - "<"
89
89
  - !ruby/object:Gem::Version
90
90
  version: 3.0.0
@@ -94,7 +94,7 @@ dependencies:
94
94
  requirements:
95
95
  - - ">="
96
96
  - !ruby/object:Gem::Version
97
- version: 2.3.0
97
+ version: 2.3.2
98
98
  - - "<"
99
99
  - !ruby/object:Gem::Version
100
100
  version: 3.0.0
@@ -190,22 +190,16 @@ dependencies:
190
190
  name: webrick
191
191
  requirement: !ruby/object:Gem::Requirement
192
192
  requirements:
193
- - - ">="
194
- - !ruby/object:Gem::Version
195
- version: 1.4.2
196
- - - "<"
193
+ - - "~>"
197
194
  - !ruby/object:Gem::Version
198
- version: 1.8.0
195
+ version: '1.4'
199
196
  type: :runtime
200
197
  prerelease: false
201
198
  version_requirements: !ruby/object:Gem::Requirement
202
199
  requirements:
203
- - - ">="
204
- - !ruby/object:Gem::Version
205
- version: 1.4.2
206
- - - "<"
200
+ - - "~>"
207
201
  - !ruby/object:Gem::Version
208
- version: 1.8.0
202
+ version: '1.4'
209
203
  - !ruby/object:Gem::Dependency
210
204
  name: win32-service
211
205
  requirement: !ruby/object:Gem::Requirement
@@ -441,19 +435,15 @@ extensions: []
441
435
  extra_rdoc_files: []
442
436
  files:
443
437
  - ".deepsource.toml"
444
- - ".drone.yml"
445
438
  - ".github/ISSUE_TEMPLATE.md"
446
439
  - ".github/ISSUE_TEMPLATE/bug_report.yaml"
447
440
  - ".github/ISSUE_TEMPLATE/config.yml"
448
441
  - ".github/ISSUE_TEMPLATE/feature_request.yaml"
449
442
  - ".github/PULL_REQUEST_TEMPLATE.md"
450
- - ".github/workflows/issue-auto-closer.yml"
451
443
  - ".github/workflows/linux-test.yaml"
452
444
  - ".github/workflows/macos-test.yaml"
453
- - ".github/workflows/stale-actions.yml"
454
445
  - ".github/workflows/windows-test.yaml"
455
446
  - ".gitignore"
456
- - ".gitlab-ci.yml"
457
447
  - ADOPTERS.md
458
448
  - AUTHORS
459
449
  - CHANGELOG.md
@@ -585,6 +575,7 @@ files:
585
575
  - lib/fluent/event.rb
586
576
  - lib/fluent/event_router.rb
587
577
  - lib/fluent/ext_monitor_require.rb
578
+ - lib/fluent/file_wrapper.rb
588
579
  - lib/fluent/filter.rb
589
580
  - lib/fluent/fluent_log_event_router.rb
590
581
  - lib/fluent/formatter.rb
@@ -592,6 +583,7 @@ files:
592
583
  - lib/fluent/label.rb
593
584
  - lib/fluent/load.rb
594
585
  - lib/fluent/log.rb
586
+ - lib/fluent/log/console_adapter.rb
595
587
  - lib/fluent/match.rb
596
588
  - lib/fluent/mixin.rb
597
589
  - lib/fluent/msgpack_factory.rb
@@ -613,7 +605,6 @@ files:
613
605
  - lib/fluent/plugin/compressable.rb
614
606
  - lib/fluent/plugin/exec_util.rb
615
607
  - lib/fluent/plugin/file_util.rb
616
- - lib/fluent/plugin/file_wrapper.rb
617
608
  - lib/fluent/plugin/filter.rb
618
609
  - lib/fluent/plugin/filter_grep.rb
619
610
  - lib/fluent/plugin/filter_parser.rb
@@ -814,6 +805,7 @@ files:
814
805
  - test/helper.rb
815
806
  - test/helpers/fuzzy_assert.rb
816
807
  - test/helpers/process_extenstion.rb
808
+ - test/log/test_console_adapter.rb
817
809
  - test/plugin/data/2010/01/20100102-030405.log
818
810
  - test/plugin/data/2010/01/20100102-030406.log
819
811
  - test/plugin/data/2010/01/20100102.log
@@ -846,7 +838,6 @@ files:
846
838
  - test/plugin/test_buffer_memory_chunk.rb
847
839
  - test/plugin/test_compressable.rb
848
840
  - test/plugin/test_file_util.rb
849
- - test/plugin/test_file_wrapper.rb
850
841
  - test/plugin/test_filter.rb
851
842
  - test/plugin/test_filter_grep.rb
852
843
  - test/plugin/test_filter_parser.rb
@@ -978,12 +969,12 @@ files:
978
969
  - test/test_event.rb
979
970
  - test/test_event_router.rb
980
971
  - test/test_event_time.rb
972
+ - test/test_file_wrapper.rb
981
973
  - test/test_filter.rb
982
974
  - test/test_fluent_log_event_router.rb
983
975
  - test/test_formatter.rb
984
976
  - test/test_input.rb
985
977
  - test/test_log.rb
986
- - test/test_logger_initializer.rb
987
978
  - test/test_match.rb
988
979
  - test/test_mixin.rb
989
980
  - test/test_msgpack_factory.rb
@@ -1022,7 +1013,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1022
1013
  - !ruby/object:Gem::Version
1023
1014
  version: '0'
1024
1015
  requirements: []
1025
- rubygems_version: 3.3.17
1016
+ rubygems_version: 3.3.5
1026
1017
  signing_key:
1027
1018
  specification_version: 4
1028
1019
  summary: Fluentd event collector
@@ -1057,6 +1048,7 @@ test_files:
1057
1048
  - test/helper.rb
1058
1049
  - test/helpers/fuzzy_assert.rb
1059
1050
  - test/helpers/process_extenstion.rb
1051
+ - test/log/test_console_adapter.rb
1060
1052
  - test/plugin/data/2010/01/20100102-030405.log
1061
1053
  - test/plugin/data/2010/01/20100102-030406.log
1062
1054
  - test/plugin/data/2010/01/20100102.log
@@ -1089,7 +1081,6 @@ test_files:
1089
1081
  - test/plugin/test_buffer_memory_chunk.rb
1090
1082
  - test/plugin/test_compressable.rb
1091
1083
  - test/plugin/test_file_util.rb
1092
- - test/plugin/test_file_wrapper.rb
1093
1084
  - test/plugin/test_filter.rb
1094
1085
  - test/plugin/test_filter_grep.rb
1095
1086
  - test/plugin/test_filter_parser.rb
@@ -1221,12 +1212,12 @@ test_files:
1221
1212
  - test/test_event.rb
1222
1213
  - test/test_event_router.rb
1223
1214
  - test/test_event_time.rb
1215
+ - test/test_file_wrapper.rb
1224
1216
  - test/test_filter.rb
1225
1217
  - test/test_fluent_log_event_router.rb
1226
1218
  - test/test_formatter.rb
1227
1219
  - test/test_input.rb
1228
1220
  - test/test_log.rb
1229
- - test/test_logger_initializer.rb
1230
1221
  - test/test_match.rb
1231
1222
  - test/test_mixin.rb
1232
1223
  - test/test_msgpack_factory.rb
data/.drone.yml DELETED
@@ -1,35 +0,0 @@
1
- kind: pipeline
2
- name: fluentd-test-arm64-3-0
3
-
4
- platform:
5
- os: linux
6
- arch: arm64
7
-
8
- steps:
9
- - name: fluentd-test-arm64-3-0
10
- image: arm64v8/ruby:3.0
11
- commands:
12
- - apt update
13
- - apt -y install libgmp3-dev
14
- - export BUNDLE_GEMFILE=$PWD/Gemfile
15
- - gem update --system
16
- - bundle install --jobs=3 --retry=3 --path=${BUNDLE_PATH:-vendor/bundle}
17
- - bundle exec rake test
18
- ---
19
- kind: pipeline
20
- name: fluentd-test-arm64-2-7
21
-
22
- platform:
23
- os: linux
24
- arch: arm64
25
-
26
- steps:
27
- - name: fluentd-test-arm64-2-7
28
- image: arm64v8/ruby:2.7
29
- commands:
30
- - apt update
31
- - apt -y install libgmp3-dev
32
- - export BUNDLE_GEMFILE=$PWD/Gemfile
33
- - gem update --system
34
- - bundle install --jobs=3 --retry=3 --path=${BUNDLE_PATH:-vendor/bundle}
35
- - bundle exec rake test
@@ -1,12 +0,0 @@
1
- name: Autocloser
2
- on: [issues]
3
- jobs:
4
- autoclose:
5
- runs-on: ubuntu-latest
6
- steps:
7
- - name: Autoclose issues that did not follow issue template
8
- uses: roots/issue-closer-action@v1.1
9
- with:
10
- repo-token: ${{ secrets.GITHUB_TOKEN }}
11
- issue-close-message: "@${issue.user.login} this issue was automatically closed because it did not follow the issue template"
12
- issue-pattern: "(.*Describe the bug.*)|(.*Is your feature request related to a problem.*)"
@@ -1,22 +0,0 @@
1
- name: "Mark or close stale issues and PRs"
2
- on:
3
- schedule:
4
- - cron: "00 10 * * *"
5
-
6
- jobs:
7
- stale:
8
- runs-on: ubuntu-latest
9
- steps:
10
- - uses: actions/stale@v3
11
- with:
12
- repo-token: ${{ secrets.GITHUB_TOKEN }}
13
- days-before-stale: 90
14
- days-before-close: 30
15
- stale-issue-message: "This issue has been automatically marked as stale because it has been open 90 days with no activity. Remove stale label or comment or this issue will be closed in 30 days"
16
- stale-pr-message: "This PR has been automatically marked as stale because it has been open 90 days with no activity. Remove stale label or comment or this PR will be closed in 30 days"
17
- close-issue-message: "This issue was automatically closed because of stale in 30 days"
18
- close-pr-message: "This PR was automatically closed because of stale in 30 days"
19
- stale-pr-label: "stale"
20
- stale-issue-label: "stale"
21
- exempt-issue-labels: "bug,enhancement,feature request,pending,work_in_progress,v1,v2"
22
- exempt-pr-labels: "bug,enhancement,feature request,pending,work_in_progress,v1,v2"
data/.gitlab-ci.yml DELETED
@@ -1,103 +0,0 @@
1
- .install-template:
2
- before_script:
3
- - gem update --system
4
- - ruby -v
5
-
6
- .test-template:
7
- before_script:
8
- - gem install rake
9
- - bundle install
10
- - chmod 777 -R ./test
11
-
12
- stages:
13
- - build
14
- - tests
15
-
16
- 2-6-6:
17
- image: "ruby:2.6.6"
18
- stage: build
19
- extends: .install-template
20
- script:
21
- - bundle install --jobs=3 --retry=3
22
- cache:
23
- key: "$CI_COMMIT_REF_SLUG 2-6-6"
24
- paths:
25
-
26
- 2-7-2:
27
- image: "ruby:2.7.2"
28
- stage: build
29
- extends: .install-template
30
- script:
31
- - bundle install --jobs=3 --retry=3
32
- cache:
33
- key: "$CI_COMMIT_REF_SLUG 2-7-2"
34
- paths:
35
-
36
- 3-0-0:
37
- image: "ruby:3.0.0"
38
- stage: build
39
- extends: .install-template
40
- script:
41
- - bundle install --jobs=3 --retry=3
42
- cache:
43
- key: "$CI_COMMIT_REF_SLUG 3-0-0"
44
- paths:
45
-
46
- rubyhead:
47
- image: "ruby:latest"
48
- stage: build
49
- extends: .install-template
50
- script:
51
- - bundle install --jobs=3 --retry=3
52
- cache:
53
- key: "$CI_COMMIT_REF_SLUG latest"
54
- paths:
55
- - ./*
56
-
57
- 2-6-6-test:
58
- image: "ruby:2.6.6"
59
- stage: tests
60
- allow_failure: true
61
- extends: .test-template
62
- script:
63
- - bundle exec rake test
64
- cache:
65
- key: "$CI_COMMIT_REF_SLUG 2-6-6"
66
- paths:
67
- - ./*
68
-
69
- 2-7-2-test:
70
- image: "ruby:2.7.2"
71
- stage: tests
72
- allow_failure: true
73
- extends: .test-template
74
- script:
75
- - bundle exec rake test
76
- cache:
77
- key: "$CI_COMMIT_REF_SLUG 2-7-2"
78
- paths:
79
- - ./*
80
-
81
- 3-0-0-test:
82
- image: "ruby:3.0.0"
83
- stage: tests
84
- allow_failure: true
85
- extends: .test-template
86
- script:
87
- - bundle exec rake test
88
- cache:
89
- key: "$CI_COMMIT_REF_SLUG 3-0-0"
90
- paths:
91
- - ./*
92
-
93
- rubyhead-test:
94
- image: "ruby:latest"
95
- stage: tests
96
- allow_failure: true
97
- extends: .test-template
98
- script:
99
- - bundle exec rake test
100
- cache:
101
- key: "$CI_COMMIT_REF_SLUG latest"
102
- paths:
103
- - ./*
@@ -1,131 +0,0 @@
1
- #
2
- # Fluentd
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
- #
16
-
17
- require 'fluent/win32api'
18
-
19
- module Fluent
20
- module FileWrapper
21
- def self.open(path, mode='r')
22
- io = WindowsFile.new(path, mode).io
23
- if block_given?
24
- v = yield io
25
- io.close
26
- v
27
- else
28
- io
29
- end
30
- end
31
-
32
- def self.stat(path)
33
- f = WindowsFile.new(path)
34
- s = f.stat
35
- f.close
36
- s
37
- end
38
- end
39
-
40
- class WindowsFile
41
- include File::Constants
42
-
43
- attr_reader :io
44
-
45
- INVALID_HANDLE_VALUE = -1
46
-
47
- def initialize(path, mode='r')
48
- @path = path
49
- @io = File.open(path, mode2flags(mode))
50
- @file_handle = Win32API._get_osfhandle(@io.to_i)
51
- @io.instance_variable_set(:@file_index, self.ino)
52
- def @io.ino
53
- @file_index
54
- end
55
- end
56
-
57
- def close
58
- @io.close
59
- @file_handle = INVALID_HANDLE_VALUE
60
- end
61
-
62
- # To keep backward compatibility, we continue to use GetFileInformationByHandle()
63
- # to get file id.
64
- # Note that Ruby's File.stat uses GetFileInformationByHandleEx() with FileIdInfo
65
- # and returned value is different with above one, former one is 64 bit while
66
- # later one is 128bit.
67
- def ino
68
- by_handle_file_information = '\0'*(4+8+8+8+4+4+4+4+4+4) #72bytes
69
-
70
- unless Win32API.GetFileInformationByHandle(@file_handle, by_handle_file_information)
71
- return 0
72
- end
73
-
74
- by_handle_file_information.unpack("I11Q1")[11] # fileindex
75
- end
76
-
77
- def stat
78
- raise Errno::ENOENT if delete_pending
79
- s = File.stat(@path)
80
- s.instance_variable_set :@ino, self.ino
81
- def s.ino; @ino; end
82
- s
83
- end
84
-
85
- private
86
-
87
- def mode2flags(mode)
88
- # Always inject File::Constants::SHARE_DELETE
89
- # https://github.com/fluent/fluentd/pull/3585#issuecomment-1101502617
90
- # To enable SHARE_DELETE, BINARY is also required.
91
- # https://bugs.ruby-lang.org/issues/11218
92
- # https://github.com/ruby/ruby/blob/d6684f063bc53e3cab025bd39526eca3b480b5e7/win32/win32.c#L6332-L6345
93
- flags = BINARY | SHARE_DELETE
94
- case mode.delete("b")
95
- when "r"
96
- flags |= RDONLY
97
- when "r+"
98
- flags |= RDWR
99
- when "w"
100
- flags |= WRONLY | CREAT | TRUNC
101
- when "w+"
102
- flags |= RDWR | CREAT | TRUNC
103
- when "a"
104
- flags |= WRONLY | CREAT | APPEND
105
- when "a+"
106
- flags |= RDWR | CREAT | APPEND
107
- else
108
- raise Errno::EINVAL.new("Unsupported mode by Fluent::FileWrapper: #{mode}")
109
- end
110
- end
111
-
112
- # DeletePending is a Windows-specific file state that roughly means
113
- # "this file is queued for deletion, so close any open handlers"
114
- #
115
- # This flag can be retrieved via GetFileInformationByHandleEx().
116
- #
117
- # https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-getfileinformationbyhandleex
118
- #
119
- def delete_pending
120
- file_standard_info = 0x01
121
- bufsize = 1024
122
- buf = '\0' * bufsize
123
-
124
- unless Win32API.GetFileInformationByHandleEx(@file_handle, file_standard_info, buf, bufsize)
125
- return false
126
- end
127
-
128
- return buf.unpack("QQICC")[3] != 0
129
- end
130
- end
131
- end if Fluent.windows?
@@ -1,46 +0,0 @@
1
- require_relative 'helper'
2
- require 'fluent/supervisor'
3
- require 'fileutils'
4
-
5
- class LoggerInitializerTest < ::Test::Unit::TestCase
6
- TMP_DIR = File.expand_path(File.dirname(__FILE__) + "/tmp/logger_initializer#{ENV['TEST_ENV_NUMBER']}")
7
-
8
- teardown do
9
- begin
10
- FileUtils.rm_rf(TMP_DIR)
11
- rescue => _
12
- end
13
- end
14
-
15
- test 'when path is given' do
16
- path = File.join(TMP_DIR, 'fluent_with_path.log')
17
-
18
- assert_false File.exist?(TMP_DIR)
19
- logger = Fluent::Supervisor::LoggerInitializer.new(path, Fluent::Log::LEVEL_DEBUG, nil, nil, {})
20
- mock.proxy(File).chmod(0o777, TMP_DIR).never
21
-
22
- assert_nothing_raised do
23
- logger.init(:supervisor, 0)
24
- end
25
-
26
- assert_true File.exist?(TMP_DIR)
27
- end
28
-
29
- test 'apply_options with log_dir_perm' do
30
- omit "NTFS doesn't support UNIX like permissions" if Fluent.windows?
31
-
32
- path = File.join(TMP_DIR, 'fluent_with_path.log')
33
-
34
- assert_false File.exist?(TMP_DIR)
35
- logger = Fluent::Supervisor::LoggerInitializer.new(path, Fluent::Log::LEVEL_DEBUG, nil, nil, {})
36
- mock.proxy(File).chmod(0o777, TMP_DIR).once
37
-
38
- assert_nothing_raised do
39
- logger.init(:supervisor, 0)
40
- end
41
-
42
- logger.apply_options(log_dir_perm: 0o777)
43
- assert_true File.exist?(TMP_DIR)
44
- assert_equal 0o777, (File.stat(TMP_DIR).mode & 0xFFF)
45
- end
46
- end