class LogStash::Inputs::Elasticsearch::Aggregation

Constants

AGGREGATION_JOB

Public Class Methods

new(client, plugin) click to toggle source
# File lib/logstash/inputs/elasticsearch/aggregation.rb, line 11
def initialize(client, plugin)
  @client = client
  @plugin_params = plugin.params

  @size = @plugin_params["size"]
  @query = @plugin_params["query"]
  @retries = @plugin_params["retries"]
  @agg_options = {
    :index => @plugin_params["index"],
    :size  => 0
  }.merge(:body => @query)

  @plugin = plugin
end

Public Instance Methods

do_run(output_queue) click to toggle source
# File lib/logstash/inputs/elasticsearch/aggregation.rb, line 36
def do_run(output_queue)
  logger.info("Aggregation starting")
  r = retryable(AGGREGATION_JOB) do
    @client.search(@agg_options)
  end
  @plugin.push_hit(r, output_queue, 'aggregations') if r
end
retryable(job_name) { || ... } click to toggle source
# File lib/logstash/inputs/elasticsearch/aggregation.rb, line 26
def retryable(job_name, &block)
  stud_try = ::LogStash::Helpers::LoggableTry.new(logger, job_name)
  stud_try.try((@retries + 1).times) { yield }
rescue => e
  error_details = {:message => e.message, :cause => e.cause}
  error_details[:backtrace] = e.backtrace if logger.debug?
  logger.error("Tried #{job_name} unsuccessfully", error_details)
  false
end