From 024919b7c3e5db0ab950a7c0c774578e59ecfc89 Mon Sep 17 00:00:00 2001 From: Alberto Leal Date: Thu, 21 May 2020 14:20:06 -0400 Subject: [PATCH 1/3] handle blanks --- src/sentry/static/sentry/app/utils/apm.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sentry/static/sentry/app/utils/apm.tsx b/src/sentry/static/sentry/app/utils/apm.tsx index cd2b02b0c9cf42..2dffa421078517 100644 --- a/src/sentry/static/sentry/app/utils/apm.tsx +++ b/src/sentry/static/sentry/app/utils/apm.tsx @@ -31,7 +31,7 @@ export async function normalizeTransactionName( let prevTransactionName = event.transaction; - if (typeof prevTransactionName === 'string') { + if (typeof prevTransactionName === 'string' && prevTransactionName.length > 0) { if (prevTransactionName.startsWith('/')) { return event; } From 0d98f5f26210ca2b80e56a62315c74d76cbd3262 Mon Sep 17 00:00:00 2001 From: Alberto Leal Date: Thu, 21 May 2020 14:20:58 -0400 Subject: [PATCH 2/3] if routePath is either blank or /*, then fallback to window.location.pathname --- src/sentry/static/sentry/app/utils/apm.tsx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/sentry/static/sentry/app/utils/apm.tsx b/src/sentry/static/sentry/app/utils/apm.tsx index 2dffa421078517..0cca6c4b9958ee 100644 --- a/src/sentry/static/sentry/app/utils/apm.tsx +++ b/src/sentry/static/sentry/app/utils/apm.tsx @@ -58,6 +58,11 @@ export async function normalizeTransactionName( set(event, ['tags', 'transaction.rename.router-match'], 'success'); const routePath = getRouteStringFromRoutes(renderProps.routes ?? []); + + if (routePath.length === 0 || routePath === '/*') { + return resolve(window.location.pathname); + } + return resolve(routePath); } ); From 10d9892f77c7e8396b6370a5b9a09af831bdb6e1 Mon Sep 17 00:00:00 2001 From: Alberto Leal Date: Thu, 21 May 2020 14:21:44 -0400 Subject: [PATCH 3/3] if the react-router route matching emits an error, fallback to window.location.pathname --- src/sentry/static/sentry/app/utils/apm.tsx | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/sentry/static/sentry/app/utils/apm.tsx b/src/sentry/static/sentry/app/utils/apm.tsx index 0cca6c4b9958ee..fd150e526cc5b7 100644 --- a/src/sentry/static/sentry/app/utils/apm.tsx +++ b/src/sentry/static/sentry/app/utils/apm.tsx @@ -43,7 +43,7 @@ export async function normalizeTransactionName( prevTransactionName = window.location.pathname; } - const transactionName: string | undefined = await new Promise(function(resolve) { + const transactionName: string = await new Promise(function(resolve) { Router.match( { routes: appRoutes, @@ -52,7 +52,7 @@ export async function normalizeTransactionName( (error, _redirectLocation, renderProps) => { if (error) { set(event, ['tags', 'transaction.rename.router-match'], 'error'); - return resolve(undefined); + return resolve(window.location.pathname); } set(event, ['tags', 'transaction.rename.router-match'], 'success'); @@ -68,14 +68,12 @@ export async function normalizeTransactionName( ); }); - if (typeof transactionName === 'string' && transactionName.length) { - event.transaction = transactionName; + event.transaction = transactionName; - set(event, ['tags', 'transaction.rename.before'], prevTransactionName); - set(event, ['tags', 'transaction.rename.after'], transactionName); + set(event, ['tags', 'transaction.rename.before'], prevTransactionName); + set(event, ['tags', 'transaction.rename.after'], transactionName); - set(event, ['tags', 'ui.route'], transactionName); - } + set(event, ['tags', 'ui.route'], transactionName); return event; }