class ElasticAPM::Instrumenter
def transaction(*args)
def transaction(*args) if (transaction = current_transaction) yield transaction if block_given? return transaction end sample = rand <= config.transaction_sample_rate if args.last.is_a? Hash args.last[:sampled] = sample else args.push(sampled: 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