Skip to content

Commit 2fa28d7

Browse files
authored
Merge pull request #33 from getsentry/v8--nextjs-13_2_0
feat(nextjs): Upgrade sentry to v8
2 parents 3d31ab8 + 7cff7e6 commit 2fa28d7

17 files changed

+5057
-6746
lines changed

apps/nextjs-13_2_0/instrumentation.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
export async function register() {
2+
if (process.env.NEXT_RUNTIME === 'nodejs') {
3+
await import('./sentry.server.config');
4+
}
5+
6+
if (process.env.NEXT_RUNTIME === 'edge') {
7+
await import('./sentry.edge.config');
8+
}
9+
}

apps/nextjs-13_2_0/next.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ const { withSentryConfig } = require('@sentry/nextjs');
44
const nextConfig = {
55
experimental: {
66
appDir: true,
7+
instrumentationHook: true,
78
},
89
};
910

apps/nextjs-13_2_0/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"lint": "next lint"
1010
},
1111
"dependencies": {
12-
"@sentry/nextjs": "7.110.1",
12+
"@sentry/nextjs": "8.9.2",
1313
"@types/node": "20.12.7",
1414
"@types/react": "18.2.79",
1515
"@types/react-dom": "18.2.25",

payload-files/nextjs-13_2_0/_api_test-error--event.json

Lines changed: 565 additions & 926 deletions
Large diffs are not rendered by default.

payload-files/nextjs-13_2_0/_api_test-error--transaction.json

Lines changed: 83 additions & 123 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,16 @@
44
"event_id": "[[ID1]]",
55
"sdk": {
66
"name": "sentry.javascript.nextjs",
7-
"version": "7.110.1"
7+
"version": "8.0.0-beta.1"
88
},
99
"sent_at": "[[ISODateString]]",
1010
"trace": {
1111
"environment": "qa",
1212
"public_key": "[[publicKey]]",
13-
"trace_id": "[[ID2]]"
13+
"sample_rate": "1",
14+
"sampled": "true",
15+
"trace_id": "[[ID2]]",
16+
"transaction": "GET /api/test-error/route"
1417
}
1518
},
1619
{
@@ -21,46 +24,20 @@
2124
{
2225
"category": "console",
2326
"level": "log",
24-
"message": "\u001b[36mwait\u001b[39m - compiling /api/test-success/route (client and server)...",
27+
"message": " \u001b[32m\u001b[1m✓\u001b[22m\u001b[39m Ready in 3.9s",
2528
"timestamp": "[[timestamp]]"
2629
},
2730
{
2831
"category": "console",
29-
"level": "log",
30-
"message": "\u001b[35mevent\u001b[39m - compiled client and server successfully in 255 ms (1321 modules)",
32+
"level": "warning",
33+
"message": " \u001b[33m\u001b[1m⚠\u001b[22m\u001b[39m ../../node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js\nCritical dependency: the request of a dependency is an expression\n\nImport trace for requested module:\n../../node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js\n../../node_modules/@opentelemetry/instrumentation/build/esm/platform/node/index.js\n../../node_modules/@opentelemetry/instrumentation/build/esm/platform/index.js\n../../node_modules/@opentelemetry/instrumentation/build/esm/index.js\n../../node_modules/@sentry/nextjs/node_modules/@sentry/node/cjs/index.js\n../../node_modules/@sentry/nextjs/cjs/index.server.js\n\n../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js\nCritical dependency: the request of a dependency is an expression\n\nImport trace for requested module:\n../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js\n../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/index.js\n../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/index.js\n../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/index.js\n../../node_modules/@prisma/instrumentation/dist/chunk-L6V5ZEAH.js\n../../node_modules/@prisma/instrumentation/dist/index.js\n../../node_modules/@sentry/nextjs/node_modules/@sentry/node/cjs/index.js\n../../node_modules/@sentry/nextjs/cjs/index.server.js",
3134
"timestamp": "[[timestamp]]"
3235
},
3336
{
3437
"category": "console",
35-
"level": "log",
36-
"message": "\u001b[36mwait\u001b[39m - compiling /api/test-error/route (client and server)...",
38+
"level": "warning",
39+
"message": " \u001b[33m\u001b[1m⚠\u001b[22m\u001b[39m ../../node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js\nCritical dependency: the request of a dependency is an expression\n\nImport trace for requested module:\n../../node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js\n../../node_modules/@opentelemetry/instrumentation/build/esm/platform/node/index.js\n../../node_modules/@opentelemetry/instrumentation/build/esm/platform/index.js\n../../node_modules/@opentelemetry/instrumentation/build/esm/index.js\n../../node_modules/@sentry/nextjs/node_modules/@sentry/node/cjs/index.js\n../../node_modules/@sentry/nextjs/cjs/index.server.js\n\n../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js\nCritical dependency: the request of a dependency is an expression\n\nImport trace for requested module:\n../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js\n../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/index.js\n../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/index.js\n../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/index.js\n../../node_modules/@prisma/instrumentation/dist/chunk-L6V5ZEAH.js\n../../node_modules/@prisma/instrumentation/dist/index.js\n../../node_modules/@sentry/nextjs/node_modules/@sentry/node/cjs/index.js\n../../node_modules/@sentry/nextjs/cjs/index.server.js\n\n../../node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js\nCritical dependency: the request of a dependency is an expression\n\nImport trace for requested module:\n../../node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js\n../../node_modules/@opentelemetry/instrumentation/build/esm/platform/node/index.js\n../../node_modules/@opentelemetry/instrumentation/build/esm/platform/index.js\n../../node_modules/@opentelemetry/instrumentation/build/esm/index.js\n../../node_modules/@sentry/nextjs/node_modules/@sentry/node/cjs/index.js\n../../node_modules/@sentry/nextjs/cjs/index.server.js\n./app/api/test-success/route.ts\n\n../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js\nCritical dependency: the request of a dependency is an expression\n\nImport trace for requested module:\n../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js\n../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/index.js\n../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/index.js\n../../node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/index.js\n../../node_modules/@prisma/instrumentation/dist/chunk-L6V5ZEAH.js\n../../node_modules/@prisma/instrumentation/dist/index.js\n../../node_modules/@sentry/nextjs/node_modules/@sentry/node/cjs/index.js\n../../node_modules/@sentry/nextjs/cjs/index.server.js\n./app/api/test-success/route.ts",
3740
"timestamp": "[[timestamp]]"
38-
},
39-
{
40-
"category": "console",
41-
"level": "log",
42-
"message": "\u001b[35mevent\u001b[39m - compiled successfully in 91 ms (502 modules)",
43-
"timestamp": "[[timestamp]]"
44-
},
45-
{
46-
"category": "http",
47-
"data": {
48-
"method": "GET",
49-
"url": "http://localhost:3000/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+This+is+an+error&file=webpack-internal%3A%2F%2F%2F%28sc_server%29%2F.%2Fapp%2Fapi%2Ftest-error%2Froute.ts&methodName=GET%241&arguments=&lineNumber=23&column=86"
50-
},
51-
"level": "error",
52-
"timestamp": "[[timestamp]]",
53-
"type": "http"
54-
},
55-
{
56-
"category": "http",
57-
"data": {
58-
"method": "GET",
59-
"url": "http://localhost:3000/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+This+is+an+error&file=webpack-internal%3A%2F%2F%2F%28sc_server%29%2F.%2Fapp%2Fapi%2Ftest-error%2Froute.ts&methodName=Object.apply&arguments=&lineNumber=65&column=10"
60-
},
61-
"level": "error",
62-
"timestamp": "[[timestamp]]",
63-
"type": "http"
6441
}
6542
],
6643
"contexts": {
@@ -88,161 +65,144 @@
8865
"name": "macOS",
8966
"version": "14.2"
9067
},
68+
"otel": {
69+
"resource": {
70+
"service.name": "node",
71+
"service.namespace": "sentry",
72+
"service.version": "8.0.0-beta.1",
73+
"telemetry.sdk.language": "nodejs",
74+
"telemetry.sdk.name": "opentelemetry",
75+
"telemetry.sdk.version": "1.21.0"
76+
}
77+
},
9178
"runtime": {
9279
"name": "node",
9380
"version": "v20.12.1"
9481
},
9582
"trace": {
9683
"data": {
84+
"http.method": "GET",
9785
"http.response.status_code": 200,
86+
"http.route": "/api/test-error/route",
87+
"http.status_code": 200,
88+
"http.target": "/api/test-error",
89+
"next.route": "/api/test-error/route",
90+
"next.rsc": false,
91+
"next.span_name": "GET /api/test-error/route",
92+
"next.span_type": "BaseServer.handleRequest",
93+
"otel.kind": "SERVER",
9894
"sentry.op": "http.server",
9995
"sentry.origin": "auto.function.nextjs",
10096
"sentry.sample_rate": 1,
10197
"sentry.source": "route"
10298
},
10399
"op": "http.server",
104100
"origin": "auto.function.nextjs",
105-
"parent_span_id": "[[ID3]]",
106-
"span_id": "[[ID4]]",
101+
"span_id": "[[ID3]]",
107102
"status": "ok",
108-
"tags": {
109-
"http.status_code": "200"
110-
},
111103
"trace_id": "[[ID2]]"
112104
}
113105
},
114106
"environment": "qa",
115107
"event_id": "[[ID1]]",
116-
"modules": {
117-
"ansi-styles": "4.3.0",
118-
"balanced-match": "1.0.2",
119-
"brace-expansion": "2.0.1",
120-
"caniuse-lite": "1.0.30001610",
121-
"commondir": "1.0.1",
122-
"estree-walker": "2.0.2",
123-
"fs.realpath": "1.0.0",
124-
"function-bind": "1.1.2",
125-
"has-flag": "4.0.0",
126-
"hasown": "2.0.2",
127-
"inflight": "1.0.6",
128-
"inherits": "2.0.4",
129-
"is-core-module": "2.13.1",
130-
"is-reference": "1.2.1",
131-
"js-tokens": "4.0.0",
132-
"localforage": "1.10.0",
133-
"loose-envify": "1.4.0",
134-
"nanoid": "3.3.7",
135-
"next": "13.2.0",
136-
"once": "1.4.0",
137-
"picocolors": "1.0.0",
138-
"picomatch": "2.3.1",
139-
"postcss": "8.4.14",
140-
"react": "18.2.0",
141-
"react-dom": "18.2.0",
142-
"resolve": "1.22.8",
143-
"rollup": "2.78.0",
144-
"scheduler": "0.23.0",
145-
"source-map-js": "1.2.0",
146-
"stacktrace-parser": "0.1.10",
147-
"styled-jsx": "5.1.1",
148-
"wrappy": "1.0.2"
149-
},
108+
"modules": {},
150109
"platform": "node",
151-
"request": {
152-
"cookies": {},
153-
"headers": {
154-
"accept": "*/*",
155-
"accept-encoding": "gzip, deflate, br",
156-
"accept-language": "en-US,en;q=0.5",
157-
"baggage": "sentry-environment=qa,sentry-public_key=3b6c388182fb435097f41d181be2b2ba,sentry-trace_id=1e639b3a12f042eb99339c3baac20ffa",
158-
"cache-control": "no-cache",
159-
"connection": "keep-alive",
160-
"host": "localhost:3030",
161-
"pragma": "no-cache",
162-
"referer": "http://localhost:3030/test-route-handlers",
163-
"sec-fetch-dest": "empty",
164-
"sec-fetch-mode": "cors",
165-
"sec-fetch-site": "same-origin",
166-
"sentry-trace": "1e639b3a12f042eb99339c3baac20ffa-84813d02de47733d",
167-
"user-agent": "[[user-agent]]"
168-
},
169-
"url": "http://localhost:3030"
170-
},
171110
"sdk": {
172111
"integrations": [
173112
"InboundFilters",
174113
"FunctionToString",
175114
"LinkedErrors",
176115
"RequestData",
177116
"Console",
178-
"Undici",
117+
"OnUncaughtException",
179118
"OnUnhandledRejection",
180119
"ContextLines",
181120
"LocalVariables",
182121
"Context",
183122
"Modules",
184-
"RewriteFrames",
185-
"Http",
186-
"OnUncaughtException"
123+
"Express",
124+
"Fastify",
125+
"Graphql",
126+
"Mongo",
127+
"Mongoose",
128+
"Mysql",
129+
"Mysql2",
130+
"Postgres",
131+
"Nest",
132+
"Hapi",
133+
"Koa",
134+
"RequestIsolationScope",
135+
"DistDirRewriteFrames"
187136
],
188137
"name": "sentry.javascript.nextjs",
189138
"packages": [
190139
{
191140
"name": "npm:@sentry/nextjs",
192-
"version": "7.110.1"
141+
"version": "8.0.0-beta.1"
193142
},
194143
{
195144
"name": "npm:@sentry/node",
196-
"version": "7.110.1"
145+
"version": "8.0.0-beta.1"
197146
}
198147
],
199-
"version": "7.110.1"
148+
"version": "8.0.0-beta.1"
200149
},
201150
"server_name": "D9M3PY4LQ7.local",
202151
"spans": [
203152
{
204153
"data": {
205-
"http.method": "GET",
206-
"http.query": "?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+This+is+an+error&file=webpack-internal%3A%2F%2F%2F%28sc_server%29%2F.%2Fapp%2Fapi%2Ftest-error%2Froute.ts&methodName=GET%241&arguments=&lineNumber=23&column=86",
207-
"sentry.op": "http.client",
208-
"sentry.origin": "auto.http.node.undici"
154+
"next.route": "/api/test-error",
155+
"next.span_name": "resolve page components",
156+
"next.span_type": "NextNodeServer.findPageComponents",
157+
"otel.kind": "INTERNAL",
158+
"sentry.origin": "manual"
209159
},
210-
"description": "GET http://localhost:3000/__nextjs_original-stack-frame",
211-
"op": "http.client",
212-
"origin": "auto.http.node.undici",
213-
"parent_span_id": "[[ID4]]",
160+
"description": "resolve page components",
161+
"origin": "manual",
162+
"parent_span_id": "[[ID3]]",
163+
"span_id": "[[ID4]]",
164+
"start_timestamp": "[[timestamp]]",
165+
"status": "ok",
166+
"timestamp": "[[timestamp]]",
167+
"trace_id": "[[ID2]]"
168+
},
169+
{
170+
"data": {
171+
"next.route": "/api/test-error/route",
172+
"next.span_name": "executing api route (app) /api/test-error/route",
173+
"next.span_type": "AppRouteRouteHandlers.runHandler",
174+
"otel.kind": "INTERNAL",
175+
"sentry.origin": "manual"
176+
},
177+
"description": "executing api route (app) /api/test-error/route",
178+
"origin": "manual",
179+
"parent_span_id": "[[ID3]]",
214180
"span_id": "[[ID5]]",
215181
"start_timestamp": "[[timestamp]]",
216-
"status": "internal_error",
182+
"status": "ok",
217183
"timestamp": "[[timestamp]]",
218184
"trace_id": "[[ID2]]"
219185
},
220186
{
221187
"data": {
222-
"http.method": "GET",
223-
"http.query": "?isServer=false&isEdgeServer=false&isAppDirectory=true&errorMessage=Error%3A+This+is+an+error&file=webpack-internal%3A%2F%2F%2F%28sc_server%29%2F.%2Fapp%2Fapi%2Ftest-error%2Froute.ts&methodName=Object.apply&arguments=&lineNumber=65&column=10",
224-
"sentry.op": "http.client",
225-
"sentry.origin": "auto.http.node.undici"
188+
"next.span_name": "start response",
189+
"next.span_type": "NextNodeServer.startResponse",
190+
"otel.kind": "INTERNAL",
191+
"sentry.origin": "manual"
226192
},
227-
"description": "GET http://localhost:3000/__nextjs_original-stack-frame",
228-
"op": "http.client",
229-
"origin": "auto.http.node.undici",
230-
"parent_span_id": "[[ID4]]",
193+
"description": "start response",
194+
"origin": "manual",
195+
"parent_span_id": "[[ID3]]",
231196
"span_id": "[[ID6]]",
232197
"start_timestamp": "[[timestamp]]",
233-
"status": "internal_error",
198+
"status": "ok",
234199
"timestamp": "[[timestamp]]",
235200
"trace_id": "[[ID2]]"
236201
}
237202
],
238203
"start_timestamp": "[[timestamp]]",
239-
"tags": {
240-
"http.status_code": "200",
241-
"runtime": "node",
242-
"transaction": "GET /api/test-error"
243-
},
244204
"timestamp": "[[timestamp]]",
245-
"transaction": "GET /api/test-error",
205+
"transaction": "GET /api/test-error/route",
246206
"transaction_info": {
247207
"source": "route"
248208
},

0 commit comments

Comments
 (0)