gh!ddlmZddlmZddlmZddlmZddlm Z e rddl m Z ddl m Z ddlm Z mZGd d eZd Zd Zd ZGddeZGddeZdS))configure_scope)Hub) Integration)capture_internal_exceptions)MYPY)Any)Optional)EventHintc(eZdZdZedZdS)SparkIntegrationsparkc"tdSN)patch_spark_context_init/builddir/build/BUILD/imunify360-venv-2.6.0/opt/imunify360/venv/lib/python3.11/site-packages/sentry_sdk/integrations/spark/spark_driver.py setup_oncezSparkIntegration.setup_onces !"""""rN)__name__ __module__ __qualname__ identifier staticmethodrrrrr r s2J##\###rr cddlm}|j}|r8|d|j|d|jdSdS)z Set properties in driver that propagate to worker processes, allowing for workers to have access to those properties. This allows worker integration to have access to app_name and application_id. r SparkContextsentry_app_namesentry_application_idN)pysparkr_active_spark_contextsetLocalPropertyappName applicationId)r spark_contexts r_set_app_propertiesr&st %$$$$$ 6M &&'8-:OPPP&& #]%@       rcddlm}|j}||t}|j|dS)zA Start java gateway server to add custom `SparkListener` r)ensure_callback_server_startedN)pyspark.java_gatewayr(_gatewaySentryListener_jscscaddSparkListener)r-r(gwlisteners r_start_sentry_listenerr1(s^ DCCCCC B""2&&&HGJJLL!!(+++++rc:ddlm}|jfd}||_dS)Nrrcg|Ri|}tjt|St t t 5}|jfd}dddn #1swxYwY|S)Nct5tjt|cdddS|did|didjd|ddjd|ddjd |dd jd |dd j |dd j |ddj |ddj |ddj |didjdddn #1swxYwY|S)Nuseridtagsz executor.idzspark.executor.idzspark-submit.deployModezspark.submit.deployModez driver.hostzspark.driver.hostz driver.portzspark.driver.port spark_versionapp_nameapplication_idmaster spark_homeextraweb_url)rrcurrentget_integrationr setdefault sparkUser_confgetversionr#r$r; sparkHomeuiWebUrl)eventhintselfs r process_eventz[patch_spark_context_init.._sentry_patched_spark_context_init..process_eventGs122WW{223CDDL$WWWWWWWW$$VR00;;D$..BRBRSSS$$VR00;;%tz~~6I'J'J&M,,1 '@AA&M,,%tz~~6I'J'J&M,,%tz~~6I'J'J&M,,_dlKKK&M,,ZFFF&M,,-=t?QRRR&M,,Xt{CCC&M,,\4>JJJ$$Wb11<._sentry_patched_spark_context_init;s!!$888888 ; & &'7 8 8 @Kt$$$    %  &    ' &                D s A??BB)r r_do_init)rrRrQs @rrr5sH$$$$$$%.,,,,,\?LrceZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZdZdZdZdZdZdZdZdZGddZdS) SparkListenercdSrr)rJapplicationEnds ronApplicationEndzSparkListener.onApplicationEndm rcdSrr)rJapplicationStarts ronApplicationStartz SparkListener.onApplicationStartqrYrcdSrr)rJblockManagerAddeds ronBlockManagerAddedz!SparkListener.onBlockManagerAddedurYrcdSrr)rJblockManagerRemoveds ronBlockManagerRemovedz#SparkListener.onBlockManagerRemovedyrYrcdSrr)rJ blockUpdateds ronBlockUpdatedzSparkListener.onBlockUpdated}rYrcdSrr)rJenvironmentUpdates ronEnvironmentUpdatez!SparkListener.onEnvironmentUpdaterYrcdSrr)rJ executorAddeds ronExecutorAddedzSparkListener.onExecutorAddedrYrcdSrr)rJexecutorBlacklisteds ronExecutorBlacklistedz#SparkListener.onExecutorBlacklistedrYrcdSrr)rJexecutorBlacklistedForStages ronExecutorBlacklistedForStagez+SparkListener.onExecutorBlacklistedForStages  rcdSrr)rJexecutorMetricsUpdates ronExecutorMetricsUpdatez%SparkListener.onExecutorMetricsUpdaterYrcdSrr)rJexecutorRemoveds ronExecutorRemovedzSparkListener.onExecutorRemovedrYrcdSrr)rJjobEnds ronJobEndzSparkListener.onJobEndrYrcdSrr)rJjobStarts r onJobStartzSparkListener.onJobStartrYrcdSrr)rJnodeBlacklisteds ronNodeBlacklistedzSparkListener.onNodeBlacklistedrYrcdSrr)rJnodeBlacklistedForStages ronNodeBlacklistedForStagez'SparkListener.onNodeBlacklistedForStagerYrcdSrr)rJnodeUnblacklisteds ronNodeUnblacklistedz!SparkListener.onNodeUnblacklistedrYrcdSrr)rJrHs r onOtherEventzSparkListener.onOtherEventrYrcdSrr)rJspeculativeTasks ronSpeculativeTaskSubmittedz(SparkListener.onSpeculativeTaskSubmittedrYrcdSrr)rJstageCompleteds ronStageCompletedzSparkListener.onStageCompletedrYrcdSrr)rJstageSubmitteds ronStageSubmittedzSparkListener.onStageSubmittedrYrcdSrr)rJtaskEnds r onTaskEndzSparkListener.onTaskEndrYrcdSrr)rJtaskGettingResults ronTaskGettingResultz!SparkListener.onTaskGettingResultrYrcdSrr)rJ taskStarts r onTaskStartzSparkListener.onTaskStartrYrcdSrr)rJ unpersistRDDs ronUnpersistRDDzSparkListener.onUnpersistRDDrYrceZdZdgZdS)SparkListener.Javaz1org.apache.spark.scheduler.SparkListenerInterfaceN)rrr implementsrrrJavarsIJ rrN)rrrrXr\r_rbrerhrkrnrqrtrwrzr}rrrrrrrrrrrrrrrrUrUls                                                                        KKKKKKKKKKrrUc,eZdZdZdZdZdZdZdS)r+c(tj|_dSr)rr?hub)rJs r__init__zSentryListener.__init__s;rcd|}|jd|t dS)NzJob {} Startedinfo)levelmessage)formatjobIdradd_breadcrumbr&)rJr|rs rr}zSentryListener.onJobStartsL"))(..*:*:;; fg>>>rcd}d}d|i}|dkr*d}d|}n)d}d|}|j|||dS) Nresult JobSucceededrz Job {} Endedwarningz Job {} Failedrrdata) jobResulttoStringrrrr)rJryrrrs rrzzSentryListener.onJobEnds&**,,55778      & & ( (N : :E$++FLLNN;;GGE%,,V\\^^<rst&&&&&&//////888888"""""".--------#####{###    , , ,4?4?4?ndKdKdKdKdKFdKdKdKN4I4I4I4I4I]4I4I4I4I4Ir