Sha256: cccbffebe44000f5d93676ea151bb61e6f7ff59480ace5614a1a7964be3f41d9
Contents?: true
Size: 1.45 KB
Versions: 2
Compression:
Stored size: 1.45 KB
Contents
# encoding: utf-8 module LogStash::Inputs::BeatsSupport # Base Transform class, expose the plugin decorate method, # apply the tags and make sure we copy the beat hostname into `host` # for backward compatibility. class EventTransformCommon def initialize(input) @input = input @logger = input.logger end # Copies the beat.hostname field into the host field unless # the host field is already defined def copy_beat_hostname(event) host = event["[beat][hostname]"] if host && event["host"].nil? event["host"] = host end end # This break the `#decorate` method visibility of the plugin base # class, the method is protected and we cannot access it, but well ruby # can let you do all the wrong thing. # # I think the correct behavior would be to allow the plugin to return a # `Decorator` object that we can pass to other objects, since only the # plugin know the data used to decorate. This would allow a more component # based workflow. def decorate(event) @input.send(:decorate, event) end def codec_name @codec_name ||= if @input.codec.respond_to?(:base_codec) @input.codec.base_codec.class.config_name else @input.codec.class.config_name end end def transform(event) copy_beat_hostname(event) decorate(event) event end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
logstash-input-beats-2.2.9 | lib/logstash/inputs/beats_support/event_transform_common.rb |
logstash-input-beats-2.2.8 | lib/logstash/inputs/beats_support/event_transform_common.rb |