@@ -448,6 +448,7 @@ def _prepare_event(
448448
449449 if scope is not None :
450450 is_transaction = event .get ("type" ) == "transaction"
451+ spans_before = len (event .get ("spans" , []))
451452 event_ = scope .apply_to_event (event , hint , self .options )
452453
453454 # one of the event/error processors returned None
@@ -457,10 +458,22 @@ def _prepare_event(
457458 "event_processor" ,
458459 data_category = ("transaction" if is_transaction else "error" ),
459460 )
461+ if is_transaction :
462+ self .transport .record_lost_event (
463+ "event_processor" ,
464+ data_category = "span" ,
465+ quantity = spans_before + 1 , # +1 for the transaction itself
466+ )
460467 return None
461468
462469 event = event_
463470
471+ spans_delta = spans_before - len (event .get ("spans" , []))
472+ if is_transaction and spans_delta > 0 and self .transport is not None :
473+ self .transport .record_lost_event (
474+ "event_processor" , data_category = "span" , quantity = spans_delta
475+ )
476+
464477 if (
465478 self .options ["attach_stacktrace" ]
466479 and "exception" not in event
@@ -541,14 +554,27 @@ def _prepare_event(
541554 and event .get ("type" ) == "transaction"
542555 ):
543556 new_event = None
557+ spans_before = len (event .get ("spans" , []))
544558 with capture_internal_exceptions ():
545559 new_event = before_send_transaction (event , hint or {})
546560 if new_event is None :
547561 logger .info ("before send transaction dropped event" )
548562 if self .transport :
549563 self .transport .record_lost_event (
550- "before_send" , data_category = "transaction"
564+ reason = "before_send" , data_category = "transaction"
565+ )
566+ self .transport .record_lost_event (
567+ reason = "before_send" ,
568+ data_category = "span" ,
569+ quantity = spans_before + 1 , # +1 for the transaction itself
551570 )
571+ else :
572+ spans_delta = spans_before - len (new_event .get ("spans" , []))
573+ if spans_delta > 0 and self .transport is not None :
574+ self .transport .record_lost_event (
575+ reason = "before_send" , data_category = "span" , quantity = spans_delta
576+ )
577+
552578 event = new_event # type: ignore
553579
554580 return event
0 commit comments