fluentd 1.11.0-x86-mingw32 → 1.11.5-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of fluentd might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +92 -1
- data/example/copy_roundrobin.conf +3 -3
- data/example/counter.conf +1 -1
- data/example/filter_stdout.conf +2 -2
- data/example/{in_dummy_blocks.conf → in_sample_blocks.conf} +4 -4
- data/example/{in_dummy_with_compression.conf → in_sample_with_compression.conf} +3 -3
- data/example/logevents.conf +5 -5
- data/example/multi_filters.conf +1 -1
- data/example/out_exec_filter.conf +2 -2
- data/example/out_forward.conf +1 -1
- data/example/out_forward_buf_file.conf +1 -1
- data/example/out_forward_client.conf +5 -5
- data/example/out_forward_heartbeat_none.conf +1 -1
- data/example/out_forward_sd.conf +1 -1
- data/example/out_forward_shared_key.conf +2 -2
- data/example/out_forward_tls.conf +1 -1
- data/example/out_forward_users.conf +3 -3
- data/example/out_null.conf +4 -4
- data/example/secondary_file.conf +1 -1
- data/fluentd.gemspec +6 -6
- data/lib/fluent/command/fluentd.rb +11 -0
- data/lib/fluent/log.rb +33 -3
- data/lib/fluent/match.rb +9 -0
- data/lib/fluent/plugin/buffer.rb +49 -40
- data/lib/fluent/plugin/buffer/chunk.rb +2 -1
- data/lib/fluent/plugin/formatter.rb +24 -0
- data/lib/fluent/plugin/formatter_hash.rb +3 -1
- data/lib/fluent/plugin/formatter_json.rb +3 -1
- data/lib/fluent/plugin/formatter_ltsv.rb +3 -1
- data/lib/fluent/plugin/formatter_out_file.rb +3 -1
- data/lib/fluent/plugin/formatter_single_value.rb +3 -1
- data/lib/fluent/plugin/formatter_tsv.rb +3 -1
- data/lib/fluent/plugin/in_dummy.rb +2 -123
- data/lib/fluent/plugin/in_exec.rb +4 -2
- data/lib/fluent/plugin/in_http.rb +148 -77
- data/lib/fluent/plugin/in_sample.rb +141 -0
- data/lib/fluent/plugin/in_tail.rb +2 -2
- data/lib/fluent/plugin/out_http.rb +20 -2
- data/lib/fluent/plugin/output.rb +8 -5
- data/lib/fluent/plugin/parser_json.rb +5 -2
- data/lib/fluent/plugin_helper/cert_option.rb +5 -8
- data/lib/fluent/plugin_helper/child_process.rb +3 -2
- data/lib/fluent/plugin_helper/inject.rb +2 -1
- data/lib/fluent/plugin_helper/socket.rb +1 -1
- data/lib/fluent/supervisor.rb +11 -6
- data/lib/fluent/system_config.rb +2 -1
- data/lib/fluent/version.rb +1 -1
- data/test/command/test_binlog_reader.rb +22 -6
- data/test/plugin/test_buffer.rb +4 -0
- data/test/plugin/test_filter_stdout.rb +6 -1
- data/test/plugin/test_formatter_hash.rb +6 -3
- data/test/plugin/test_formatter_json.rb +14 -4
- data/test/plugin/test_formatter_ltsv.rb +13 -5
- data/test/plugin/test_formatter_out_file.rb +35 -14
- data/test/plugin/test_formatter_single_value.rb +12 -6
- data/test/plugin/test_formatter_tsv.rb +12 -4
- data/test/plugin/test_in_exec.rb +18 -0
- data/test/plugin/test_in_http.rb +57 -0
- data/test/plugin/{test_in_dummy.rb → test_in_sample.rb} +25 -25
- data/test/plugin/test_in_tail.rb +3 -0
- data/test/plugin/test_out_file.rb +23 -18
- data/test/plugin/test_output.rb +12 -0
- data/test/plugin_helper/data/cert/empty.pem +0 -0
- data/test/plugin_helper/test_cert_option.rb +7 -0
- data/test/plugin_helper/test_child_process.rb +15 -0
- data/test/plugin_helper/test_compat_parameters.rb +7 -2
- data/test/plugin_helper/test_http_server_helper.rb +5 -0
- data/test/plugin_helper/test_inject.rb +13 -0
- data/test/plugin_helper/test_server.rb +34 -0
- data/test/plugin_helper/test_socket.rb +8 -0
- data/test/test_formatter.rb +34 -10
- data/test/test_log.rb +44 -0
- data/test/test_match.rb +11 -0
- data/test/test_output.rb +6 -1
- data/test/test_static_config_analysis.rb +2 -2
- data/test/test_supervisor.rb +26 -0
- metadata +21 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 92c950a0027fc400ff420544b3ef5d7752f7e6e1bfd2ec550006c06cd144a710
|
4
|
+
data.tar.gz: b8bf17728ae2f9e07c362bab49bc98c5d0ee8f69a739da037671694187753e03
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b033abbba4279b9a800850eb42269e89a0e70a0e170e2dac47570e8026939236354d849d0e866f400e3ecd412f445de898bb63f27958e6beb9ea04e56e3b7527
|
7
|
+
data.tar.gz: ef746c3a7b0433dc5e06278c6bc430a62a14ee4ccc85450545abf6647b078e32c2221b16d0b9241fcf2ab6833000ecbd00a7cdfa2e567ad9bf8f507e1897373f
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,96 @@
|
|
1
1
|
# v1.11
|
2
2
|
|
3
|
+
## Release v1.11.5 - 2020/11/06
|
4
|
+
|
5
|
+
### Enhancement
|
6
|
+
|
7
|
+
* formatter: Provide `newline` parameter to support `CRLF`
|
8
|
+
https://github.com/fluent/fluentd/pull/3152
|
9
|
+
* out_http: adding support for intermediate certificates
|
10
|
+
https://github.com/fluent/fluentd/pull/3146
|
11
|
+
|
12
|
+
### Bug fix
|
13
|
+
|
14
|
+
* Fix a bug that windows service isn't stopped gracefuly
|
15
|
+
https://github.com/fluent/fluentd/pull/3156
|
16
|
+
|
17
|
+
## Release v1.11.4 - 2020/10/13
|
18
|
+
|
19
|
+
### Enhancement
|
20
|
+
|
21
|
+
* inject: Support `unixtime_millis` in `time_type` parameter
|
22
|
+
https://github.com/fluent/fluentd/pull/3145
|
23
|
+
|
24
|
+
### Bug fix
|
25
|
+
|
26
|
+
* out_http: Fix broken data with `json_array true`
|
27
|
+
https://github.com/fluent/fluentd/pull/3144
|
28
|
+
* output: Fix wrong logging issue for `${chunk_id}`
|
29
|
+
https://github.com/fluent/fluentd/pull/3134
|
30
|
+
|
31
|
+
## Release v1.11.3 - 2020/09/30
|
32
|
+
|
33
|
+
### Enhancement
|
34
|
+
|
35
|
+
* in_exec: Add `connect_mode` parameter to read stderr
|
36
|
+
https://github.com/fluent/fluentd/pull/3108
|
37
|
+
* parser_json: Improve the performance
|
38
|
+
https://github.com/fluent/fluentd/pull/3109
|
39
|
+
* log: Add `ignore_same_log_interval` parameter
|
40
|
+
https://github.com/fluent/fluentd/pull/3119
|
41
|
+
* Upgrade win32 gems
|
42
|
+
https://github.com/fluent/fluentd/pull/3100
|
43
|
+
* Refactoring code
|
44
|
+
https://github.com/fluent/fluentd/pull/3094
|
45
|
+
https://github.com/fluent/fluentd/pull/3118
|
46
|
+
|
47
|
+
### Bug fix
|
48
|
+
|
49
|
+
* buffer: Fix calculation of timekey stats
|
50
|
+
https://github.com/fluent/fluentd/pull/3018
|
51
|
+
* buffer: fix binmode usage for prevent gc
|
52
|
+
https://github.com/fluent/fluentd/pull/3138
|
53
|
+
|
54
|
+
## Release v1.11.2 - 2020/08/04
|
55
|
+
|
56
|
+
### Enhancement
|
57
|
+
|
58
|
+
* `in_dummy` renamed to `in_sample`
|
59
|
+
https://github.com/fluent/fluentd/pull/3065
|
60
|
+
* Allow regular expression in filter/match directive
|
61
|
+
https://github.com/fluent/fluentd/pull/3071
|
62
|
+
* Refactoring code
|
63
|
+
https://github.com/fluent/fluentd/pull/3051
|
64
|
+
|
65
|
+
### Bug fix
|
66
|
+
|
67
|
+
* buffer: Fix log message for `chunk_limit_records` case
|
68
|
+
https://github.com/fluent/fluentd/pull/3079
|
69
|
+
* buffer: Fix timekey optimization for non-windows platform
|
70
|
+
https://github.com/fluent/fluentd/pull/3092
|
71
|
+
* cert: Raise an error for broken certificate file
|
72
|
+
https://github.com/fluent/fluentd/pull/3086
|
73
|
+
* cert: Set TLS ciphers list correcty on older OpenSSL
|
74
|
+
https://github.com/fluent/fluentd/pull/3093
|
75
|
+
|
76
|
+
## Release v1.11.1 - 2020/06/22
|
77
|
+
|
78
|
+
### Enhancement
|
79
|
+
|
80
|
+
* in_http: Add `dump_error_log` parameter
|
81
|
+
https://github.com/fluent/fluentd/pull/3035
|
82
|
+
* in_http: Improve time field handling
|
83
|
+
https://github.com/fluent/fluentd/pull/3046
|
84
|
+
* Refactoring code
|
85
|
+
https://github.com/fluent/fluentd/pull/3047
|
86
|
+
|
87
|
+
### Bug fix
|
88
|
+
|
89
|
+
* in_tail: Use actual path instead of based pattern for ignore list
|
90
|
+
https://github.com/fluent/fluentd/pull/3042
|
91
|
+
* child_process helper: Fix child process failure due to SIGPIPE if the command uses stdout
|
92
|
+
https://github.com/fluent/fluentd/pull/3044
|
93
|
+
|
3
94
|
## Release v1.11.0 - 2020/06/04
|
4
95
|
|
5
96
|
### New feature
|
@@ -10,7 +101,7 @@
|
|
10
101
|
### Enhancement
|
11
102
|
|
12
103
|
* parser_syslog: Support any `time_format` for RFC3164 string parser
|
13
|
-
https://github.com/fluent/fluentd/pull/
|
104
|
+
https://github.com/fluent/fluentd/pull/3014
|
14
105
|
* parser_syslog: Add new parser for RFC5424
|
15
106
|
https://github.com/fluent/fluentd/pull/3015
|
16
107
|
* Refactoring code
|
@@ -1,12 +1,12 @@
|
|
1
1
|
<source>
|
2
|
-
@type
|
2
|
+
@type sample
|
3
3
|
@label @test
|
4
4
|
tag test.copy
|
5
5
|
auto_increment_key id
|
6
6
|
</source>
|
7
7
|
|
8
8
|
<source>
|
9
|
-
@type
|
9
|
+
@type sample
|
10
10
|
@label @test
|
11
11
|
tag test.rr
|
12
12
|
auto_increment_key id
|
@@ -36,4 +36,4 @@
|
|
36
36
|
output_type ltsv
|
37
37
|
</store>
|
38
38
|
</match>
|
39
|
-
</label>
|
39
|
+
</label>
|
data/example/counter.conf
CHANGED
data/example/filter_stdout.conf
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
<source>
|
2
|
-
@type
|
3
|
-
tag
|
2
|
+
@type sample
|
3
|
+
tag sample
|
4
4
|
rate 100
|
5
|
-
|
5
|
+
sample {"message":"yaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaay"}
|
6
6
|
</source>
|
7
7
|
|
8
|
-
<match
|
8
|
+
<match sample>
|
9
9
|
@type null
|
10
10
|
never_flush true
|
11
11
|
<buffer>
|
@@ -1,16 +1,16 @@
|
|
1
1
|
<source>
|
2
|
-
@type
|
2
|
+
@type sample
|
3
3
|
@label @main
|
4
4
|
tag "test.data"
|
5
5
|
size 2
|
6
6
|
rate 10
|
7
|
-
|
7
|
+
sample {"message":"yaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaay"}
|
8
8
|
auto_increment_key number
|
9
9
|
</source>
|
10
10
|
|
11
11
|
<label @main>
|
12
12
|
<match test.data>
|
13
|
-
@type
|
13
|
+
@type stdout
|
14
14
|
<buffer>
|
15
15
|
@type file
|
16
16
|
path "#{Dir.pwd}/compressed_buffers"
|
data/example/logevents.conf
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
<source>
|
2
|
-
@type
|
3
|
-
@label @
|
2
|
+
@type sample
|
3
|
+
@label @samplelog
|
4
4
|
tag "data"
|
5
|
-
|
5
|
+
sample {"message":"yay"}
|
6
6
|
</source>
|
7
|
-
<label @
|
7
|
+
<label @samplelog>
|
8
8
|
<match **>
|
9
9
|
@type stdout
|
10
10
|
</match>
|
@@ -22,4 +22,4 @@
|
|
22
22
|
# hostname_key "host"
|
23
23
|
# </inject>
|
24
24
|
# </match>
|
25
|
-
</label>
|
25
|
+
</label>
|
data/example/multi_filters.conf
CHANGED
data/example/out_forward.conf
CHANGED
@@ -1,21 +1,21 @@
|
|
1
1
|
<source>
|
2
|
-
@type
|
2
|
+
@type sample
|
3
3
|
tag test
|
4
4
|
</source>
|
5
5
|
<source>
|
6
|
-
@type
|
6
|
+
@type sample
|
7
7
|
tag test2
|
8
8
|
</source>
|
9
9
|
<source>
|
10
|
-
@type
|
10
|
+
@type sample
|
11
11
|
tag test3
|
12
12
|
</source>
|
13
13
|
<source>
|
14
|
-
@type
|
14
|
+
@type sample
|
15
15
|
tag test4
|
16
16
|
</source>
|
17
17
|
<source>
|
18
|
-
@type
|
18
|
+
@type sample
|
19
19
|
tag test5
|
20
20
|
</source>
|
21
21
|
|
data/example/out_forward_sd.conf
CHANGED
data/example/out_null.conf
CHANGED
@@ -2,17 +2,17 @@
|
|
2
2
|
# bundle exec bin/fluentd -c example/out_buffered_null.conf
|
3
3
|
# (+ --emit-error-log-interval 10)
|
4
4
|
<source>
|
5
|
-
@type
|
6
|
-
tag
|
5
|
+
@type sample
|
6
|
+
tag sample
|
7
7
|
rate 500000000
|
8
|
-
|
8
|
+
sample [
|
9
9
|
{"message": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},
|
10
10
|
{"message": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"},
|
11
11
|
{"message": "ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"}
|
12
12
|
]
|
13
13
|
</source>
|
14
14
|
|
15
|
-
<match
|
15
|
+
<match sample.**>
|
16
16
|
@type null
|
17
17
|
<buffer>
|
18
18
|
flush_interval 60s
|
data/example/secondary_file.conf
CHANGED
data/fluentd.gemspec
CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |gem|
|
|
21
21
|
gem.add_runtime_dependency("msgpack", [">= 1.3.1", "< 2.0.0"])
|
22
22
|
gem.add_runtime_dependency("yajl-ruby", ["~> 1.0"])
|
23
23
|
gem.add_runtime_dependency("cool.io", [">= 1.4.5", "< 2.0.0"])
|
24
|
-
gem.add_runtime_dependency("serverengine", [">= 2.
|
24
|
+
gem.add_runtime_dependency("serverengine", [">= 2.2.2", "< 3.0.0"])
|
25
25
|
gem.add_runtime_dependency("http_parser.rb", [">= 0.5.1", "< 0.7.0"])
|
26
26
|
gem.add_runtime_dependency("sigdump", ["~> 0.2.2"])
|
27
27
|
gem.add_runtime_dependency("tzinfo", [">= 1.0", "< 3.0"])
|
@@ -32,11 +32,11 @@ Gem::Specification.new do |gem|
|
|
32
32
|
fake_platform = ENV['GEM_BUILD_FAKE_PLATFORM'].to_s
|
33
33
|
gem.platform = fake_platform unless fake_platform.empty?
|
34
34
|
if /mswin|mingw/ =~ fake_platform || (/mswin|mingw/ =~ RUBY_PLATFORM && fake_platform.empty?)
|
35
|
-
gem.add_runtime_dependency("win32-service", ["~>
|
36
|
-
gem.add_runtime_dependency("win32-ipc", ["~> 0.
|
37
|
-
gem.add_runtime_dependency("win32-event", ["~> 0.6.
|
38
|
-
gem.add_runtime_dependency("windows-pr", ["~> 1.2.
|
39
|
-
gem.add_runtime_dependency("certstore_c", ["~> 0.1.
|
35
|
+
gem.add_runtime_dependency("win32-service", ["~> 2.1.5"])
|
36
|
+
gem.add_runtime_dependency("win32-ipc", ["~> 0.7.0"])
|
37
|
+
gem.add_runtime_dependency("win32-event", ["~> 0.6.3"])
|
38
|
+
gem.add_runtime_dependency("windows-pr", ["~> 1.2.6"])
|
39
|
+
gem.add_runtime_dependency("certstore_c", ["~> 0.1.7"])
|
40
40
|
end
|
41
41
|
|
42
42
|
gem.add_development_dependency("rake", ["~> 13.0"])
|
@@ -185,6 +185,10 @@ if Fluent.windows?
|
|
185
185
|
opts[:regwinsvcautostart] = s
|
186
186
|
}
|
187
187
|
|
188
|
+
op.on('--[no-]reg-winsvc-delay-start', "Automatically start the Windows Service at boot with delay. (only effective with '--reg-winsvc i' and '--reg-winsvc-auto-start') (Windows only)") {|s|
|
189
|
+
opts[:regwinsvcdelaystart] = s
|
190
|
+
}
|
191
|
+
|
188
192
|
op.on('--reg-winsvc-fluentdopt OPTION', "specify fluentd option parameters for Windows Service. (Windows only)") {|s|
|
189
193
|
opts[:fluentdopt] = s
|
190
194
|
}
|
@@ -285,6 +289,13 @@ if winsvcinstmode = opts[:regwinsvc]
|
|
285
289
|
dependencies: [""],
|
286
290
|
display_name: opts[:winsvc_display_name]
|
287
291
|
)
|
292
|
+
|
293
|
+
if opts[:regwinsvcdelaystart]
|
294
|
+
Service.configure(
|
295
|
+
service_name: opts[:winsvc_name],
|
296
|
+
delayed_start: true
|
297
|
+
)
|
298
|
+
end
|
288
299
|
when 'u'
|
289
300
|
if Service.status(opts[:winsvc_name]).current_state != 'stopped'
|
290
301
|
begin
|
data/lib/fluent/log.rb
CHANGED
@@ -113,6 +113,7 @@ module Fluent
|
|
113
113
|
|
114
114
|
@suppress_repeated_stacktrace = opts[:suppress_repeated_stacktrace]
|
115
115
|
@ignore_repeated_log_interval = opts[:ignore_repeated_log_interval]
|
116
|
+
@ignore_same_log_interval = opts[:ignore_same_log_interval]
|
116
117
|
|
117
118
|
@process_type = opts[:process_type] # :supervisor, :worker0, :workers Or :standalone
|
118
119
|
@process_type ||= :standalone # to keep behavior of existing code
|
@@ -141,7 +142,8 @@ module Fluent
|
|
141
142
|
dl_opts[:log_level] = @level - 1
|
142
143
|
logger = ServerEngine::DaemonLogger.new(@out, dl_opts)
|
143
144
|
clone = self.class.new(logger, suppress_repeated_stacktrace: @suppress_repeated_stacktrace, process_type: @process_type,
|
144
|
-
worker_id: @worker_id, ignore_repeated_log_interval: @ignore_repeated_log_interval
|
145
|
+
worker_id: @worker_id, ignore_repeated_log_interval: @ignore_repeated_log_interval,
|
146
|
+
ignore_same_log_interval: @ignore_same_log_interval)
|
145
147
|
clone.format = @format
|
146
148
|
clone.time_format = @time_format
|
147
149
|
clone.log_event_enabled = @log_event_enabled
|
@@ -151,7 +153,7 @@ module Fluent
|
|
151
153
|
|
152
154
|
attr_reader :format
|
153
155
|
attr_reader :time_format
|
154
|
-
attr_accessor :log_event_enabled, :ignore_repeated_log_interval
|
156
|
+
attr_accessor :log_event_enabled, :ignore_repeated_log_interval, :ignore_same_log_interval
|
155
157
|
attr_accessor :out
|
156
158
|
attr_accessor :level
|
157
159
|
attr_accessor :optional_header, :optional_attrs
|
@@ -428,6 +430,27 @@ module Fluent
|
|
428
430
|
(cached_log.msg == message) && (time - cached_log.time <= @ignore_repeated_log_interval)
|
429
431
|
end
|
430
432
|
|
433
|
+
def ignore_same_log?(time, message)
|
434
|
+
cached_log = Thread.current[:last_same_log]
|
435
|
+
if cached_log.nil?
|
436
|
+
Thread.current[:last_same_log] = {message => time}
|
437
|
+
return false
|
438
|
+
end
|
439
|
+
|
440
|
+
prev_time = cached_log[message]
|
441
|
+
if prev_time
|
442
|
+
if (time - prev_time) <= @ignore_same_log_interval
|
443
|
+
true
|
444
|
+
else
|
445
|
+
cached_log[message] = time
|
446
|
+
false
|
447
|
+
end
|
448
|
+
else
|
449
|
+
cached_log[message] = time
|
450
|
+
false
|
451
|
+
end
|
452
|
+
end
|
453
|
+
|
431
454
|
def suppress_stacktrace?(backtrace)
|
432
455
|
cached_log = Thread.current[:last_repeated_stacktrace]
|
433
456
|
return false if cached_log.nil?
|
@@ -507,7 +530,11 @@ module Fluent
|
|
507
530
|
end
|
508
531
|
}
|
509
532
|
|
510
|
-
if @
|
533
|
+
if @ignore_same_log_interval
|
534
|
+
if ignore_same_log?(time, message)
|
535
|
+
return nil, nil
|
536
|
+
end
|
537
|
+
elsif @ignore_repeated_log_interval
|
511
538
|
if ignore_repeated_log?(:last_repeated_log, time, message)
|
512
539
|
return nil, nil
|
513
540
|
else
|
@@ -569,6 +596,9 @@ module Fluent
|
|
569
596
|
if logger.instance_variable_defined?(:@ignore_repeated_log_interval)
|
570
597
|
@ignore_repeated_log_interval = logger.instance_variable_get(:@ignore_repeated_log_interval)
|
571
598
|
end
|
599
|
+
if logger.instance_variable_defined?(:@ignore_same_log_interval)
|
600
|
+
@ignore_same_log_interval = logger.instance_variable_get(:@ignore_same_log_interval)
|
601
|
+
end
|
572
602
|
|
573
603
|
self.format = @logger.format
|
574
604
|
self.time_format = @logger.time_format
|