bgJddlmZddlZddlZddlmZddlmZddlm Z ddl m Z ddl m Z mZddlmZdd lmZmZdd lmZdd lmZmZdd lmZdd lmZmZmZmZerQddl m!Z!ddl m"Z"ddl m#Z#ddl m$Z$ddl m%Z%ddl m&Z&ddl m'Z'ddl m(Z(ddlm)Z)m*Z*m+Z+m,Z,e'de"de!fZ- ddl.m/Z0ddl.m1Z1m2Z2ddl3m4Z4ddl5m6Z6ddl7m8Z8m9Z9m:Z:m;Z;ddlZ>dd l?m@Z@mAZAmBZBn#eC$r ed!wxYwe:e8e9fZDGd"d#eZEd$ZFd%ZGd&ZHd'ZId4d(ZJd)ZKd*ZLd+ZMd,ZNd-ZOd.ZPd/ZQd0ZRd1ZSd2ZTd3ZUdS)5)absolute_importN)continue_trace)OP)reraisewraps)capture_checkin MonitorStatus)Hub) Integration DidNotEnable) ignore_logger)BAGGAGE_HEADER_NAMETRANSACTION_SOURCE_TASK) TYPE_CHECKING)capture_internal_exceptionsevent_from_exceptionloggermatch_regex_list)Any)Callable)Dict)List)Optional)Tuple)TypeVar)Union)EventProcessorEventHintExcInfoF.)bound)VERSION)TaskCelery)task_has_custom) Scheduler)IgnoreRejectRetrySoftTimeLimitExceeded)crontabschedule) task_failure task_success task_retryzCelery not installedc6eZdZdZ ddZedZdS)CeleryIntegrationceleryTFNcp||_||_||_|rtt dSdSN)propagate_tracesmonitor_beat_tasksexclude_beat_tasks_patch_beat_apply_entry_setup_celery_beat_signals)selfr7r8r9s U/opt/cloudlinux/venv/lib64/python3.11/site-packages/sentry_sdk/integrations/celery.py__init__zCeleryIntegration.__init__AsL!1"4"4  ) # % % % & ( ( ( ( ( ) )c(tdkrtdddlmcm}|jfd}||_ddlm}t|j |_ ttdtdtddS) N)zCelery 3 or newer required.rc(t|ddsft|dr5t|t|jt|_nt||j|_d|_t|||g|Ri|S)N_sentry_is_patchedF__call__T)getattrr'_wrap_task_calltyperDrunrC _wrap_tracer)nametaskargskwargsold_build_tracers r=sentry_build_tracerz9CeleryIntegration.setup_once..sentry_build_tracerZs4!5u== /#444?*9$T @S*T*TDJJ''.tTX>>DH +/'&6&6tT&SD&S&S&SF&S&STT Tr?)r%zcelery.worker.jobzcelery.app.tracezcelery.redirected) CELERY_VERSIONr celery.app.traceapptrace build_tracercelery.app.taskr%_wrap_apply_async apply_async_patch_worker_exitr)rSrOr%rNs @r= setup_oncezCeleryIntegration.setup_oncePs D <== =((((((((( - U U U U U"1((((((,T-=>> )***())) )*****r?)TFN)__name__ __module__ __qualname__ identifierr> staticmethodrYr?r=r3r3>sSJ  ) ) ) )*+*+\*+*+*+r?r3c(tjSr6)timer_r?r=_now_seconds_since_epochrb~s 9;;r?c<tfd}|S)Nc tj}|t}||jr|t j|dj5}t5t| |}|j r&| ddtzi|r|dpi}|t }|t }|p|} |r|rd||} | || r | |t <|di || r| |dt <|D]%\} } | dr | |d| <&||d<dddn #1swxYwY |i|cdddS#1swxYwYdS |i|S)Nr)op description sentry-monitor-start-timestamp-sz%.9fheadersz{},{}zsentry-)r currentget_integrationr3r7 start_spanrQUEUE_SUBMIT_CELERYrJrdictiter_trace_propagation_headersr8updaterbgetrformat setdefaultitems startswith) rLrMhub integrationspanrh kwarg_headersexisting_baggagesentry_baggagecombined_baggagekeyvaluefs r=rWz&_wrap_apply_async..apply_asyncsk))*;<<  "{'C ")tAw| 3 *022.:.:"3#E#Ed#K#KLLG"5 BF":"<"<E=$:)/ 9(=(=(C +8+<+<=P+Q+Q()05H)I)I+9+M=M().>/6~~ 0 .00, &,,W555+RAQM*=>&00B??FFwOOO+1!1*)4 3 +8*=*=*?*?FFJC"~~i88F@E i 8 =,9y)].:.:.:.:.:.:.:.:.:.:.:.:.:.:.:`q$)&))g3 *3 *3 *3 *3 *3 *3 *3 *3 *3 *3 *3 *3 *3 *3 *3 *3 *3 *j1d%f%% %s7G0.EG G0G G0G  G00G47G4r)r~rWs` r=rVrVs5 1XX:&:&:&:&X:&x r?c@tfd}|S)Nc Btj}|t|i|S|5}d|_||tg|Ri|d}t5t|d dpitj dt}j|_|ddddn #1swxYwY||i|cdddS||djt%|d|d d i 5|i|cdddcdddS#1swxYwY ddddS#1swxYwYdS) Nr4rArhzunknown celery task)rerJsourceok celery_job)rKrLrM)custom_sampling_context)r rirjr3 push_scope_nameclear_breadcrumbsadd_event_processor_make_event_processorrrrprQUEUE_TASK_CELERYrrJ set_statusstart_transactionlist)rLrMruscope transactionr~rKs r=_innerz_wrap_tracer.._innersk   0 1 1 91d%f%% % ^^  " *"EK  # # % % %  % %&;D&R4&R&R&R6&R&R S S SK-.. - -,GKK **0b+.2  $(9  &&t,,, - - - - - - - - - - - - - - -"q$)&)))" *" *" *" *" *" *" *" *,&& $ !%T!W "&q' ##)'   * *q$)&)) * * * * * * *-" *" *" *" *" *" *" *" *, * * * * * * * * *-" *" *" *" *" *" *" *" *" *" *" *" *" *" *" *" *" *" *sbAFAC>2 F>D FD  F;FE;" F;E? ?FE? FFFrrKr~rs`` r=rIrIs< 1XX(*(*(*(*(*X(*T Mr?c@tfd}|S)Nc |i|S#t$rVtj}t5t |dddn #1swxYwYt |YdSwxYwr6) Exceptionsysexc_infor_capture_exceptionr)rLrMrr~rKs r=rz_wrap_task_call.._inner s 1d%f%% %   |~~H,.. 3 3"4222 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 X       s2 +A+A A+A A+A  A+*A+rrs`` r=rFrFs; 1XXX Mr?cfd}|S)Nct5|di}|d<|di}jd|d<dddn #1swxYwYd|vr^t5t|ddtrdd t d g|d <dddn #1swxYwY|S) Ntagscelery_task_idextra) task_namerLrMz celery-jobrrr4r,rJ fingerprint)rrrrJ issubclassr,rE)eventhintrrrLrMrKuuids r=event_processorz._make_event_processor..event_processorsj) * *  ##FB//D%)D! "$$Wb11E!Y ##E,                    ,..  d:.q13HII /fd33,E-(                s$AAA #A 99B>>CCr_)rKrrLrMrequestrs```` r=rrs60 r?ctj}|tdSt |dt rt |ddSt |dt|drt |d|jrdS|j }t||j ddd\}}| || dS) Nrabortedinternal_errorthrowsr4F)rGhandled)client_options mechanism)r) r rirjr3 isinstanceCELERY_CONTROL_FLOW_EXCEPTIONS _set_statushasattrrclientroptions capture_event)rKrrurrrs r=rr5s +C ,--5(1+=>>C###%&&&tX:hqk4;#G#GZF&~#66KE4 e$'''''r?ct5|5}|j|j|dddn #1swxYwYddddS#1swxYwYdSr6)rconfigure_scoperwr)rustatusrs r=rrQs $ & &..  " " .ez% %%f--- . . . . . . . . . . . . . . ...................s4A*"A A*A A*A A**A.1A.c:ddlm}|jfd}||_dS)Nr)Workerc |i|t5tj}|t|dddS#1swxYwYS#t5tj}|t|dddw#1swxYwYwxYwr6)rr rirjr3flush)rLrMru old_workloops r=sentry_workloopz+_patch_worker_exit..sentry_workloopbs< <000,..  k&&'899EIIKKK                ,..  k&&'899EIIKKK                s@A+;AA# &A# +C :;C5 C C C C C ) billiard.poolrworkloop)rrrs @r=rXrXYsD %$$$$$?L     &FOOOr?c|jdpi}d|vr||d|d=||jdpi|S)Nrh properties)rrpro)rKrhs r= _get_headersrostly))/RGGwy)*** I  NN4<##L117R888 Nr?cd}t|}|D]#\}}||krt||z }||fcS$t|dfS)N))dayg@)hourg @)minutegN@second)floatint)seconds TIME_UNITSunitdividerintervals r=_get_humanized_intervalr}soJ GnnG#$$ g g  7W,--Hd# # # #  LL( ##r?ci}d}d}d}t|trd}d|}nqt|tr8d}t |j\}}|dkrt jd||iSn$t jdt|iSi|d<||dd<||dd <| ||dd <|j j pd |d <|S) Nr-zd{0._orig_minute} {0._orig_hour} {0._orig_day_of_month} {0._orig_month_of_year} {0._orig_day_of_week}rrzIntervals shorter than one minute are not supported by Sentry Crons. Monitor '%s' has an interval of %s seconds. Use the `exclude_beat_tasks` option in the celery integration to exclude it.z8Celery schedule type '%s' not supported by Sentry Crons.r.rGr}rUTCtimezone) rr-rqr.rrrwarningrGconfr)celery_schedulerR monitor_namemonitor_config schedule_typeschedule_value schedule_units r=_get_monitor_configrs6NMNM/7++!  $%+F?$;$;  OX . ." *A  #+ + ' H $ $ NP    I %  F  ! !    !#N:)6N:v&*8N:w' -:z"6*!$!2!;eN: r?cBtjfd}|t_dS)Nc|\}}|j}|j}|j}tj}|t }||i|St||jr|i|S| 5} | t|||} t| } | rp|j di} | || dt!|| t"j} | d| i| |j d<|i|cdddS#1swxYwYdS)Nrh)sentry-monitor-slugsentry-monitor-config) monitor_slugrrsentry-monitor-check-in-id)rRr.rJr rirjr3rr9rset_new_propagation_contextrboolrpopror r IN_PROGRESS)rLrM schedulerschedule_entryrRrrrurvrris_supported_schedulerh check_in_idoriginal_apply_entrys r=sentry_apply_entryz3_patch_beat_apply_entry..sentry_apply_entrys$(! >m(1%* k))*;<<  ''888 8 L+*H I I 9''888 8  " " 9e  - - / / /0#|TTN$($8$8 !$ <(044YCC/;1?.!-#1(4  +,,,+,,,'(((((r?c "tjd|t|}d|vrdS|di}t |d}t |d||dt |z tjdS)Nzcelery_task_success %srrrgrrrrdurationr) rdebugrrprr rbr OKsenderrMrhrstart_timestamp_ss r=rrs L)62226""GG++[[!8"==Ng&HIJJ23%89)++.?? r?c "tjd|t|}d|vrdS|di}t |d}t |d||dt |z tjdS)Nzcelery_task_failure %srrrgrr rrrrprr rbr ERRORrs r=rrs L)62226""GG++[[!8"==Ng&HIJJ23%89)++.??" r?c "tjd|t|}d|vrdS|di}t |d}t |d||dt |z tjdS)Nzcelery_task_retry %srrrgrrrrs r=rr$s L'0006""GG++[[!8"==Ng&HIJJ23%89)++.??" r?r6)V __future__rrrasentry_sdk.apirsentry_sdk.constsrsentry_sdk._compatrsentry_sdk._functoolsrsentry_sdk.cronsr r sentry_sdk.hubr sentry_sdk.integrationsr r sentry_sdk.integrations.loggingrsentry_sdk.tracingrrsentry_sdk._typesrsentry_sdk.utilsrrrrtypingrrrrrrrrrrr r!r"r4r$rPr%r&rQr' celery.beatr(celery.exceptionsr)r*r+r,celery.schedulesr-r.celery.signalsr/r0r1 ImportErrorrr3rbrVrIrFrrrrXrrrr:r;rrrr_r?r=rsQ&&&&&& )))))) &&&&&&'''''';;;;;;;;========999999KKKKKKKK++++++ /FFFFFFFFFFFF8CH-...A/000000########000000%%%%%% 32222222 /// ,- . ../#(!8=+=+=+=+=+ =+=+=+@???D444n.:(((8...&&&,   $$$"...b1/1/1/h)))**s 18C**C;