diff --git a/packages/tracing-internal/src/browser/browsertracing.ts b/packages/tracing-internal/src/browser/browsertracing.ts index 99ce53dd022b..18f2bf8795b4 100644 --- a/packages/tracing-internal/src/browser/browsertracing.ts +++ b/packages/tracing-internal/src/browser/browsertracing.ts @@ -105,6 +105,7 @@ export interface BrowserTracingOptions extends RequestInstrumentationOptions { _experiments: Partial<{ enableLongTask: boolean; enableInteractions: boolean; + interactionClassName: string; onStartRouteTransaction: (t: Transaction | undefined, ctx: TransactionContext, getCurrentHub: () => Hub) => void; }>; @@ -199,7 +200,7 @@ export class BrowserTracing implements Integration { startTrackingLongTasks(); } if (this.options._experiments.enableInteractions) { - startTrackingInteractions(); + startTrackingInteractions(this.options._experiments.interactionClassName); } } diff --git a/packages/tracing-internal/src/browser/metrics/index.ts b/packages/tracing-internal/src/browser/metrics/index.ts index 788f21aafaa4..4198255526f2 100644 --- a/packages/tracing-internal/src/browser/metrics/index.ts +++ b/packages/tracing-internal/src/browser/metrics/index.ts @@ -87,11 +87,14 @@ export function startTrackingLongTasks(): void { /** * Start tracking interaction events. */ -export function startTrackingInteractions(): void { +export function startTrackingInteractions(interactionClassName: string | undefined): void { const entryHandler = (entries: PerformanceEventTiming[]): void => { for (const entry of entries) { const transaction = getActiveTransaction() as IdleTransaction | undefined; - if (!transaction) { + if ( + !transaction || + !(interactionClassName && entry.target?.parentElement?.classList.contains(interactionClassName)) + ) { return; }