class Sentry::Hub

def start_transaction(transaction: nil, custom_sampling_context: {}, instrumenter: :sentry, **options)

def start_transaction(transaction: nil, custom_sampling_context: {}, instrumenter: :sentry, **options)
  return unless configuration.tracing_enabled?
  return unless instrumenter == configuration.instrumenter
  transaction ||= Transaction.new(**options.merge(hub: self))
  sampling_context = {
    transaction_context: transaction.to_hash,
    parent_sampled: transaction.parent_sampled
  }
  sampling_context.merge!(custom_sampling_context)
  transaction.set_initial_sample_decision(sampling_context: sampling_context)
  transaction.start_profiler!
  transaction
end