mirror of
https://github.com/elastic/logstash.git
synced 2025-04-24 14:47:19 -04:00
Improve OutputDelegator public API
This minimizes the OutputDelegator public API Fixes https://github.com/elastic/logstash/issues/5813 Fixes #5827
This commit is contained in:
parent
bfac549241
commit
934138531c
1 changed files with 8 additions and 16 deletions
|
@ -5,19 +5,21 @@ 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 , :plugin_args, :strategy_registry
|
||||
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
|
||||
@plugin_args = plugin_args
|
||||
@strategy_registry = strategy_registry
|
||||
@id = plugin_args["id"]
|
||||
|
||||
raise ArgumentError, "No strategy registry specified" unless strategy_registry
|
||||
raise ArgumentError, "No ID specified! Got args #{plugin_args}" unless id
|
||||
|
||||
build_strategy!
|
||||
|
||||
|
||||
@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)
|
||||
|
@ -31,16 +33,6 @@ module LogStash class OutputDelegator
|
|||
@output_class.concurrency
|
||||
end
|
||||
|
||||
def build_strategy!
|
||||
@strategy = strategy_registry.
|
||||
class_for(self.concurrency).
|
||||
new(@logger, @output_class, @metric, @plugin_args)
|
||||
end
|
||||
|
||||
def id
|
||||
@plugin_args["id"]
|
||||
end
|
||||
|
||||
def register
|
||||
@strategy.register
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue