module ElasticAPM::Spies::SQSSpy::Ext

def send_message_batch(params = {}, options = {})

def send_message_batch(params = {}, options = {})
  unless (transaction = ElasticAPM.current_transaction)
    return super(params, options)
  end
  queue_name = ElasticAPM::Spies::SQSSpy.queue_name(params)
  span_name =
    queue_name ? "SQS SEND_BATCH to #{queue_name}" : 'SQS SEND_BATCH'
  region = ElasticAPM::Spies::SQSSpy.region_from_url(params[:queue_url])
  context = ElasticAPM::Spies::SQSSpy.span_context(
    queue_name,
    region || config.region
  )
  ElasticAPM.with_span(
    span_name,
    TYPE,
    subtype: SUBTYPE,
    action: 'send_batch',
    context: context
  ) do |span|
    trace_context = span&.trace_context || transaction.trace_context
    trace_context.apply_headers do |key, value|
      params[:entries].each do |message|
        message[:message_attributes] ||= {}
        message[:message_attributes][key] ||= {}
        message[:message_attributes][key][:string_value] = value
        message[:message_attributes][key][:data_type] = 'String'
      end
    end
    ElasticAPM::Spies::SQSSpy.without_net_http do
      super(params, options)
    end
  end
end