@@ -25,7 +25,7 @@ def transaction_name(job)
2525 registry . call ( registry . for ( job ) , :transaction_name , job : job )
2626 end
2727
28- def start_transaction ( scope , job , trace_headers : nil , payload : nil , always_continue_trace : false , messaging_data : { } , default_retry_count : nil )
28+ def start_transaction ( scope , job , transaction : nil , trace_headers : nil , payload : nil , always_continue_trace : false , messaging_data : { } , default_retry_count : nil )
2929 extension = registry . for ( job )
3030 options = {
3131 name : scope . transaction_name ,
@@ -43,11 +43,16 @@ def start_transaction(scope, job, trace_headers: nil, payload: nil, always_conti
4343 end
4444 end
4545
46- transaction = if always_continue_trace || ( trace_headers && ! trace_headers . empty? )
47- continued = Sentry . continue_trace ( trace_headers , ** options )
48- Sentry . start_transaction ( transaction : continued , ** options )
46+ if transaction
47+ transaction . set_name ( options [ :name ] , source : options [ :source ] )
48+ transaction . set_origin ( options [ :origin ] )
4949 else
50- Sentry . start_transaction ( **options )
50+ transaction = if always_continue_trace || ( trace_headers && !trace_headers . empty? )
51+ continued = Sentry . continue_trace ( trace_headers , **options )
52+ Sentry . start_transaction ( transaction : continued , **options )
53+ else
54+ Sentry . start_transaction ( **options )
55+ end
5156 end
5257 return unless transaction
5358
@@ -62,7 +67,7 @@ def start_transaction(scope, job, trace_headers: nil, payload: nil, always_conti
6267 end
6368
6469 def finish_transaction ( transaction , status )
65- return unless transaction
70+ return if ! transaction || transaction . timestamp
6671
6772 transaction . set_http_status ( status )
6873 transaction . finish
0 commit comments