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