From 2ed42af9183fa19d3cb31ec54d5c3243063d394b Mon Sep 17 00:00:00 2001 From: zhifu Date: Wed, 26 Oct 2022 19:43:58 +0800 Subject: [PATCH] fix(vue tracing): Adjusted the startTransaction code location --- packages/vue/src/router.ts | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/packages/vue/src/router.ts b/packages/vue/src/router.ts index 1131943612e1..7e7f9904a521 100644 --- a/packages/vue/src/router.ts +++ b/packages/vue/src/router.ts @@ -49,16 +49,8 @@ export function vueRouterInstrumentation(router: VueRouter): VueRouterInstrument // We have to start the pageload transaction as early as possible (before the router's `beforeEach` hook // is called) to not miss child spans of the pageload. - if (startTransactionOnPageLoad) { - startTransaction({ - name: WINDOW.location.pathname, - op: 'pageload', - tags, - metadata: { - source: 'url', - }, - }); - } + + let isStartedPagLoadTransaction = false router.onError(error => captureException(error)); @@ -89,13 +81,17 @@ export function vueRouterInstrumentation(router: VueRouter): VueRouterInstrument transactionSource = 'route'; } - if (startTransactionOnPageLoad && isPageLoadNavigation) { - const pageloadTransaction = getActiveTransaction(); - if (pageloadTransaction) { - pageloadTransaction.setName(transactionName, transactionSource); - pageloadTransaction.setData('params', data.params); - pageloadTransaction.setData('query', data.query); - } + if (startTransactionOnPageLoad && !isStartedPagLoadTransaction) { + startTransaction({ + name: transactionName, + op: 'pageload', + tags, + data, + metadata: { + source: 'url', + }, + }); + isStartedPagLoadTransaction = true } if (startTransactionOnLocationChange && !isPageLoadNavigation) {