Class: Trace::SqsClient

Inherits:
Object
  • Object
show all
Includes:
SuckerPunch::Job
Defined in:
lib/zipkin-tracer/zipkin_sqs_sender.rb

Instance Method Summary collapse

Instance Method Details

#perform(sqs_options, queue_name, spans) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/zipkin-tracer/zipkin_sqs_sender.rb', line 11

def perform(sqs_options, queue_name, spans)
  spans_with_ips =
    ::ZipkinTracer::HostnameResolver.new.spans_with_ips(spans, ZipkinSqsSender::IP_FORMAT).map(&:to_h)
  sqs = Aws::SQS::Client.new(**sqs_options)
  queue_url = sqs.get_queue_url(queue_name: queue_name).queue_url
  body = JSON.generate(spans_with_ips)
  sqs.send_message(queue_url: queue_url, message_body: body)
rescue Aws::SQS::Errors::NonExistentQueue
  error_message = "The queue '#{queue_name}' does not exist."
  SuckerPunch.logger.error(error_message)
rescue => e
  SuckerPunch.logger.error(e)
end