Skip to content

Commit fc4f653

Browse files
committed
extract transaction name creation logic
1 parent 65422e6 commit fc4f653

File tree

2 files changed

+21
-10
lines changed

2 files changed

+21
-10
lines changed

packages/remix/src/utils/instrumentServer.ts

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -300,9 +300,8 @@ function matchServerRoutes(
300300
*/
301301
export function startRequestHandlerTransaction(
302302
hub: Hub,
303-
url: URL,
304-
routes: ServerRoute[],
305-
pkg: ReactRouterDomPkg | undefined,
303+
name: string,
304+
source: TransactionSource,
306305
request: {
307306
headers: {
308307
'sentry-trace': string;
@@ -315,11 +314,6 @@ export function startRequestHandlerTransaction(
315314
const traceparentData = extractTraceparentData(request.headers['sentry-trace']);
316315
const baggage = parseBaggageSetMutability(request.headers.baggage, traceparentData);
317316

318-
const matches = matchServerRoutes(routes, url.pathname, pkg);
319-
const match = matches && getRequestMatch(url, matches);
320-
const [name, source]: [string, TransactionSource] =
321-
match === null ? [url.pathname, 'url'] : [match.route.id, 'route'];
322-
323317
const transaction = hub.startTransaction({
324318
name,
325319
op: 'http.server',
@@ -338,6 +332,19 @@ export function startRequestHandlerTransaction(
338332
return transaction;
339333
}
340334

335+
/**
336+
* Get transaction name from routes and url
337+
*/
338+
export function getTransactionName(
339+
routes: ServerRoute[],
340+
url: URL,
341+
pkg?: ReactRouterDomPkg,
342+
): [string, TransactionSource] {
343+
const matches = matchServerRoutes(routes, url.pathname, pkg);
344+
const match = matches && getRequestMatch(url, matches);
345+
return match === null ? [url.pathname, 'url'] : [match.route.id, 'route'];
346+
}
347+
341348
function wrapRequestHandler(origRequestHandler: RequestHandler, build: ServerBuild): RequestHandler {
342349
const routes = createRoutes(build.routes);
343350
const pkg = loadModule<ReactRouterDomPkg>('react-router-dom');
@@ -352,7 +359,9 @@ function wrapRequestHandler(origRequestHandler: RequestHandler, build: ServerBui
352359
}
353360

354361
const url = new URL(request.url);
355-
const transaction = startRequestHandlerTransaction(hub, url, routes, pkg, {
362+
const [name, source] = getTransactionName(routes, url, pkg);
363+
364+
const transaction = startRequestHandlerTransaction(hub, name, source, {
356365
headers: {
357366
'sentry-trace': request.headers.get('sentry-trace') || '',
358367
baggage: request.headers.get('baggage') || '',

packages/remix/src/utils/serverAdapters/express.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { extractRequestData, isString, loadModule, logger } from '@sentry/utils'
66

77
import {
88
createRoutes,
9+
getTransactionName,
910
instrumentBuild,
1011
isRequestHandlerWrapped,
1112
startRequestHandlerTransaction,
@@ -51,7 +52,8 @@ function wrapExpressRequestHandler(
5152
}
5253

5354
const url = new URL(request.url);
54-
const transaction = startRequestHandlerTransaction(hub, url, routes, pkg, {
55+
const [name, source] = getTransactionName(routes, url, pkg);
56+
const transaction = startRequestHandlerTransaction(hub, name, source, {
5557
headers: {
5658
'sentry-trace': (req.headers && isString(req.headers['sentry-trace']) && req.headers['sentry-trace']) || '',
5759
baggage: (req.headers && isString(req.headers.baggage) && req.headers.baggage) || '',

0 commit comments

Comments
 (0)