lib/fluent/plugin/out_detect_exceptions.rb in fluent-plugin-detect-exceptions-0.0.1 vs lib/fluent/plugin/out_detect_exceptions.rb in fluent-plugin-detect-exceptions-0.0.3
- old
+ new
@@ -28,12 +28,14 @@
config_param :remove_tag_prefix, :string, default: ''
desc 'The interval of flushing the buffer for multiline format.'
config_param :multiline_flush_interval, :time, default: nil
desc 'Programming languages for which to detect exceptions. Default: all.'
config_param :languages, :array, value_type: :string, default: []
- desc 'Maximum number of lines in a detected stack trace. Default: 1000.'
+ desc 'Maximum number of lines to flush (0 means no limit). Default: 1000.'
config_param :max_lines, :integer, default: 1000
+ desc 'Maximum number of bytes to flush (0 means no limit). Default: 0.'
+ config_param :max_bytes, :integer, default: 0
Fluent::Plugin.register_output('detect_exceptions', self)
def configure(conf)
super
@@ -83,17 +85,17 @@
def process_record(tag, time_sec, record)
synchronize do
unless @accumulators.key?(tag)
out_tag = tag.sub(/^#{Regexp.escape(remove_tag_prefix)}\./, '')
@accumulators[tag] =
- Fluent::TraceAccumulator.new(message, @languages) do |t, r|
+ Fluent::TraceAccumulator.new(message, @languages,
+ max_lines: max_lines,
+ max_bytes: max_bytes) do |t, r|
router.emit(out_tag, t, r)
end
end
@accumulators[tag].push(time_sec, record)
-
- @accumulators[tag].force_flush if @accumulators[tag].length > max_lines
end
end
def flush_buffers
synchronize do