Sha256: 8473ff0e1f6b2fd79ea9225cdc29537f9497d451ef63f2b00ac7c4276dba4af5

Contents?: true

Size: 745 Bytes

Versions: 2

Compression:

Stored size: 745 Bytes

Contents

require 'fluent/plugin/filter_where/parser.tab'

module Fluent; module FilterWhere; end; end
module Fluent
  module FilterWhere::Core
    def initialize
      super
    end
    
    def self.included(klass)
      klass.config_param :where, :string, :desc => 'The SQL-like WHERE statement.'
    end

    def configure(conf)
      super

      parser = Fluent::FilterWhere::Parser.new(log: log)
      @scanner = parser.scan(@where)
    end

    def filter(tag, time, record)
      if @scanner.eval(record)
        record
      else
        nil # remove
      end
    rescue => e
      log.warn "filter_where: #{e.class} #{e.message} #{e.backtrace.first}"
      log.debug "filter_where:: tag:#{tag} time:#{time} record:#{record}"
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
fluent-plugin-filter_where-1.0.3 lib/fluent/plugin/filter_where/core.rb
fluent-plugin-filter_where-1.0.2 lib/fluent/plugin/filter_where/core.rb