From e6e1d59d9f461320a8b4945a87c6f14dfadd1498 Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Wed, 8 Mar 2023 20:24:51 +0100 Subject: [PATCH 1/2] feat(core): Emit hooks for transaction start/finish --- packages/core/src/tracing/hubextensions.ts | 6 ++++++ packages/core/src/tracing/transaction.ts | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/core/src/tracing/hubextensions.ts b/packages/core/src/tracing/hubextensions.ts index 17d847e5e8d8..5009164097b4 100644 --- a/packages/core/src/tracing/hubextensions.ts +++ b/packages/core/src/tracing/hubextensions.ts @@ -186,6 +186,9 @@ The transaction will not be sampled. Please use the ${configInstrumenter} instru if (transaction.sampled) { transaction.initSpanRecorder(options._experiments && (options._experiments.maxSpans as number)); } + if (client) { + client.emit('startTransaction', transaction); + } return transaction; } @@ -213,6 +216,9 @@ export function startIdleTransaction( if (transaction.sampled) { transaction.initSpanRecorder(options._experiments && (options._experiments.maxSpans as number)); } + if (client && client.emit) { + client.emit('startTransaction', transaction); + } return transaction; } diff --git a/packages/core/src/tracing/transaction.ts b/packages/core/src/tracing/transaction.ts index 440a8b69b41d..eba498b7e654 100644 --- a/packages/core/src/tracing/transaction.ts +++ b/packages/core/src/tracing/transaction.ts @@ -141,11 +141,15 @@ export class Transaction extends SpanClass implements TransactionInterface { // just sets the end timestamp super.finish(endTimestamp); + const client = this._hub.getClient(); + if (client && client.emit) { + client.emit('finishTransaction', this); + } + if (this.sampled !== true) { // At this point if `sampled !== true` we want to discard the transaction. __DEBUG_BUILD__ && logger.log('[Tracing] Discarding transaction because its trace was not chosen to be sampled.'); - const client = this._hub.getClient(); if (client) { client.recordDroppedEvent('sample_rate', 'transaction'); } From 62181ed2e4a4c9c001bf98caa1acf4b09a87839c Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Wed, 8 Mar 2023 21:05:53 +0100 Subject: [PATCH 2/2] fix types --- packages/core/src/tracing/hubextensions.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/tracing/hubextensions.ts b/packages/core/src/tracing/hubextensions.ts index 5009164097b4..9624df4b709e 100644 --- a/packages/core/src/tracing/hubextensions.ts +++ b/packages/core/src/tracing/hubextensions.ts @@ -186,7 +186,7 @@ The transaction will not be sampled. Please use the ${configInstrumenter} instru if (transaction.sampled) { transaction.initSpanRecorder(options._experiments && (options._experiments.maxSpans as number)); } - if (client) { + if (client && client.emit) { client.emit('startTransaction', transaction); } return transaction;