fluentd 1.16.3 → 1.17.0
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.
- checksums.yaml +4 -4
- data/.github/DISCUSSION_TEMPLATE/q-a-japanese.yml +50 -0
- data/.github/DISCUSSION_TEMPLATE/q-a.yml +47 -0
- data/.github/workflows/test-ruby-head.yml +31 -0
- data/.github/workflows/{linux-test.yaml → test.yml} +9 -13
- data/CHANGELOG.md +66 -0
- data/README.md +1 -1
- data/Rakefile +1 -1
- data/fluentd.gemspec +9 -1
- data/lib/fluent/command/binlog_reader.rb +1 -1
- data/lib/fluent/config/configure_proxy.rb +2 -2
- data/lib/fluent/config/types.rb +1 -1
- data/lib/fluent/configurable.rb +2 -2
- data/lib/fluent/counter/mutex_hash.rb +1 -1
- data/lib/fluent/fluent_log_event_router.rb +0 -2
- data/lib/fluent/plugin/buf_file.rb +1 -1
- data/lib/fluent/plugin/buffer/file_chunk.rb +1 -1
- data/lib/fluent/plugin/buffer/file_single_chunk.rb +2 -3
- data/lib/fluent/plugin/buffer.rb +95 -86
- data/lib/fluent/plugin/filter_parser.rb +26 -8
- data/lib/fluent/plugin/in_http.rb +18 -53
- data/lib/fluent/plugin/in_tail.rb +52 -8
- data/lib/fluent/plugin/out_http.rb +125 -13
- data/lib/fluent/plugin/owned_by_mixin.rb +0 -1
- data/lib/fluent/plugin/parser_json.rb +22 -5
- data/lib/fluent/plugin/parser_msgpack.rb +24 -3
- data/lib/fluent/plugin_helper/metrics.rb +2 -2
- data/lib/fluent/registry.rb +6 -6
- data/lib/fluent/test/output_test.rb +1 -1
- data/lib/fluent/unique_id.rb +1 -1
- data/lib/fluent/version.rb +1 -1
- data/test/command/test_fluentd.rb +8 -2
- data/test/log/test_console_adapter.rb +10 -3
- data/test/plugin/data/log_numeric/01.log +0 -0
- data/test/plugin/data/log_numeric/02.log +0 -0
- data/test/plugin/data/log_numeric/12.log +0 -0
- data/test/plugin/data/log_numeric/14.log +0 -0
- data/test/plugin/test_buffer.rb +110 -0
- data/test/plugin/test_in_http.rb +23 -1
- data/test/plugin/test_in_tail.rb +307 -3
- data/test/plugin/test_out_forward.rb +34 -39
- data/test/plugin/test_out_http.rb +128 -0
- data/test/plugin/test_owned_by.rb +0 -1
- data/test/plugin/test_parser_json.rb +106 -0
- data/test/plugin/test_parser_msgpack.rb +127 -0
- data/test/plugin/test_storage.rb +0 -1
- data/test/plugin_helper/test_child_process.rb +17 -7
- metadata +104 -9
- data/.github/workflows/macos-test.yaml +0 -34
- data/.github/workflows/windows-test.yaml +0 -49
- /data/.github/ISSUE_TEMPLATE/{bug_report.yaml → bug_report.yml} +0 -0
- /data/.github/ISSUE_TEMPLATE/{feature_request.yaml → feature_request.yml} +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: df7f40114152fe9cd139ef2c195e7baf19b501a3e949ba8412de445a3337c26f
|
|
4
|
+
data.tar.gz: e7b728c294b2797223405571ffc66853fb21210fe696b5299179c8a85f1c51a0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ad48b5478ae93b0c41e6db5cec80b1e67ac18c24b44ce43193143150d8fbf765b3b2674ddc6e32dfd649095647bb6113687c436fa463249f0e1ab64c665ab7b3
|
|
7
|
+
data.tar.gz: 4cfc5bb3ecd1b116346d6d899c243142c4c4a8768e980f895a3d5b6ee3a49b5b7fc132710316a657fb6353651b7fe42345371d536ed6123d52bce3a79bd4ff35
|
|
@@ -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"
|
|
@@ -1,27 +1,22 @@
|
|
|
1
|
-
name:
|
|
1
|
+
name: Test
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
push:
|
|
5
|
-
branches: [master
|
|
5
|
+
branches: [master]
|
|
6
6
|
pull_request:
|
|
7
|
-
branches: [master
|
|
7
|
+
branches: [master]
|
|
8
8
|
|
|
9
9
|
jobs:
|
|
10
10
|
test:
|
|
11
11
|
runs-on: ${{ matrix.os }}
|
|
12
|
-
continue-on-error:
|
|
12
|
+
continue-on-error: false
|
|
13
13
|
strategy:
|
|
14
14
|
fail-fast: false
|
|
15
15
|
matrix:
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
experimental: [false]
|
|
19
|
-
include:
|
|
20
|
-
- ruby-version: head
|
|
21
|
-
os: ubuntu-latest
|
|
22
|
-
experimental: true
|
|
16
|
+
os: ['ubuntu-latest', 'macos-latest', 'windows-latest']
|
|
17
|
+
ruby-version: ['3.3', '3.2', '3.1', '3.0', '2.7']
|
|
23
18
|
|
|
24
|
-
name:
|
|
19
|
+
name: Ruby ${{ matrix.ruby-version }} on ${{ matrix.os }}
|
|
25
20
|
steps:
|
|
26
21
|
- uses: actions/checkout@v3
|
|
27
22
|
- name: Set up Ruby
|
|
@@ -29,8 +24,9 @@ jobs:
|
|
|
29
24
|
with:
|
|
30
25
|
ruby-version: ${{ matrix.ruby-version }}
|
|
31
26
|
- name: Install addons
|
|
27
|
+
if: ${{ matrix.os == 'ubuntu-latest' }}
|
|
32
28
|
run: sudo apt-get install libgmp3-dev libcap-ng-dev
|
|
33
29
|
- name: Install dependencies
|
|
34
30
|
run: bundle install
|
|
35
31
|
- name: Run tests
|
|
36
|
-
run: bundle exec rake test
|
|
32
|
+
run: bundle exec rake test TESTOPTS="-v --no-show-detail-immediately"
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,71 @@
|
|
|
1
|
+
# v1.17
|
|
2
|
+
|
|
3
|
+
## Release v1.17.0 - 2024/04/30
|
|
4
|
+
|
|
5
|
+
### Enhancement
|
|
6
|
+
|
|
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
|
|
15
|
+
|
|
16
|
+
### Bug Fix
|
|
17
|
+
|
|
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
|
|
23
|
+
|
|
24
|
+
### Misc
|
|
25
|
+
|
|
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
|
|
42
|
+
|
|
1
43
|
# v1.16
|
|
2
44
|
|
|
45
|
+
## Release v1.16.5 - 2024/03/27
|
|
46
|
+
|
|
47
|
+
### Bug Fix
|
|
48
|
+
|
|
49
|
+
* Buffer: Fix emit error of v1.16.4 sometimes failing to process large data
|
|
50
|
+
exceeding chunk size limit
|
|
51
|
+
https://github.com/fluent/fluentd/pull/4447
|
|
52
|
+
|
|
53
|
+
## Release v1.16.4 - 2024/03/14
|
|
54
|
+
|
|
55
|
+
### Bug Fix
|
|
56
|
+
|
|
57
|
+
* Fix to avoid processing discarded chunks in write_step_by_step.
|
|
58
|
+
It fixes not to raise pile of IOError when many `chunk
|
|
59
|
+
bytes limit exceeds` errors are occurred.
|
|
60
|
+
https://github.com/fluent/fluentd/pull/4342
|
|
61
|
+
* in_tail: Fix tail watchers in `rotate_wait` state not being managed.
|
|
62
|
+
https://github.com/fluent/fluentd/pull/4334
|
|
63
|
+
|
|
64
|
+
### Misc
|
|
65
|
+
|
|
66
|
+
* buffer: Avoid unnecessary log processing. It will improve performance.
|
|
67
|
+
https://github.com/fluent/fluentd/pull/4331
|
|
68
|
+
|
|
3
69
|
## Release v1.16.3 - 2023/11/14
|
|
4
70
|
|
|
5
71
|
### Bug Fix
|
data/README.md
CHANGED
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.
|
|
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/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.
|
|
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"])
|
|
@@ -30,6 +30,11 @@ Gem::Specification.new do |gem|
|
|
|
30
30
|
gem.add_runtime_dependency("strptime", [">= 0.2.4", "< 1.0.0"])
|
|
31
31
|
gem.add_runtime_dependency("webrick", ["~> 1.4"])
|
|
32
32
|
|
|
33
|
+
# gems that aren't default gems as of Ruby 3.4
|
|
34
|
+
gem.add_runtime_dependency("base64", ["~> 0.2"])
|
|
35
|
+
gem.add_runtime_dependency("csv", ["~> 3.2"])
|
|
36
|
+
gem.add_runtime_dependency("drb", ["~> 2.2"])
|
|
37
|
+
|
|
33
38
|
# build gem for a certain platform. see also Rakefile
|
|
34
39
|
fake_platform = ENV['GEM_BUILD_FAKE_PLATFORM'].to_s
|
|
35
40
|
gem.platform = fake_platform unless fake_platform.empty?
|
|
@@ -51,4 +56,7 @@ Gem::Specification.new do |gem|
|
|
|
51
56
|
gem.add_development_dependency("oj", [">= 2.14", "< 4"])
|
|
52
57
|
gem.add_development_dependency("async", "~> 1.23")
|
|
53
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"])
|
|
54
62
|
end
|
|
@@ -130,7 +130,7 @@ module BinlogReaderCommand
|
|
|
130
130
|
private
|
|
131
131
|
|
|
132
132
|
def configure_option_parser
|
|
133
|
-
@options
|
|
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
|
|
|
@@ -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.
|
|
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?
|
|
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
|
data/lib/fluent/config/types.rb
CHANGED
|
@@ -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?
|
|
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
|
data/lib/fluent/configurable.rb
CHANGED
|
@@ -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.
|
|
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.
|
|
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?
|
|
@@ -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
|
|
59
|
+
multi_workers_configured = owner.system_config.workers > 1
|
|
60
60
|
|
|
61
61
|
using_plugin_root_dir = false
|
|
62
62
|
unless @path
|
|
@@ -399,7 +399,7 @@ module Fluent
|
|
|
399
399
|
end
|
|
400
400
|
|
|
401
401
|
if chunk.slice(0, 2) == BUFFER_HEADER
|
|
402
|
-
size = chunk.slice(2, 4).
|
|
402
|
+
size = chunk.slice(2, 4).unpack1('N')
|
|
403
403
|
if size
|
|
404
404
|
return Fluent::MessagePackFactory.msgpack_unpacker(symbolize_keys: true).feed(chunk.slice(6, size)).read rescue nil
|
|
405
405
|
end
|
|
@@ -238,17 +238,16 @@ module Fluent
|
|
|
238
238
|
callback.call(file) if callback
|
|
239
239
|
end
|
|
240
240
|
|
|
241
|
-
URI_PARSER = URI::Parser.new
|
|
242
241
|
ESCAPE_REGEXP = /[^-_.a-zA-Z0-9]/n
|
|
243
242
|
|
|
244
243
|
def encode_key(metadata)
|
|
245
244
|
k = @key ? metadata.variables[@key] : metadata.tag
|
|
246
245
|
k ||= ''
|
|
247
|
-
|
|
246
|
+
URI::DEFAULT_PARSER.escape(k, ESCAPE_REGEXP)
|
|
248
247
|
end
|
|
249
248
|
|
|
250
249
|
def decode_key(key)
|
|
251
|
-
|
|
250
|
+
URI::DEFAULT_PARSER.unescape(key)
|
|
252
251
|
end
|
|
253
252
|
|
|
254
253
|
def create_new_chunk(path, metadata, perm)
|