class Fluent::Plugin::JqOutput

Public Instance Methods

multi_workers_ready?() click to toggle source
# File lib/fluent/plugin/out_jq.rb, line 32
def multi_workers_ready?
  true
end
process(tag, es) click to toggle source
# File lib/fluent/plugin/out_jq.rb, line 36
def process(tag, es)
  new_es = Fluent::MultiEventStream.new
  es.each do |time, record|
    begin
      new_records = jq_transform tag: tag, time: time, record: record
      new_records = [new_records] unless new_records.is_a?(Array)
      new_records.each { |new_record| new_es.add time, new_record }
    rescue JqError
      log.error "Process failed with #{@jq}#{log.on_debug {' on ' + MultiJson.dump(record)}}, error: #{$!.message}"
    end
  end

  new_tag = tag.sub(/^#{Regexp.escape(@remove_tag_prefix)}\./, '')
  router.emit_stream(new_tag, new_es)
end