diff --git a/public/app/app.ts b/public/app/app.ts index 936b7b5293a..c824f6c4db1 100644 --- a/public/app/app.ts +++ b/public/app/app.ts @@ -317,6 +317,15 @@ function initEchoSrv() { } if (config.grafanaJavascriptAgent.enabled) { + // Ignore Rudderstack URLs + const rudderstackUrls = [ + config.rudderstackConfigUrl, + config.rudderstackDataPlaneUrl, + config.rudderstackIntegrationsUrl, + ] + .filter(Boolean) + .map((url) => new RegExp(`${url}.*.`)); + registerEchoBackend( new GrafanaJavascriptAgentBackend({ ...config.grafanaJavascriptAgent, @@ -329,6 +338,7 @@ function initEchoSrv() { id: String(config.bootData.user?.id), email: config.bootData.user?.email, }, + ignoreUrls: rudderstackUrls, }) ); } diff --git a/public/app/core/services/echo/backends/grafana-javascript-agent/GrafanaJavascriptAgentBackend.test.ts b/public/app/core/services/echo/backends/grafana-javascript-agent/GrafanaJavascriptAgentBackend.test.ts index 7cca68e9ee8..2be4f5f6502 100644 --- a/public/app/core/services/echo/backends/grafana-javascript-agent/GrafanaJavascriptAgentBackend.test.ts +++ b/public/app/core/services/echo/backends/grafana-javascript-agent/GrafanaJavascriptAgentBackend.test.ts @@ -76,6 +76,7 @@ describe('GrafanaJavascriptAgentEchoBackend', () => { id: '504', orgId: 1, }, + ignoreUrls: [], }; it('will set up FetchTransport if customEndpoint is provided', () => { diff --git a/public/app/core/services/echo/backends/grafana-javascript-agent/GrafanaJavascriptAgentBackend.ts b/public/app/core/services/echo/backends/grafana-javascript-agent/GrafanaJavascriptAgentBackend.ts index 099ea2d4370..9540d1cee05 100644 --- a/public/app/core/services/echo/backends/grafana-javascript-agent/GrafanaJavascriptAgentBackend.ts +++ b/public/app/core/services/echo/backends/grafana-javascript-agent/GrafanaJavascriptAgentBackend.ts @@ -34,8 +34,11 @@ export interface GrafanaJavascriptAgentBackendOptions extends BrowserConfig { consoleInstrumentalizationEnabled: boolean; webVitalsInstrumentalizationEnabled: boolean; tracingInstrumentalizationEnabled: boolean; + ignoreUrls: RegExp[]; } +const TRACKING_URLS = [/.*.google-analytics.com*.*/, /.*.googletagmanager.com*.*/, /frontend-metrics/]; + export class GrafanaJavascriptAgentBackend implements EchoBackend { @@ -87,7 +90,7 @@ export class GrafanaJavascriptAgentBackend 'ResizeObserver loop completed', 'Non-Error exception captured with keys', ], - ignoreUrls: [new RegExp(`/*${options.customEndpoint}/`), /frontend-metrics/], + ignoreUrls: [new RegExp(`/*${options.customEndpoint}/`), ...TRACKING_URLS, ...options.ignoreUrls], sessionTracking: { persistent: true, },