fluentd 0.14.11 → 0.14.12

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.

Files changed (119) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -5
  3. data/ChangeLog +54 -2
  4. data/example/in_dummy_blocks.conf +17 -0
  5. data/example/in_forward_tls.conf +14 -0
  6. data/example/in_forward_workers.conf +21 -0
  7. data/example/logevents.conf +25 -0
  8. data/example/out_forward_heartbeat_none.conf +16 -0
  9. data/example/out_forward_tls.conf +18 -0
  10. data/example/suppress_config_dump.conf +7 -0
  11. data/lib/fluent/agent.rb +3 -32
  12. data/lib/fluent/clock.rb +62 -0
  13. data/lib/fluent/command/fluentd.rb +12 -0
  14. data/lib/fluent/compat/input.rb +10 -1
  15. data/lib/fluent/compat/output.rb +40 -1
  16. data/lib/fluent/config/configure_proxy.rb +30 -7
  17. data/lib/fluent/config/section.rb +4 -0
  18. data/lib/fluent/config/types.rb +2 -2
  19. data/lib/fluent/configurable.rb +31 -5
  20. data/lib/fluent/engine.rb +61 -12
  21. data/lib/fluent/event_router.rb +6 -0
  22. data/lib/fluent/load.rb +0 -1
  23. data/lib/fluent/log.rb +118 -42
  24. data/lib/fluent/match.rb +37 -0
  25. data/lib/fluent/plugin.rb +25 -3
  26. data/lib/fluent/plugin/base.rb +4 -0
  27. data/lib/fluent/plugin/buf_file.rb +38 -14
  28. data/lib/fluent/plugin/buffer.rb +20 -20
  29. data/lib/fluent/plugin/buffer/file_chunk.rb +2 -2
  30. data/lib/fluent/plugin/compressable.rb +1 -0
  31. data/lib/fluent/plugin/filter_record_transformer.rb +3 -6
  32. data/lib/fluent/plugin/formatter_csv.rb +4 -1
  33. data/lib/fluent/plugin/formatter_hash.rb +5 -1
  34. data/lib/fluent/plugin/formatter_json.rb +10 -0
  35. data/lib/fluent/plugin/formatter_ltsv.rb +2 -1
  36. data/lib/fluent/plugin/in_dummy.rb +4 -0
  37. data/lib/fluent/plugin/in_exec.rb +4 -0
  38. data/lib/fluent/plugin/in_forward.rb +11 -3
  39. data/lib/fluent/plugin/in_gc_stat.rb +4 -0
  40. data/lib/fluent/plugin/in_http.rb +4 -0
  41. data/lib/fluent/plugin/in_monitor_agent.rb +29 -2
  42. data/lib/fluent/plugin/in_object_space.rb +4 -1
  43. data/lib/fluent/plugin/in_syslog.rb +4 -0
  44. data/lib/fluent/plugin/in_tail.rb +193 -116
  45. data/lib/fluent/plugin/in_tcp.rb +5 -1
  46. data/lib/fluent/plugin/in_udp.rb +4 -0
  47. data/lib/fluent/plugin/input.rb +4 -0
  48. data/lib/fluent/plugin/out_copy.rb +4 -0
  49. data/lib/fluent/plugin/out_exec.rb +4 -0
  50. data/lib/fluent/plugin/out_exec_filter.rb +4 -0
  51. data/lib/fluent/plugin/out_file.rb +70 -30
  52. data/lib/fluent/plugin/out_forward.rb +132 -28
  53. data/lib/fluent/plugin/out_null.rb +10 -0
  54. data/lib/fluent/plugin/out_relabel.rb +4 -0
  55. data/lib/fluent/plugin/out_roundrobin.rb +4 -0
  56. data/lib/fluent/plugin/out_secondary_file.rb +5 -0
  57. data/lib/fluent/plugin/out_stdout.rb +5 -0
  58. data/lib/fluent/plugin/output.rb +18 -9
  59. data/lib/fluent/plugin/storage_local.rb +25 -2
  60. data/lib/fluent/plugin_helper/cert_option.rb +159 -0
  61. data/lib/fluent/plugin_helper/child_process.rb +6 -6
  62. data/lib/fluent/plugin_helper/compat_parameters.rb +1 -1
  63. data/lib/fluent/plugin_helper/event_loop.rb +29 -4
  64. data/lib/fluent/plugin_helper/inject.rb +14 -1
  65. data/lib/fluent/plugin_helper/server.rb +275 -31
  66. data/lib/fluent/plugin_helper/socket.rb +144 -4
  67. data/lib/fluent/plugin_helper/socket_option.rb +2 -17
  68. data/lib/fluent/plugin_helper/storage.rb +7 -1
  69. data/lib/fluent/plugin_helper/thread.rb +16 -4
  70. data/lib/fluent/registry.rb +26 -9
  71. data/lib/fluent/root_agent.rb +7 -3
  72. data/lib/fluent/supervisor.rb +37 -15
  73. data/lib/fluent/system_config.rb +37 -10
  74. data/lib/fluent/test.rb +2 -0
  75. data/lib/fluent/test/driver/base.rb +24 -26
  76. data/lib/fluent/test/helpers.rb +21 -0
  77. data/lib/fluent/version.rb +1 -1
  78. data/test/command/test_fluentd.rb +274 -4
  79. data/test/config/test_configurable.rb +154 -0
  80. data/test/config/test_configure_proxy.rb +180 -1
  81. data/test/config/test_system_config.rb +10 -0
  82. data/test/config/test_types.rb +1 -0
  83. data/test/plugin/test_base.rb +4 -0
  84. data/test/plugin/test_buf_file.rb +241 -9
  85. data/test/plugin/test_buffer.rb +11 -11
  86. data/test/plugin/test_buffer_file_chunk.rb +6 -6
  87. data/test/plugin/test_compressable.rb +3 -0
  88. data/test/plugin/test_filter.rb +4 -0
  89. data/test/plugin/test_filter_record_transformer.rb +20 -0
  90. data/test/plugin/test_formatter_csv.rb +9 -0
  91. data/test/plugin/test_formatter_hash.rb +35 -0
  92. data/test/plugin/test_formatter_json.rb +8 -0
  93. data/test/plugin/test_formatter_ltsv.rb +7 -0
  94. data/test/plugin/test_in_dummy.rb +7 -3
  95. data/test/plugin/test_in_monitor_agent.rb +43 -5
  96. data/test/plugin/test_in_tail.rb +97 -4
  97. data/test/plugin/test_input.rb +4 -0
  98. data/test/plugin/test_out_file.rb +46 -7
  99. data/test/plugin/test_out_forward.rb +59 -7
  100. data/test/plugin/test_output.rb +10 -4
  101. data/test/plugin/test_output_as_buffered.rb +37 -25
  102. data/test/plugin/test_output_as_buffered_compress.rb +1 -1
  103. data/test/plugin/test_output_as_buffered_retries.rb +6 -6
  104. data/test/plugin/test_output_as_buffered_secondary.rb +91 -31
  105. data/test/plugin/test_storage_local.rb +40 -1
  106. data/test/plugin_helper/test_child_process.rb +29 -28
  107. data/test/plugin_helper/test_compat_parameters.rb +1 -1
  108. data/test/plugin_helper/test_inject.rb +27 -9
  109. data/test/plugin_helper/test_server.rb +822 -50
  110. data/test/plugin_helper/test_storage.rb +11 -0
  111. data/test/plugin_helper/test_timer.rb +1 -0
  112. data/test/test_clock.rb +164 -0
  113. data/test/test_log.rb +146 -15
  114. data/test/test_plugin.rb +251 -0
  115. data/test/test_supervisor.rb +65 -57
  116. data/test/test_test_drivers.rb +2 -2
  117. metadata +18 -7
  118. data/lib/fluent/process.rb +0 -504
  119. data/test/test_process.rb +0 -48
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ae16df5a5cf19f2500a3c0765117db16915f021f
4
- data.tar.gz: b51238e7893315448228735e961520cab6c7fe31
3
+ metadata.gz: 4c60b140cfb115311fce72ec8be60de12fac24d5
4
+ data.tar.gz: d7d3eb5f2f0edcdbf3af33dc738f504bb7e9c05b
5
5
  SHA512:
6
- metadata.gz: 11696eacd069c0ff447da914bc3e8ff824ee6eaae57c2d2d2a3c5080a6dd1252d615affe1053144b6884b960c47bc3bade7798ae58fb8032b94399bad5dfa301
7
- data.tar.gz: 92d69b88880c811d42932cd7bf356e12eadbc75550088ffd6f7233537d7fa053f34258bc7d8ebd861e79d23df3a260a5fa0ea489b94b4742b8aec0c906dca631
6
+ metadata.gz: 4fc6d3c53b3890e58f8193f2e92098ddd2a27e91720f28df6cca793011b792bc91c078b295afa2f73ad36572d7aa6255a2b811002b7070686f32f2837e8445a6
7
+ data.tar.gz: 373cef8be79781fc5189bf3497e794ea46d4d8218628816539935cb32f4ea44ffa4a3c70cda9533254dff5e0171900cb7d9ebb444e6bdb3fb2d0a8ba42d6a729
@@ -35,11 +35,6 @@ matrix:
35
35
  allow_failures:
36
36
  - rvm: ruby-head
37
37
 
38
- # no valid version/env for ruby 2.3 right now
39
- # - rvm: 2.3.0
40
- # os: osx
41
- # osx_image: ....
42
-
43
38
  branches:
44
39
  only:
45
40
  - master
@@ -48,6 +43,7 @@ branches:
48
43
  - v0.14
49
44
 
50
45
  sudo: false
46
+ dist: trusty # for TLSv1.2 support
51
47
 
52
48
  addons:
53
49
  apt:
data/ChangeLog CHANGED
@@ -1,5 +1,57 @@
1
1
  # v0.14
2
2
 
3
+ ## Release v0.14.12 - 2017/01/30
4
+
5
+ ### New features / Enhancements
6
+ * Support multi process workers by `workers` option
7
+ https://github.com/fluent/fluentd/pull/1386
8
+ * Support TLS transport security layer by server plugin helper, and forward input/output plugins
9
+ https://github.com/fluent/fluentd/pull/1423
10
+ * Update internal log event handling to route log events to `@FLUENT_LOG` label if configured, suppress log events in startup/shutdown in default
11
+ https://github.com/fluent/fluentd/pull/1405
12
+ * Rename buffer plugin chunk limit parameters for consistency
13
+ https://github.com/fluent/fluentd/pull/1412
14
+ * Encode string values from configuration files in UTF8
15
+ https://github.com/fluent/fluentd/pull/1411
16
+ * Reorder plugin load paths to load rubygem plugins earlier than built-in plugins to overwrite them
17
+ https://github.com/fluent/fluentd/pull/1410
18
+ * Clock API to control internal thread control
19
+ https://github.com/fluent/fluentd/pull/1425
20
+ * Validate `config_param` options to restrict unexpected specifications
21
+ https://github.com/fluent/fluentd/pull/1437
22
+ * formatter: Add `add_newline` option to get formatted lines without newlines
23
+ https://github.com/fluent/fluentd/pull/1420
24
+ * in_forward: Add `ignore_network_errors_at_startup` option for automated cluster deployment
25
+ https://github.com/fluent/fluentd/pull/1399
26
+ * in_forward: Close listening socket in #stop, not to accept new connection request in early stage of shutdown
27
+ https://github.com/fluent/fluentd/pull/1401
28
+ * out_forward: Ensure to pack values in `str` type of msgpack
29
+ https://github.com/fluent/fluentd/pull/1413
30
+ * in_tail: Add `emit_unmatched_lines` to capture lines which unmatch configured regular expressions
31
+ https://github.com/fluent/fluentd/pull/1421
32
+ * in_tail: Add `open_on_every_update` to read lines from files opened in exclusive mode on Windows platform
33
+ https://github.com/fluent/fluentd/pull/1409
34
+ * in_monitor_agent: Add `with_ivars` query parameter to get instance variables only for specified instance variables
35
+ https://github.com/fluent/fluentd/pull/1393
36
+ * storage_local: Generate file store path using `usage`, with `root_dir` configuration
37
+ https://github.com/fluent/fluentd/pull/1438
38
+ * Improve test stability
39
+ https://github.com/fluent/fluentd/pull/1426
40
+
41
+ ### Bug fixes
42
+ * Fix bug to ignore command line options: `--rpc-endpoint`, `--suppress-config-dump`, etc
43
+ https://github.com/fluent/fluentd/pull/1398
44
+ * Fix bug to block infinitely in shutdown when buffer is full and `overflow_action` is `block`
45
+ https://github.com/fluent/fluentd/pull/1396
46
+ * buf_file: Fix bug not to use `root_dir` even if configured correctly
47
+ https://github.com/fluent/fluentd/pull/1417
48
+ * filter_record_transformer: Fix to use BasicObject for clean room
49
+ https://github.com/fluent/fluentd/pull/1415
50
+ * filter_record_transformer: Fix bug that `remove_keys` doesn't work with `renew_time_key`
51
+ https://github.com/fluent/fluentd/pull/1433
52
+ * in_monitor_agent: Fix bug to crash with NoMethodError for some output plugins
53
+ https://github.com/fluent/fluentd/pull/1365
54
+
3
55
  ## Release v0.14.11 - 2016/12/26
4
56
 
5
57
  ### New features / Enhancements
@@ -21,9 +73,9 @@
21
73
 
22
74
  ### Bug fixes
23
75
  * Fix to set process name of supervisor process
24
- https://github.com/fluent/fluentd/pull/1380
76
+ https://github.com/fluent/fluentd/pull/1380
25
77
  * in_forward: Fix a bug not to handle "require_ack_response" correctly
26
- https://github.com/fluent/fluentd/pull/1389
78
+ https://github.com/fluent/fluentd/pull/1389
27
79
 
28
80
 
29
81
  ## Release v0.14.10 - 2016/12/14
@@ -0,0 +1,17 @@
1
+ <source>
2
+ @type dummy
3
+ tag dummy
4
+ rate 100
5
+ dummy {"message":"yaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaay"}
6
+ </source>
7
+
8
+ <match dummy>
9
+ @type null
10
+ never_flush true
11
+ <buffer>
12
+ @type memory
13
+ overflow_action block
14
+ chunk_limit_size 1k
15
+ total_limit_size 2k
16
+ </buffer>
17
+ </match>
@@ -0,0 +1,14 @@
1
+ <source>
2
+ @type forward
3
+ port 24224
4
+ <transport tls>
5
+ insecure true
6
+ </transport>
7
+ </source>
8
+
9
+ <match test>
10
+ @type stdout
11
+ # <buffer>
12
+ # flush_interval 10s
13
+ # </buffer>
14
+ </match>
@@ -0,0 +1,21 @@
1
+ <system>
2
+ workers 3
3
+ root_dir "#{File.join(Dir.pwd, 'test', 'tmp', 'root')}"
4
+ </system>
5
+
6
+ <source>
7
+ @type forward
8
+ @id forward_in_1
9
+ </source>
10
+
11
+ <match test>
12
+ @type stdout
13
+ @id stdout_out_1
14
+ <inject>
15
+ worker_id_key worker_id
16
+ </inject>
17
+ <buffer>
18
+ @type file
19
+ flush_interval 1s
20
+ </buffer>
21
+ </match>
@@ -0,0 +1,25 @@
1
+ <source>
2
+ @type dummy
3
+ @label @dummylog
4
+ tag "data"
5
+ dummy {"message":"yay"}
6
+ </source>
7
+ <label @dummylog>
8
+ <match **>
9
+ @type stdout
10
+ </match>
11
+ </label>
12
+ <label @FLUENT_LOG>
13
+ <match fluent.debug fluent.info fluent.warn fluent.error fluent.fatal>
14
+ @type stdout
15
+ <inject>
16
+ hostname_key "host"
17
+ </inject>
18
+ </match>
19
+ # <match fluent.{info,warn,error,fatal}>
20
+ # @type stdout
21
+ # <inject>
22
+ # hostname_key "host"
23
+ # </inject>
24
+ # </match>
25
+ </label>
@@ -0,0 +1,16 @@
1
+ <source>
2
+ @type dummy
3
+ tag test
4
+ </source>
5
+
6
+ <match test>
7
+ @type forward
8
+ heartbeat_type none
9
+ <server>
10
+ host 127.0.0.1
11
+ port 24224
12
+ </server>
13
+ <buffer>
14
+ flush_mode immediate
15
+ </buffer>
16
+ </match>
@@ -0,0 +1,18 @@
1
+ <source>
2
+ @type dummy
3
+ tag test
4
+ </source>
5
+
6
+ <match test>
7
+ @type forward
8
+ transport tls
9
+ tls_insecure_mode true
10
+ <server>
11
+ # first server
12
+ host 127.0.0.1
13
+ port 24224
14
+ </server>
15
+ <buffer>
16
+ flush_interval 0
17
+ </buffer>
18
+ </match>
@@ -0,0 +1,7 @@
1
+ <system>
2
+ suppress_config_dump false
3
+ </system>
4
+
5
+ <match data.*>
6
+ @type stdout
7
+ </match>
@@ -17,6 +17,7 @@
17
17
  require 'fluent/configurable'
18
18
  require 'fluent/plugin'
19
19
  require 'fluent/output'
20
+ require 'fluent/match'
20
21
 
21
22
  module Fluent
22
23
  #
@@ -120,7 +121,7 @@ module Fluent
120
121
  end
121
122
 
122
123
  def add_match(type, pattern, conf)
123
- log.info "adding match#{@context.nil? ? '' : " in #{@context}"}", pattern: pattern, type: type
124
+ log.info :worker0, "adding match#{@context.nil? ? '' : " in #{@context}"}", pattern: pattern, type: type
124
125
 
125
126
  output = Plugin.new_output(type)
126
127
  output.context_router = @event_router
@@ -141,7 +142,7 @@ module Fluent
141
142
  end
142
143
 
143
144
  def add_filter(type, pattern, conf)
144
- log.info "adding filter#{@context.nil? ? '' : " in #{@context}"}", pattern: pattern, type: type
145
+ log.info :worker0, "adding filter#{@context.nil? ? '' : " in #{@context}"}", pattern: pattern, type: type
145
146
 
146
147
  filter = Plugin.new_filter(type)
147
148
  filter.context_router = @event_router
@@ -158,35 +159,5 @@ module Fluent
158
159
 
159
160
  def handle_emits_error(tag, es, error)
160
161
  end
161
-
162
- class NoMatchMatch
163
- def initialize(log)
164
- @log = log
165
- @count = 0
166
- end
167
-
168
- def emit_events(tag, es)
169
- # TODO use time instead of num of records
170
- c = (@count += 1)
171
- if c < 512
172
- if Math.log(c) / Math.log(2) % 1.0 == 0
173
- @log.warn "no patterns matched", tag: tag
174
- return
175
- end
176
- else
177
- if c % 512 == 0
178
- @log.warn "no patterns matched", tag: tag
179
- return
180
- end
181
- end
182
- @log.on_trace { @log.trace "no patterns matched", tag: tag }
183
- end
184
-
185
- def start
186
- end
187
-
188
- def shutdown
189
- end
190
- end
191
162
  end
192
163
  end
@@ -0,0 +1,62 @@
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
+ module Fluent
18
+ module Clock
19
+ CLOCK_ID = Process::CLOCK_MONOTONIC_RAW rescue Process::CLOCK_MONOTONIC
20
+
21
+ @@block_level = 0
22
+ @@frozen_clock = nil
23
+
24
+ def self.now
25
+ @@frozen_clock || now_raw
26
+ end
27
+
28
+ def self.freeze(dst = nil, &block)
29
+ return freeze_block(dst, &block) if block_given?
30
+
31
+ dst = dst_clock_from_time(dst) if dst.is_a?(Time)
32
+ @@frozen_clock = dst || now_raw
33
+ end
34
+
35
+ def self.return
36
+ raise "invalid return while running code in blocks" if @@block_level > 0
37
+ @@frozen_clock = nil
38
+ end
39
+
40
+ # internal use
41
+
42
+ def self.now_raw
43
+ Process.clock_gettime(CLOCK_ID)
44
+ end
45
+
46
+ def self.dst_clock_from_time(time)
47
+ diff_sec = Time.now - time
48
+ now_raw - diff_sec
49
+ end
50
+
51
+ def self.freeze_block(dst)
52
+ dst = dst_clock_from_time(dst) if dst.is_a?(Time)
53
+ pre_frozen_clock = @@frozen_clock
54
+ @@frozen_clock = dst || now_raw
55
+ @@block_level += 1
56
+ yield
57
+ ensure
58
+ @@block_level -= 1
59
+ @@frozen_clock = pre_frozen_clock
60
+ end
61
+ end
62
+ end
@@ -69,6 +69,10 @@ op.on('--no-supervisor', "run fluent worker without supervisor") {
69
69
  opts[:standalone_worker] = true
70
70
  }
71
71
 
72
+ op.on('--workers NUM', "specify the number of workers under supervisor") { |i|
73
+ opts[:workers] = i.to_i
74
+ }
75
+
72
76
  op.on('--user USER', "change user") {|s|
73
77
  opts[:chuser] = s
74
78
  }
@@ -98,6 +102,10 @@ op.on('--log-rotate-size BYTES', 'sets the byte size to rotate log files') {|s|
98
102
  opts[:log_rotate_size] = s.to_i
99
103
  }
100
104
 
105
+ op.on('--log-event-verbose', 'enable log events during process startup/shutdown') {|b|
106
+ opts[:log_event_verbose] = b
107
+ }
108
+
101
109
  op.on('-i', '--inline-config CONFIG_STRING', "inline config which is appended to the config file on-the-fly") {|s|
102
110
  opts[:inline_config] = s
103
111
  }
@@ -285,5 +293,9 @@ require 'fluent/supervisor'
285
293
  if opts[:supervise]
286
294
  Fluent::Supervisor.new(opts).run_supervisor
287
295
  else
296
+ if opts[:standalone_worker] && opts[:workers] && opts[:workers] > 1
297
+ puts "Error: multi workers is not supported with --no-supervisor"
298
+ exit 2
299
+ end
288
300
  Fluent::Supervisor.new(opts).run_worker
289
301
  end
@@ -17,7 +17,6 @@
17
17
  require 'fluent/plugin'
18
18
  require 'fluent/plugin/input'
19
19
  require 'fluent/compat/call_super_mixin'
20
- require 'fluent/process' # to load Fluent::DetachProcessMixin
21
20
 
22
21
  module Fluent
23
22
  module Compat
@@ -44,6 +43,16 @@ module Fluent
44
43
  def shutdown
45
44
  super
46
45
  end
46
+
47
+ def detach_process(&block)
48
+ log.warn "detach_process is not supported in this version. ignored."
49
+ block.call
50
+ end
51
+
52
+ def detach_multi_process(&block)
53
+ log.warn "detach_process is not supported in this version. ignored."
54
+ block.call
55
+ end
47
56
  end
48
57
  end
49
58
  end
@@ -27,7 +27,6 @@ require 'fluent/compat/output_chain'
27
27
  require 'fluent/timezone'
28
28
  require 'fluent/mixin'
29
29
  require 'fluent/event'
30
- require 'fluent/process' # to load Fluent::DetachProcessMixin
31
30
 
32
31
  require 'fluent/plugin_helper/compat_parameters'
33
32
 
@@ -188,6 +187,16 @@ module Fluent
188
187
  end
189
188
  end
190
189
  end
190
+
191
+ def detach_process(&block)
192
+ log.warn "detach_process is not supported in this version. ignored."
193
+ block.call
194
+ end
195
+
196
+ def detach_multi_process(&block)
197
+ log.warn "detach_process is not supported in this version. ignored."
198
+ block.call
199
+ end
191
200
  end
192
201
 
193
202
  class MultiOutput < Fluent::Plugin::BareOutput
@@ -398,6 +407,16 @@ module Fluent
398
407
  end
399
408
  end
400
409
  end
410
+
411
+ def detach_process(&block)
412
+ log.warn "detach_process is not supported in this version. ignored."
413
+ block.call
414
+ end
415
+
416
+ def detach_multi_process(&block)
417
+ log.warn "detach_process is not supported in this version. ignored."
418
+ block.call
419
+ end
401
420
  end
402
421
 
403
422
  class ObjectBufferedOutput < Fluent::Plugin::Output
@@ -525,6 +544,16 @@ module Fluent
525
544
  end
526
545
  end
527
546
  end
547
+
548
+ def detach_process(&block)
549
+ log.warn "detach_process is not supported in this version. ignored."
550
+ block.call
551
+ end
552
+
553
+ def detach_multi_process(&block)
554
+ log.warn "detach_process is not supported in this version. ignored."
555
+ block.call
556
+ end
528
557
  end
529
558
 
530
559
  class TimeSlicedOutput < Fluent::Plugin::Output
@@ -673,6 +702,16 @@ module Fluent
673
702
  end
674
703
  end
675
704
 
705
+ def detach_process(&block)
706
+ log.warn "detach_process is not supported in this version. ignored."
707
+ block.call
708
+ end
709
+
710
+ def detach_multi_process(&block)
711
+ log.warn "detach_process is not supported in this version. ignored."
712
+ block.call
713
+ end
714
+
676
715
  # Original TimeSlicedOutput#emit doesn't call #format_stream
677
716
 
678
717
  # #format MUST be implemented in plugin