class ElasticAPM::Spies::SequelSpy

def install

rubocop:disable Metrics/MethodLength
def install
  require 'sequel/database/logging'
  ::Sequel::Database.class_eval do
    alias log_connection_yield_without_apm log_connection_yield
    def log_connection_yield(sql, *args, &block)
      unless ElasticAPM.current_transaction
        return log_connection_yield_without_apm(sql, *args, &block)
      end
      summarizer = ElasticAPM::Spies::SequelSpy.summarizer
      name = summarizer.summarize sql
      context = ElasticAPM::Spies::SequelSpy.build_context(sql, opts)
      ElasticAPM.with_span(name, TYPE, context: context, &block)
    end
  end
end