File tree Expand file tree Collapse file tree 3 files changed +24
-0
lines changed
Expand file tree Collapse file tree 3 files changed +24
-0
lines changed Original file line number Diff line number Diff line change @@ -602,6 +602,14 @@ export abstract class Client<O extends ClientOptions = ClientOptions> {
602602 */
603603 public on ( hook : 'spanEnd' , callback : ( span : Span ) => void ) : ( ) => void ;
604604
605+ /**
606+ * Register a callback for after a span is ended.
607+ * NOTE: The span cannot be mutated anymore in this callback.
608+ * Receives the span as argument.
609+ * @returns {() => void } A function that, when executed, removes the registered callback.
610+ */
611+ public on ( hook : 'segmentSpanEnd' , callback : ( span : Span ) => void ) : ( ) => void ;
612+
605613 /**
606614 * Register a callback for when an idle span is allowed to auto-finish.
607615 * @returns {() => void } A function that, when executed, removes the registered callback.
@@ -856,6 +864,9 @@ export abstract class Client<O extends ClientOptions = ClientOptions> {
856864 /** Fire a hook whenever a span ends. */
857865 public emit ( hook : 'spanEnd' , span : Span ) : void ;
858866
867+ /** Fire a hook whenever a segment span ends. */
868+ public emit ( hook : 'segmentSpanEnd' , span : Span ) : void ;
869+
859870 /**
860871 * Fire a hook indicating that an idle span is allowed to auto finish.
861872 */
Original file line number Diff line number Diff line change @@ -298,6 +298,8 @@ export class SentrySpan implements Span {
298298 return ;
299299 }
300300
301+ client ?. emit ( 'segmentSpanEnd' , this ) ;
302+
301303 // if this is a standalone span, we send it immediately
302304 if ( this . _isStandaloneSpan ) {
303305 if ( this . _sampled ) {
@@ -310,6 +312,9 @@ export class SentrySpan implements Span {
310312 }
311313 }
312314 return ;
315+ } else if ( client ?. getOptions ( ) . _experiments ?. _INTERNAL_spanStreaming ) {
316+ // nothing to do here; the spanStreaming integration will listen to the respective client hook.
317+ return ;
313318 }
314319
315320 const transactionEvent = this . _convertSpanToTransaction ( ) ;
Original file line number Diff line number Diff line change @@ -306,6 +306,14 @@ export interface ClientOptions<TO extends BaseTransportOptions = BaseTransportOp
306306 * @deprecated Use the top level`beforeSendMetric` option instead.
307307 */
308308 beforeSendMetric ?: ( metric : Metric ) => Metric | null ;
309+
310+ /**
311+ * DO NOT set this option manually.
312+ *
313+ * @internal , this option is only used and set internally.
314+ * @hidden
315+ */
316+ _INTERNAL_spanStreaming ?: boolean ;
309317 } ;
310318
311319 /**
You can’t perform that action at this time.
0 commit comments