Sha256: f601f52387d61f4e3aaefa83432e203c7ca176c57e5b1a7e41bb3fa5c163f4f9
Contents?: true
Size: 1.43 KB
Versions: 9
Compression:
Stored size: 1.43 KB
Contents
require "logstash/output_delegator_strategy_registry" require "logstash/output_delegator_strategies/shared" require "logstash/output_delegator_strategies/single" require "logstash/output_delegator_strategies/legacy" module LogStash class OutputDelegator attr_reader :metric, :metric_events, :strategy, :namespaced_metric, :metric_events, :id def initialize(logger, output_class, metric, strategy_registry, plugin_args) @logger = logger @output_class = output_class @metric = metric @id = plugin_args["id"] raise ArgumentError, "No strategy registry specified" unless strategy_registry raise ArgumentError, "No ID specified! Got args #{plugin_args}" unless id @strategy = strategy_registry. class_for(self.concurrency). new(@logger, @output_class, @metric, plugin_args) @namespaced_metric = metric.namespace(id.to_sym) @namespaced_metric.gauge(:name, config_name) @metric_events = @namespaced_metric.namespace(:events) end def config_name @output_class.config_name end def concurrency @output_class.concurrency end def register @strategy.register end def multi_receive(events) @metric_events.increment(:in, events.length) clock = @metric_events.time(:duration_in_millis) @strategy.multi_receive(events) clock.stop @metric_events.increment(:out, events.length) end def do_close @strategy.do_close end end; end
Version data entries
9 entries across 8 versions & 3 rubygems