# File lib/new_relic/agent/method_tracer_helpers.rb, line 69
      def trace_execution_scoped(metric_names, options={}) #THREAD_LOCAL_ACCESS
        state = NewRelic::Agent::TransactionState.tl_get
        return yield unless state.is_execution_traced?

        metric_names = Array(metric_names)
        first_name   = metric_names.shift
        return yield unless first_name

        segment = NewRelic::Agent::Transaction.start_segment first_name, metric_names
        if options[:metric] == false
          segment.record_metrics = false
        end

        begin
          yield
        ensure
          segment.finish
        end
      end