From 176ec01dc198e190d8cc0c0afe514a3394a10f0c Mon Sep 17 00:00:00 2001 From: Povilas Versockas Date: Wed, 29 Jan 2025 07:28:56 +0200 Subject: [PATCH 1/5] fix: default span name should not include url --- packages/next/src/server/base-server.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/next/src/server/base-server.ts b/packages/next/src/server/base-server.ts index c5d109db876be..75356d0517a84 100644 --- a/packages/next/src/server/base-server.ts +++ b/packages/next/src/server/base-server.ts @@ -888,7 +888,7 @@ export default abstract class Server< return tracer.trace( BaseServerSpan.handleRequest, { - spanName: `${method} ${req.url}`, + spanName: `${method}`, kind: SpanKind.SERVER, attributes: { 'http.method': method, @@ -936,8 +936,8 @@ export default abstract class Server< } else { span.updateName( isRSCRequest - ? `RSC ${method} ${req.url}` - : `${method} ${req.url}` + ? `RSC ${method}}` + : `${method}` ) } }) From f61b75ecb6ddb758e225a18f3f0d94bba3a55f20 Mon Sep 17 00:00:00 2001 From: Povilas Versockas Date: Thu, 11 Sep 2025 17:47:34 +0300 Subject: [PATCH 2/5] fixes after review --- packages/next/src/server/base-server.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/next/src/server/base-server.ts b/packages/next/src/server/base-server.ts index 65f2687e95d75..9b535c3a5cec7 100644 --- a/packages/next/src/server/base-server.ts +++ b/packages/next/src/server/base-server.ts @@ -882,13 +882,19 @@ export default abstract class Server< ): Promise { await this.prepare() const method = req.method.toUpperCase() - + const tracer = getTracer() + + // Get the route from root span attributes for better span naming + const rootSpanAttributes = tracer.getRootSpanAttributes() + const route = rootSpanAttributes?.get('next.route') + const spanName = route ? `${method} ${route}` : `${method}` + return tracer.withPropagatedContext(req.headers, () => { return tracer.trace( BaseServerSpan.handleRequest, { - spanName: `${method}`, + spanName, kind: SpanKind.SERVER, attributes: { 'http.method': method, @@ -946,7 +952,7 @@ export default abstract class Server< } else { span.updateName( isRSCRequest - ? `RSC ${method}}` + ? `RSC ${method}` : `${method}` ) } From d992787a258877fd7f4495461c28b95f6943b40f Mon Sep 17 00:00:00 2001 From: devjiwonchoi Date: Fri, 12 Sep 2025 20:50:34 +0200 Subject: [PATCH 3/5] update templates Co-authored-by: JJ Kasper --- packages/next/src/build/templates/app-page.ts | 4 ++-- packages/next/src/build/templates/app-route.ts | 4 ++-- packages/next/src/build/templates/pages-api.ts | 4 ++-- packages/next/src/server/base-server.ts | 16 +++------------- 4 files changed, 9 insertions(+), 19 deletions(-) diff --git a/packages/next/src/build/templates/app-page.ts b/packages/next/src/build/templates/app-page.ts index a57de597a6453..8b856d5616e95 100644 --- a/packages/next/src/build/templates/app-page.ts +++ b/packages/next/src/build/templates/app-page.ts @@ -459,7 +459,7 @@ export async function handler( }) span.updateName(name) } else { - span.updateName(`${method} ${req.url}`) + span.updateName(`${method}`) } }) } @@ -1396,7 +1396,7 @@ export async function handler( tracer.trace( BaseServerSpan.handleRequest, { - spanName: `${method} ${req.url}`, + spanName: `${method}`, kind: SpanKind.SERVER, attributes: { 'http.method': method, diff --git a/packages/next/src/build/templates/app-route.ts b/packages/next/src/build/templates/app-route.ts index 57cbc4cddaaa8..25a5e915b6914 100644 --- a/packages/next/src/build/templates/app-route.ts +++ b/packages/next/src/build/templates/app-route.ts @@ -258,7 +258,7 @@ export async function handler( }) span.updateName(name) } else { - span.updateName(`${method} ${req.url}`) + span.updateName(`${method}`) } }) } @@ -454,7 +454,7 @@ export async function handler( tracer.trace( BaseServerSpan.handleRequest, { - spanName: `${method} ${req.url}`, + spanName: `${method}`, kind: SpanKind.SERVER, attributes: { 'http.method': method, diff --git a/packages/next/src/build/templates/pages-api.ts b/packages/next/src/build/templates/pages-api.ts index 95cba63ce88bc..d171866fd9b2a 100644 --- a/packages/next/src/build/templates/pages-api.ts +++ b/packages/next/src/build/templates/pages-api.ts @@ -133,7 +133,7 @@ export async function handler( }) span.updateName(name) } else { - span.updateName(`${method} ${req.url}`) + span.updateName(`${method}`) } }) @@ -146,7 +146,7 @@ export async function handler( tracer.trace( BaseServerSpan.handleRequest, { - spanName: `${method} ${req.url}`, + spanName: `${method}`, kind: SpanKind.SERVER, attributes: { 'http.method': method, diff --git a/packages/next/src/server/base-server.ts b/packages/next/src/server/base-server.ts index 9b535c3a5cec7..b6ecf64277782 100644 --- a/packages/next/src/server/base-server.ts +++ b/packages/next/src/server/base-server.ts @@ -882,19 +882,13 @@ export default abstract class Server< ): Promise { await this.prepare() const method = req.method.toUpperCase() - const tracer = getTracer() - - // Get the route from root span attributes for better span naming - const rootSpanAttributes = tracer.getRootSpanAttributes() - const route = rootSpanAttributes?.get('next.route') - const spanName = route ? `${method} ${route}` : `${method}` - + return tracer.withPropagatedContext(req.headers, () => { return tracer.trace( BaseServerSpan.handleRequest, { - spanName, + spanName: `${method}`, kind: SpanKind.SERVER, attributes: { 'http.method': method, @@ -950,11 +944,7 @@ export default abstract class Server< }) span.updateName(name) } else { - span.updateName( - isRSCRequest - ? `RSC ${method}` - : `${method}` - ) + span.updateName(isRSCRequest ? `RSC ${method}` : `${method}`) } }) ) From 089f97c28ff112c461fca21aba0ef7eac8639467 Mon Sep 17 00:00:00 2001 From: devjiwonchoi Date: Fri, 12 Sep 2025 21:57:23 +0200 Subject: [PATCH 4/5] update test --- .../instrumentation/opentelemetry.test.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/test/e2e/opentelemetry/instrumentation/opentelemetry.test.ts b/test/e2e/opentelemetry/instrumentation/opentelemetry.test.ts index 8e9ccce474b49..4063ff50791b5 100644 --- a/test/e2e/opentelemetry/instrumentation/opentelemetry.test.ts +++ b/test/e2e/opentelemetry/instrumentation/opentelemetry.test.ts @@ -333,10 +333,10 @@ describe('opentelemetry', () => { traceId: env.span.traceId, parentId: env.span.rootParentId, runtime: 'nodejs', - name: 'GET /app/param/rsc-fetch/edge', + name: 'GET', kind: 1, attributes: { - 'next.span_name': 'GET /app/param/rsc-fetch/edge', + 'next.span_name': 'GET', 'next.span_type': 'BaseServer.handleRequest', 'http.method': 'GET', 'http.target': '/app/param/rsc-fetch/edge', @@ -468,10 +468,10 @@ describe('opentelemetry', () => { runtime: 'nodejs', traceId: env.span.traceId, parentId: env.span.rootParentId, - name: 'GET /api/app/param/data/edge', + name: 'GET', kind: 1, attributes: { - 'next.span_name': 'GET /api/app/param/data/edge', + 'next.span_name': 'GET', 'next.span_type': 'BaseServer.handleRequest', 'http.method': 'GET', 'http.target': '/api/app/param/data/edge', @@ -831,10 +831,10 @@ describe('opentelemetry', () => { runtime: 'nodejs', traceId: env.span.traceId, parentId: env.span.rootParentId, - name: 'GET /pages/param/edge/getServerSideProps', + name: 'GET', kind: 1, attributes: { - 'next.span_name': 'GET /pages/param/edge/getServerSideProps', + 'next.span_name': 'GET', 'next.span_type': 'BaseServer.handleRequest', 'http.method': 'GET', 'http.target': '/pages/param/edge/getServerSideProps', @@ -1100,10 +1100,10 @@ describe('opentelemetry', () => { runtime: 'nodejs', traceId: env.span.traceId, parentId: env.span.rootParentId, - name: 'GET /api/pages/param/edge', + name: 'GET', kind: 1, attributes: { - 'next.span_name': 'GET /api/pages/param/edge', + 'next.span_name': 'GET', 'next.span_type': 'BaseServer.handleRequest', 'http.method': 'GET', 'http.target': '/api/pages/param/edge', From 242b41a5c21d591624f9f136ac5223f348ed58ee Mon Sep 17 00:00:00 2001 From: devjiwonchoi Date: Fri, 12 Sep 2025 23:48:28 +0200 Subject: [PATCH 5/5] update edge-ssr --- packages/next/src/build/templates/edge-ssr-app.ts | 4 ++-- packages/next/src/build/templates/edge-ssr.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/next/src/build/templates/edge-ssr-app.ts b/packages/next/src/build/templates/edge-ssr-app.ts index b3f7790ca59d1..f6e41bf1d4669 100644 --- a/packages/next/src/build/templates/edge-ssr-app.ts +++ b/packages/next/src/build/templates/edge-ssr-app.ts @@ -317,7 +317,7 @@ async function requestHandler( }) span.updateName(name) } else { - span.updateName(`${req.method} ${relativeUrl}`) + span.updateName(`${req.method}`) } }) @@ -340,7 +340,7 @@ async function requestHandler( tracer.trace( BaseServerSpan.handleRequest, { - spanName: `${req.method} ${relativeUrl}`, + spanName: `${req.method}`, kind: SpanKind.SERVER, attributes: { 'http.method': req.method, diff --git a/packages/next/src/build/templates/edge-ssr.ts b/packages/next/src/build/templates/edge-ssr.ts index 33ac154639141..26998d5de8d13 100644 --- a/packages/next/src/build/templates/edge-ssr.ts +++ b/packages/next/src/build/templates/edge-ssr.ts @@ -296,7 +296,7 @@ async function requestHandler( }) span.updateName(name) } else { - span.updateName(`${req.method} ${relativeUrl}`) + span.updateName(`${req.method}`) } }) @@ -343,7 +343,7 @@ async function requestHandler( tracer.trace( BaseServerSpan.handleRequest, { - spanName: `${req.method} ${relativeUrl}`, + spanName: `${req.method}`, kind: SpanKind.SERVER, attributes: { 'http.method': req.method,