Skip to content

Commit 9418bf0

Browse files
committed
fix: defaultRoutingInstrumentation
1 parent 5717c15 commit 9418bf0

File tree

1 file changed

+18
-5
lines changed

1 file changed

+18
-5
lines changed

packages/tracing/src/browser/browsertracing.ts

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,13 @@ export interface BrowserTracingOptions {
8585
// TODO: Should this be an option, or a static class variable and passed
8686
// in and we use something like `BrowserTracing.addRoutingProcessor()`
8787
routingInstrumentationProcessors: routingInstrumentationProcessor[];
88+
89+
/**
90+
* Flag to enable default routing instrumentation.
91+
*
92+
* Default: true
93+
*/
94+
defaultRoutingInstrumentation: boolean;
8895
}
8996

9097
/**
@@ -120,6 +127,7 @@ export class BrowserTracing implements Integration {
120127
debug: {
121128
writeAsBreadcrumbs: false,
122129
},
130+
defaultRoutingInstrumentation: true,
123131
idleTimeout: DEFAULT_IDLE_TIMEOUT,
124132
routingInstrumentationProcessors: [],
125133
startTransactionOnLocationChange: true,
@@ -143,15 +151,17 @@ export class BrowserTracing implements Integration {
143151

144152
// TODO: is it fine that this is mutable operation? Could also do = [...routingInstr, setHeaderContext]?
145153
BrowserTracing.options.routingInstrumentationProcessors.push(setHeaderContext);
146-
BrowserTracing._initRoutingInstrumentation();
154+
if (BrowserTracing.options.defaultRoutingInstrumentation) {
155+
BrowserTracing._initRoutingInstrumentation();
156+
}
147157
}
148158

149159
/** Start routing instrumentation */
150160
private static _initRoutingInstrumentation(): void {
151161
const { startTransactionOnPageLoad, startTransactionOnLocationChange } = BrowserTracing.options;
152162

153163
if (startTransactionOnPageLoad) {
154-
BrowserTracing._activeTransaction = BrowserTracing._createRouteTransaction('pageload');
164+
BrowserTracing._activeTransaction = BrowserTracing.createRouteTransaction('pageload');
155165
}
156166

157167
let startingUrl: string | undefined = global.location.href;
@@ -178,15 +188,18 @@ export class BrowserTracing implements Integration {
178188
// are navigating to a new page.
179189
BrowserTracing._activeTransaction.finishIdleTransaction();
180190
}
181-
BrowserTracing._activeTransaction = BrowserTracing._createRouteTransaction('navigation');
191+
BrowserTracing._activeTransaction = BrowserTracing.createRouteTransaction('navigation');
182192
}
183193
},
184194
type: 'history',
185195
});
186196
}
187197

188198
/** Create pageload/navigation idle transaction. */
189-
private static _createRouteTransaction(op: 'pageload' | 'navigation'): IdleTransaction | undefined {
199+
public static createRouteTransaction(
200+
op: 'pageload' | 'navigation',
201+
ctx?: TransactionContext,
202+
): IdleTransaction | undefined {
190203
if (!BrowserTracing._getCurrentHub) {
191204
return undefined;
192205
}
@@ -199,7 +212,7 @@ export class BrowserTracing implements Integration {
199212
return undefined;
200213
}
201214

202-
let context: TransactionContext = { name, op };
215+
let context: TransactionContext = { name, op, ...ctx };
203216
if (routingInstrumentationProcessors) {
204217
for (const processor of routingInstrumentationProcessors) {
205218
context = processor(context);

0 commit comments

Comments
 (0)