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 @@ -579,6 +579,14 @@ export abstract class Client<O extends ClientOptions = ClientOptions> {
579579 */
580580 public on ( hook : 'spanEnd' , callback : ( span : Span ) => void ) : ( ) => void ;
581581
582+ /**
583+ * Register a callback for after a span is ended.
584+ * NOTE: The span cannot be mutated anymore in this callback.
585+ * Receives the span as argument.
586+ * @returns {() => void } A function that, when executed, removes the registered callback.
587+ */
588+ public on ( hook : 'segmentSpanEnd' , callback : ( span : Span ) => void ) : ( ) => void ;
589+
582590 /**
583591 * Register a callback for when an idle span is allowed to auto-finish.
584592 * @returns {() => void } A function that, when executed, removes the registered callback.
@@ -826,6 +834,9 @@ export abstract class Client<O extends ClientOptions = ClientOptions> {
826834 /** Fire a hook whenever a span ends. */
827835 public emit ( hook : 'spanEnd' , span : Span ) : void ;
828836
837+ /** Fire a hook whenever a segment span ends. */
838+ public emit ( hook : 'segmentSpanEnd' , span : Span ) : void ;
839+
829840 /**
830841 * Fire a hook indicating that an idle span is allowed to auto finish.
831842 */
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 * @returns A new metric that will be sent | null.
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