class Fluent::Plugin::NetflowipfixInput::ParserNetflowv9

Public Instance Methods

configure(cache_ttl, definitions) click to toggle source
# File lib/fluent/plugin/parser_netflow_v9.rb, line 264
def configure(cache_ttl, definitions)
        super(cache_ttl, definitions)
        @templates9 = Vash.new()
        @samplers_v9 = Vash.new()
        # Path to default Netflow v9 field definitions
        filename9 = File.expand_path('../netflow_fields.yaml', __FILE__)

        begin
          @fields9 = YAML.load_file(filename9)
        rescue => e
          raise ConfigError, "Bad syntax in definitions file #{filename9}, error_class = #{e.class.name}, error = #{e.message}"
        end
   
        # Allow the user to augment/override/rename the supported Netflow fields
        if @definitions
          raise ConfigError, "definitions file #{@definitions} doesn't exist" unless File.exist?(@definitions)
          begin
                @fields9['option'].merge!(YAML.load_file(@definitions))
          rescue => e
                raise ConfigError, "Bad syntax in definitions file #{@definitions}, error_class = #{e.class.name}, error = #{e.message}"
          end
        end
end
handle_v9(host, pdu, block) click to toggle source
# File lib/fluent/plugin/parser_netflow_v9.rb, line 288
def handle_v9(host, pdu, block)
        pdu.records.each do |flowset|
          case flowset.flowset_id
          when 0
                handle_flowset_template(host, pdu, flowset, @templates9, @fields9)
          when 1
                handle_flowset_options_template(host, pdu, flowset, @templates9, @fields9)
          when 256..65535
                handle_flowset_data(host, pdu, flowset, block, @templates9, @fields9, 9)
          else
                $log.warn 'v9 Unsupported flowset', flowset_id: flowset.flowset_id
          end # case
        end # do
end