55from sentry_sdk .integrations import DidNotEnable , Integration
66from sentry_sdk .integrations .logging import ignore_logger
77from sentry_sdk .scope import should_send_default_pii
8- from sentry_sdk .tracing import Transaction , TRANSACTION_SOURCE_TASK
8+ from sentry_sdk .tracing import TRANSACTION_SOURCE_TASK
99from sentry_sdk .utils import (
1010 capture_internal_exceptions ,
1111 ensure_integration_enabled ,
3737
3838ARQ_CONTROL_FLOW_EXCEPTIONS = (JobExecutionFailed , Retry , RetryJob )
3939
40+ DEFAULT_TRANSACTION_NAME = "unknown arq task"
41+
4042
4143class ArqIntegration (Integration ):
4244 identifier = "arq"
@@ -79,7 +81,10 @@ async def _sentry_enqueue_job(self, function, *args, **kwargs):
7981 return await old_enqueue_job (self , function , * args , ** kwargs )
8082
8183 with sentry_sdk .start_span (
82- op = OP .QUEUE_SUBMIT_ARQ , name = function , origin = ArqIntegration .origin
84+ op = OP .QUEUE_SUBMIT_ARQ ,
85+ name = function ,
86+ origin = ArqIntegration .origin ,
87+ only_if_parent = True ,
8388 ):
8489 return await old_enqueue_job (self , function , * args , ** kwargs )
8590
@@ -98,18 +103,21 @@ async def _sentry_run_job(self, job_id, score):
98103
99104 with sentry_sdk .isolation_scope () as scope :
100105 scope ._name = "arq"
106+ scope .set_transaction_name (
107+ DEFAULT_TRANSACTION_NAME ,
108+ source = TRANSACTION_SOURCE_TASK ,
109+ )
101110 scope .clear_breadcrumbs ()
102111
103- transaction = Transaction (
104- name = "unknown arq task" ,
105- status = "ok" ,
112+ with sentry_sdk .start_span (
106113 op = OP .QUEUE_TASK_ARQ ,
114+ name = DEFAULT_TRANSACTION_NAME ,
107115 source = TRANSACTION_SOURCE_TASK ,
108116 origin = ArqIntegration .origin ,
109- )
110-
111- with sentry_sdk . start_transaction ( transaction ):
112- return await old_run_job ( self , job_id , score )
117+ ) as span :
118+ return_value = await old_run_job ( self , job_id , score )
119+ span . set_status ( SPANSTATUS . OK )
120+ return return_value
113121
114122 Worker .run_job = _sentry_run_job
115123
0 commit comments