# File lib/sequel/extensions/newrelic_instrumentation.rb, line 65
    def notice_sql(sql, metric_name, start, finish)
      state    = NewRelic::Agent::TransactionState.tl_get
      duration = finish - start

      explainer = Proc.new do |*|
        if THREAD_SAFE_CONNECTION_POOL_CLASSES.include?(self.pool.class)
          self[ sql ].explain
        else
          NewRelic::Agent.logger.log_once(:info, :sequel_explain_skipped, "Not running SQL explains because Sequel is not in recognized multi-threaded mode")
          nil
        end
      end
      NewRelic::Agent.instance.transaction_sampler.notice_sql(sql, self.opts, duration, state, explainer)
      NewRelic::Agent.instance.sql_sampler.notice_sql(sql, metric_name, self.opts, duration, state, explainer)
    end