-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Open
Labels
Description
This got brought up in our weekly syncs, the Next.js OTEL guide page says:
Next.js traces more spans than are emitted by default. To see more spans, you must set
NEXT_OTEL_VERBOSE=1.
Which is a bit of a wonky wording but worth checking out to see what are the extra spans that are emitted and if they can be of any use to the user.
We can probably turn it on by manually by setting process.env.NEXT_OTEL_VERBOSE to 1 in the instrumentation init script.
I ran a preliminary scan of the Next.js repository for the NEXT_OTEL_VERBOSE flag and made a list of possible new spans that should be emitted with the env flag turned on, you can find those below.
Span Lists
Spans Normally Emitted (in NextVanillaSpanAllowlist):
Always Included (15 spans):
Middleware.executeBaseServer.handleRequestRender.getServerSidePropsRender.getStaticPropsAppRender.fetchAppRender.getBodyResultRender.renderDocumentNode.runHandlerAppRouteRouteHandlers.runHandlerResolveMetadata.generateMetadataResolveMetadata.generateViewportNextNodeServer.createComponentTreeNextNodeServer.findPageComponentsNextNodeServer.getLayoutOrPageModuleNextNodeServer.startResponseNextNodeServer.clientComponentLoading
Additional Spans Only with Verbose Mode (48 more spans):
BaseServerSpan (11 additional):
BaseServer.runBaseServer.pipeBaseServer.getStaticHTMLBaseServer.renderBaseServer.renderToResponseWithComponentsBaseServer.renderToResponseBaseServer.renderToHTMLBaseServer.renderErrorBaseServer.renderErrorToResponseBaseServer.renderErrorToHTMLBaseServer.render404
LoadComponentsSpan (2):
LoadComponents.loadDefaultErrorComponentsLoadComponents.loadComponents
NextServerSpan (5):
NextServer.getRequestHandlerNextServer.getRequestHandlerWithMetadataNextServer.getServerNextServer.getServerRequestHandlercreateServer. createServer
NextNodeServerSpan (19 additional):
NextNodeServer.compressionNextNodeServer.getBuildIdNextNodeServer.generateStaticRoutesNextNodeServer.generateFsStaticRoutesNextNodeServer.generatePublicRoutesNextNodeServer.generateImageRoutes. routeNextNodeServer.sendRenderResultNextNodeServer.proxyRequestNextNodeServer.runApiNextNodeServer.renderNextNodeServer.renderHTMLNextNodeServer.imageOptimizerNextNodeServer.getPagePathNextNodeServer.getRoutesManifestNextNodeServer.getFontManifestNextNodeServer.getServerComponentManifestNextNodeServer.getRequestHandlerNextNodeServer.renderToHTMLNextNodeServer.renderErrorNextNodeServer.renderErrorToHTMLNextNodeServer.render404routeonProxyReqapiResolverinternalFetch
StartServerSpan (1):
startServer.startServer
RenderSpan (2 additional):
Render.renderToStringRender.createBodyResult
AppRenderSpan (2 additional):
AppRender.renderToStringAppRender.renderToReadableStream
RouterSpan (1):
Router.executeRoute