class ElasticAPM::Spies::SQSSpy

@api private

Constants

REGION_REGEXP
SUBTYPE
TYPE

Public Class Methods

queue_name(params) click to toggle source
# File lib/elastic_apm/spies/sqs.rb, line 40
def self.queue_name(params)
  if params[:queue_url]
    params[:queue_url].split('/')[-1]
  end
end
region_from_url(url) click to toggle source
# File lib/elastic_apm/spies/sqs.rb, line 46
def self.region_from_url(url)
  if match = REGION_REGEXP.match(url)
    match[1]
  end
end
span_context(queue_name, region) click to toggle source
# File lib/elastic_apm/spies/sqs.rb, line 52
def self.span_context(queue_name, region)
  ElasticAPM::Span::Context.new(
    message: { queue_name: queue_name },
    destination: {
      service: { resource: "#{SUBTYPE}/#{queue_name}" },
      cloud: { region: region }
    }
    # span links added here?
  )
end
without_net_http() { || ... } click to toggle source
# File lib/elastic_apm/spies/sqs.rb, line 30
def self.without_net_http
  return yield unless defined?(NetHTTPSpy)

  # rubocop:disable Style/ExplicitBlockArgument
  ElasticAPM::Spies::NetHTTPSpy.disable_in do
    yield
  end
  # rubocop:enable Style/ExplicitBlockArgument
end

Public Instance Methods

install() click to toggle source
# File lib/elastic_apm/spies/sqs.rb, line 220
def install
  ::Aws::SQS::Client.prepend(Ext)
end