Skip to content

Commit c1d54ff

Browse files
authored
ref(core): Don't start transaction for trpc middleware (#11697)
1 parent 1cd6877 commit c1d54ff

File tree

2 files changed

+37
-11
lines changed
  • dev-packages/e2e-tests/test-applications/node-express-app/tests
  • packages/core/src

2 files changed

+37
-11
lines changed

dev-packages/e2e-tests/test-applications/node-express-app/tests/trpc.test.ts

+37-10
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,12 @@ import { waitForError, waitForTransaction } from '@sentry-internal/event-proxy-s
33
import { createTRPCProxyClient, httpBatchLink } from '@trpc/client';
44
import type { AppRouter } from '../src/app';
55

6-
const authToken = process.env.E2E_TEST_AUTH_TOKEN;
7-
const sentryTestOrgSlug = process.env.E2E_TEST_SENTRY_ORG_SLUG;
8-
const sentryTestProject = process.env.E2E_TEST_SENTRY_TEST_PROJECT;
9-
const EVENT_POLLING_TIMEOUT = 90_000;
10-
11-
test('Should record transaction for trpc query', async ({ baseURL }) => {
6+
test('Should record span for trpc query', async ({ baseURL }) => {
127
const transactionEventPromise = waitForTransaction('node-express-app', transactionEvent => {
13-
return transactionEvent.transaction === 'trpc/getSomething';
8+
return (
9+
transactionEvent.transaction === 'GET /trpc' &&
10+
!!transactionEvent.spans?.find(span => span.description === 'trpc/getSomething')
11+
);
1412
});
1513

1614
const trpcClient = createTRPCProxyClient<AppRouter>({
@@ -26,6 +24,16 @@ test('Should record transaction for trpc query', async ({ baseURL }) => {
2624
await expect(transactionEventPromise).resolves.toBeDefined();
2725
const transaction = await transactionEventPromise;
2826

27+
expect(transaction.spans).toContainEqual(
28+
expect.objectContaining({
29+
data: expect.objectContaining({
30+
'sentry.op': 'rpc.server',
31+
'sentry.origin': 'auto.rpc.trpc',
32+
}),
33+
description: `trpc/getSomething`,
34+
}),
35+
);
36+
2937
expect(transaction.contexts?.trpc).toMatchObject({
3038
procedure_type: 'query',
3139
input: 'foobar',
@@ -34,7 +42,10 @@ test('Should record transaction for trpc query', async ({ baseURL }) => {
3442

3543
test('Should record transaction for trpc mutation', async ({ baseURL }) => {
3644
const transactionEventPromise = waitForTransaction('node-express-app', transactionEvent => {
37-
return transactionEvent.transaction === 'trpc/createSomething';
45+
return (
46+
transactionEvent.transaction === 'POST /trpc' &&
47+
!!transactionEvent.spans?.find(span => span.description === 'trpc/createSomething')
48+
);
3849
});
3950

4051
const trpcClient = createTRPCProxyClient<AppRouter>({
@@ -50,14 +61,27 @@ test('Should record transaction for trpc mutation', async ({ baseURL }) => {
5061
await expect(transactionEventPromise).resolves.toBeDefined();
5162
const transaction = await transactionEventPromise;
5263

64+
expect(transaction.spans).toContainEqual(
65+
expect.objectContaining({
66+
data: expect.objectContaining({
67+
'sentry.op': 'rpc.server',
68+
'sentry.origin': 'auto.rpc.trpc',
69+
}),
70+
description: `trpc/createSomething`,
71+
}),
72+
);
73+
5374
expect(transaction.contexts?.trpc).toMatchObject({
5475
procedure_type: 'mutation',
5576
});
5677
});
5778

5879
test('Should record transaction and error for a crashing trpc handler', async ({ baseURL }) => {
5980
const transactionEventPromise = waitForTransaction('node-express-app', transactionEvent => {
60-
return transactionEvent.transaction === 'trpc/crashSomething';
81+
return (
82+
transactionEvent.transaction === 'POST /trpc' &&
83+
!!transactionEvent.spans?.find(span => span.description === 'trpc/crashSomething')
84+
);
6185
});
6286

6387
const errorEventPromise = waitForError('node-express-app', errorEvent => {
@@ -80,7 +104,10 @@ test('Should record transaction and error for a crashing trpc handler', async ({
80104

81105
test('Should record transaction and error for a trpc handler that returns a status code', async ({ baseURL }) => {
82106
const transactionEventPromise = waitForTransaction('node-express-app', transactionEvent => {
83-
return transactionEvent.transaction === 'trpc/dontFindSomething';
107+
return (
108+
transactionEvent.transaction === 'POST /trpc' &&
109+
!!transactionEvent.spans?.find(span => span.description === 'trpc/dontFindSomething')
110+
);
84111
});
85112

86113
const errorEventPromise = waitForError('node-express-app', errorEvent => {

packages/core/src/trpc.ts

-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ export function trpcMiddleware(options: SentryTrpcMiddlewareOptions = {}) {
5555
{
5656
name: `trpc/${path}`,
5757
op: 'rpc.server',
58-
forceTransaction: true,
5958
attributes: {
6059
[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'route',
6160
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.rpc.trpc',

0 commit comments

Comments
 (0)