From 752d31d846fd0af9ad3d5a3331f94a7b985a6710 Mon Sep 17 00:00:00 2001 From: Hubert Sosinski Date: Thu, 27 Nov 2025 17:56:44 +0100 Subject: [PATCH] disable sending Firebase marks to Sentry --- .../middlewares/firebasePerformanceFilter.ts | 22 +++++++++++++++++++ src/libs/telemetry/middlewares/index.ts | 3 ++- 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 src/libs/telemetry/middlewares/firebasePerformanceFilter.ts diff --git a/src/libs/telemetry/middlewares/firebasePerformanceFilter.ts b/src/libs/telemetry/middlewares/firebasePerformanceFilter.ts new file mode 100644 index 000000000000..fdc17784b63b --- /dev/null +++ b/src/libs/telemetry/middlewares/firebasePerformanceFilter.ts @@ -0,0 +1,22 @@ +import type {TransactionEvent} from '@sentry/core'; +import type {TelemetryBeforeSend} from './index'; + +/** + * Drop Firebase Performance user timing spans (FB-PERF-TRACE-*) + * to avoid noisy mark/measure spans in Sentry. + */ +const firebasePerformanceFilter: TelemetryBeforeSend = (event: TransactionEvent): TransactionEvent => { + if (!event.spans) { + return event; + } + + const spans = event.spans.filter((span) => { + const description = span.description ?? ''; + + return !description.includes('FB-PERF-TRACE'); + }); + + return {...event, spans}; +}; + +export default firebasePerformanceFilter; diff --git a/src/libs/telemetry/middlewares/index.ts b/src/libs/telemetry/middlewares/index.ts index 22dd601b5419..4f4f0ae3fbf6 100644 --- a/src/libs/telemetry/middlewares/index.ts +++ b/src/libs/telemetry/middlewares/index.ts @@ -1,9 +1,10 @@ import type {EventHint, TransactionEvent} from '@sentry/core'; import emailDomainFilter from './emailDomainFilter'; +import firebasePerformanceFilter from './firebasePerformanceFilter'; type TelemetryBeforeSend = (event: TransactionEvent, hint: EventHint) => TransactionEvent | null | Promise; -const middlewares: TelemetryBeforeSend[] = [emailDomainFilter]; +const middlewares: TelemetryBeforeSend[] = [emailDomainFilter, firebasePerformanceFilter]; function processBeforeSendTransactions(event: TransactionEvent, hint: EventHint): Promise { return middlewares.reduce(