Skip to report

Nuxt SSR publishes diagnostics-channel traces

Trace Nuxt’s opt-in tracing channels from a new internal tracing module into page and island rendering, async data and plugins, with Nitro’s request and storage channels forwarded.

nuxt/nuxt #35191 · PR by danielroe · Merged

nuxt/nuxt 6198010b..17f661a8

base and head as given

  • Nuxt now has an internal server tracing component.
  • Server rendering can publish diagnostics-channel traces.
  • Async data handlers can publish diagnostics-channel traces.
  • Nuxt configuration now exposes tracing-channel controls.
files changed
12
in a component
9
lines in components
185
components
7
public routes changed
0
schema statements
0
new dependencies
0
excluded by role
3
Based on 8 of 9 eligible changed files

Server tracing

Added
Before
Nuxt tracing controls did not exist
After
Tracing controls cover Nuxt operations

Server operators can enable diagnostics-channel traces for page rendering, islands, async data handlers, and plugins. Enabling tracing also turns on related request, H3, and storage channels by default.

In favour

  • In favour: Avoids an extra microtask when no tracing subscriber exists
  • In favour: Leaves unsupported runtimes untraced instead of failing module resolution

Against

  • Against: Adds an experimental configuration surface spanning Nuxt and Nitro tracing
Files changed in 7 components (6 shown). Dependencies shown: 2 new, 5 unchanged
unchanged · 5new · 21 component added

2 new dependencies between components — Nuxt App → Internal App · App Composables → Internal App

What else could behave differently

19 components · 103 files

These components import changed code, directly or through other files. A traced dependency is a place to review, not a confirmed runtime failure. Some paths stopped at heavily imported files; inspect those consumers separately.

Reached 3

ComponentSymbolCited atFilesReached by
Nuxt Apppackages/nuxt/src/app/Added packages/nuxt/src/app/internal/tracing.ts:56-6661 direct · 3 at two steps · 2 at three steps
Trace path

Shortest component path from the changed symbol:

  1. Internal App
  2. Nuxt App

Later steps follow file imports; they do not prove this symbol is called.

Nuxt Corepackages/nuxt/src/core/Added packages/nuxt/src/app/internal/tracing.ts:56-665none direct · 1 at two steps · 2 at three steps · 2 at four steps
Trace path

Shortest component path from the changed symbol:

  1. Internal App
  2. Nuxt App
  3. Nuxt Core

Later steps follow file imports; they do not prove this symbol is called.

packages/nuxt/src/Body changed 1 of 2 changed symbols reaching itpackages/nuxt/src/core/nuxt.ts:794-96611 direct
Trace path

Shortest component path from the changed symbol:

  1. Nuxt Core
  2. packages/nuxt/src/

Later steps follow file imports; they do not prove this symbol is called.

Held back 5

ComponentFilesReached byResolution
packages/schema/src/types/2none direct · 1 at three steps · 1 at four stepsprecise
packages/schema/src/utils/1none direct · 1 at four stepsprecise
packages/nitro-server/src/2none direct · 1 at three steps · 1 at four stepsprecise
packages/nuxt/src/app/compat/1none direct · 1 at three stepsprecise
packages/nuxt/src/app/middleware/1none direct · 1 at three stepsprecise

Ranked lower 11

ComponentFilesReached by
packages/nuxt/src/app/composables/251 direct · 20 at two steps · 4 at three steps
packages/nuxt/src/pages/9none direct · 7 at two steps · 2 at three steps
packages/nuxt/src/head/3none direct · 2 at two steps · 1 at three steps
packages/nuxt/src/app/components/14none direct · 6 at two steps · 8 at three steps
packages/vite/src/1none direct · 1 at two steps
packages/schema/src/1none direct · 1 at two steps
packages/schema/src/config/11 direct
packages/nuxt/src/components/3none direct · 3 at two steps
packages/nitro-server/src/runtime/82 direct · 5 at two steps · 1 at three steps
packages/nuxt/src/app/types/1none direct · 1 at two steps
packages/nuxt/src/app/plugins/18none direct · 18 at two steps

Not traced past a hub 1

SymbolHub fileImported by
packages/nuxt/src/app/nuxt.ts:applyPluginpackages/nuxt/src/app/nuxt.ts67

Statements 3

The added traceAsync reached 6 files in the Nuxt app. 132
packages/nuxt/src/app/internal/tracing.ts:56-66
The added traceAsync reached 5 files in Nuxt core. 122
packages/nuxt/src/app/internal/tracing.ts:56-66
The loadNuxt body change reached 1 file in the Nuxt source component. 1
packages/nuxt/src/core/nuxt.ts:794-966

17 reached files belong to no component — tests, docs and config.

Routes, schema, dependencies

No public URL, no migration and no new package.

Inspect components, files and symbols

Component

Nuxt AppModified
packages/nuxt/src/app/

1 file · 13 lines

12 dependents

Nuxt CoreModified
packages/nuxt/src/core/

2 files · 2 lines

10 dependents

App ComposablesModified
packages/nuxt/src/app/composables/

1 file · 14 lines

8 dependents

Nitro ServerModified
packages/nitro-server/src/

1 file · 38 lines

Nitro server exported NuxtTracingChannelOptions.
Internal AppAdded
packages/nuxt/src/app/internal/

1 file · 66 lines

3 dependents

Internal app code exported traceAsync.
Schema ConfigModified
packages/schema/src/config/

1 file · 31 lines

1 dependent

Nitro RuntimeModified
packages/nitro-server/src/runtime/

2 files · 21 lines

ranked lower · 0.06

File

Nuxt Apppackages/nuxt/src/app/
packages/nuxt/src/app/nuxt.ts

+11 −2

Nuxt Corepackages/nuxt/src/core/
packages/nuxt/src/core/nuxt.ts

+1 −0

Nuxt Corepackages/nuxt/src/core/
packages/nuxt/src/core/templates.ts

+1 −0

App Composablespackages/nuxt/src/app/composables/
packages/nuxt/src/app/composables/asyncData.ts

+12 −2

Nitro Serverpackages/nitro-server/src/
packages/nitro-server/src/augments.ts

+37 −1

Internal Apppackages/nuxt/src/app/internal/
packages/nuxt/src/app/internal/tracing.ts

+66 −0

Schema Configpackages/schema/src/config/
packages/schema/src/config/nitro.ts

+31 −0

Nitro Runtimepackages/nitro-server/src/runtime/
packages/nitro-server/src/runtime/handlers/renderer.ts

+10 −3

Nitro Runtimepackages/nitro-server/src/runtime/
packages/nitro-server/src/runtime/handlers/island.ts

+7 −1

Function

imports what changeddownstream of it, one mark per step

traceAsync()packages/nuxt/src/app/internal/tracing.ts

reaches 14 components

The added traceAsync reached 25 files in app composables. 1204
packages/nuxt/src/app/internal/tracing.ts:56-66
The added traceAsync reached 9 files in pages. 72
packages/nuxt/src/app/internal/tracing.ts:56-66
The added traceAsync reached 3 files in head. 21
packages/nuxt/src/app/internal/tracing.ts:56-66
The added traceAsync reached 14 files in app components. 68
packages/nuxt/src/app/internal/tracing.ts:56-66
The added traceAsync reached 1 file in Vite source. 1
packages/nuxt/src/app/internal/tracing.ts:56-66
The added traceAsync reached 3 files in Nuxt components. 3
packages/nuxt/src/app/internal/tracing.ts:56-66
The added traceAsync reached 8 files in Nitro runtime. 251
packages/nuxt/src/app/internal/tracing.ts:56-66
The added traceAsync reached 1 file in app types. 1
packages/nuxt/src/app/internal/tracing.ts:56-66
The added traceAsync reached 18 files in app plugins. 18
packages/nuxt/src/app/internal/tracing.ts:56-66
The added traceAsync reached 2 files in schema types. 11
packages/nuxt/src/app/internal/tracing.ts:56-66
The added traceAsync reached 1 file in schema utilities. 1
packages/nuxt/src/app/internal/tracing.ts:56-66
The added traceAsync reached 2 files in Nitro server. 11
packages/nuxt/src/app/internal/tracing.ts:56-66
The added traceAsync reached 1 file in app compatibility code. 1
packages/nuxt/src/app/internal/tracing.ts:56-66
The added traceAsync reached 1 file in app middleware. 1
packages/nuxt/src/app/internal/tracing.ts:56-66

Diff

Nuxt Apppackages/nuxt/src/app/
packages/nuxt/src/app/nuxt.ts

24–24, 31–31, 453–461

Nuxt Corepackages/nuxt/src/core/
packages/nuxt/src/core/nuxt.ts

903–903

Nuxt Corepackages/nuxt/src/core/
packages/nuxt/src/core/templates.ts

594–594

App Composablespackages/nuxt/src/app/composables/
packages/nuxt/src/app/composables/asyncData.ts

12–12, 16–16, 780–780 and 1 more span

Nitro Serverpackages/nitro-server/src/
packages/nitro-server/src/augments.ts

1–1, 7–20, 143–153 and 1 more span

Internal Apppackages/nuxt/src/app/internal/
packages/nuxt/src/app/internal/tracing.ts

1–66

Schema Configpackages/schema/src/config/
packages/schema/src/config/nitro.ts

47–60, 65–81

Nitro Runtimepackages/nitro-server/src/runtime/
packages/nitro-server/src/runtime/handlers/renderer.ts

18–18, 32–32, 189–192 and 1 more span

Nitro Runtimepackages/nitro-server/src/runtime/
packages/nitro-server/src/runtime/handlers/island.ts

12–14, 44–47

Analysis scope

1538 → 7
  1. 1,538
    files at head
  2. 47
    components
  3. 7
    changed by this change
  4. 6
    shown above of 7

Where the new files landed

1 new file
New fileBelongs toUsed byCallsServes
packages/nuxt/src/app/internal/tracing.ts
Internal Appnew territory
Nitro RuntimeNuxt AppApp Composables
nothing outside its own component
7components changed
13reached, not changed
1components added/removed
3dependencies added between components
0dependencies removed between components
0files moved to another path

12 files changed, 29 claims stated. 19 components reached in total.

naming: “model

narrative: “model

analyzer 0.2.0, config v1.9.0-phase8

Every line above is derived from 6198010b..17f661a8 and nothing else.