class ElasticAPM::Instrumenter
def transaction(*args)
def transaction(*args) if (transaction = current_transaction) yield transaction if block_given? return transaction end if args.last.is_a? Hash args.last[:sampled] = random_sample? else args.push(sampled: random_sample?) end transaction = Transaction.new self, *args self.current_transaction = transaction return transaction unless block_given? begin yield transaction ensure self.current_transaction = nil transaction.done end transaction end