@@ -448,6 +448,7 @@ def _prepare_event(
448
448
449
449
if scope is not None :
450
450
is_transaction = event .get ("type" ) == "transaction"
451
+ spans_before = len (event .get ("spans" , []))
451
452
event_ = scope .apply_to_event (event , hint , self .options )
452
453
453
454
# one of the event/error processors returned None
@@ -457,10 +458,22 @@ def _prepare_event(
457
458
"event_processor" ,
458
459
data_category = ("transaction" if is_transaction else "error" ),
459
460
)
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
+ )
460
467
return None
461
468
462
469
event = event_
463
470
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
+
464
477
if (
465
478
self .options ["attach_stacktrace" ]
466
479
and "exception" not in event
@@ -541,14 +554,27 @@ def _prepare_event(
541
554
and event .get ("type" ) == "transaction"
542
555
):
543
556
new_event = None
557
+ spans_before = len (event .get ("spans" , []))
544
558
with capture_internal_exceptions ():
545
559
new_event = before_send_transaction (event , hint or {})
546
560
if new_event is None :
547
561
logger .info ("before send transaction dropped event" )
548
562
if self .transport :
549
563
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
551
570
)
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
+
552
578
event = new_event # type: ignore
553
579
554
580
return event
0 commit comments