Skip to content

feat(tracing): instrument Nuxt rendering - #44

Open
atinux wants to merge 1 commit into
feat/client-side-fts-searchfrom
feat/render-tracing-spans
Open

feat(tracing): instrument Nuxt rendering#44
atinux wants to merge 1 commit into
feat/client-side-fts-searchfrom
feat/render-tracing-spans

Conversation

@atinux

@atinux atinux commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Written by an AI agent on behalf of @atinux; not yet human-reviewed.

Summary

  • trace Nitro request, Nuxt render, and response phases for HTML and payload requests
  • isolate Vue SSR, payload serialization, HTML finalization, and HTML assembly spans
  • preserve parent-child relationships and mark unfinished spans when rendering fails

Verification

  • pnpm typecheck
  • pnpm lint (passes with four existing no-explicit-any warnings)
  • pnpm build
  • production server requests to /page and /page/_payload.json returned 200 and exported every expected OTLP span
  • pnpm test runs 175 tests successfully; two current content-contract tests fail because the installed comark-content no longer exports writeSnapshots

Preview goal

Use the Vercel tracing dashboard to identify time spent in Vue SSR, payload serialization, response handling, and the platform boundary around cold ISR renders.

@coldtea-pr-lens

coldtea-pr-lens Bot commented Sep 9, 2026

Copy link
Copy Markdown

◈ PR Lens

🟢 +2 new · 🟠 ~1 changed · 🔴 -0 removed · 1 flow · 3 files · commit d78ff3e


Architecture

Architecture diagram for comarkdown/comark-docs at d78ff3e

3 components touched across 2 lanes.

Open the interactive canvas


Data flow

Data flow diagram for comarkdown/comark-docs at d78ff3e

Tracing SSR render lifecycle

Open the interactive canvas


Drill down
Client & Browser — 1 component
🟢 NEW Nuxt Render Tracer

Pre-enforced Nuxt server plugin that hooks into the app:rendered event to span Vue rendering and payload finalization.

Server Routes & APIs — 2 components
🟡 CHANGED Nitro Tracer Plugin

Instruments Nitro request and render lifecycle hooks to create and manage OpenTelemetry spans for SSR requests.

🟢 NEW Render Trace State

Stores active OpenTelemetry span references on the H3 event context across Nitro and Nuxt render phases.


View

  • Architecture lens
  • Data flow lens
  • Expand every detail
  • Show unchanged neighbours

Tip

Draw a diff before it is even a pull request: npx @coldtea/pr-lens-cli analyze --base origin/main reads the diff with your own model key, and npx @coldtea/pr-lens-cli render .pr-lens/graph.json draws the same lenses on your machine.

🪧 More tips
  • Run PR Lens on your own machine: npx skills add coldteadotai/pr-lens installs the agent skill. Then tell your coding agent: "Diagram the change you just made with PR Lens and attach it to the pull request."
  • The boxes under View are live. Tick Architecture lens or Data flow lens to choose which diagrams appear, or Expand every detail to open every drill-down at once. The comment redraws in place a few seconds later.
  • Show unchanged neighbours lists the components this change did not touch alongside the ones it did, so the drill-down shows what the changed code sits next to.
  • GitHub will not let you zoom an image in a comment. The link under each diagram opens it on an interactive canvas, where you can zoom, pan and step through the flow.
  • The CLI's render picks up .github/pr-lens.yml automatically and applies your corrections (renames, exclusions, lane pins) at draw time.
  • Would you rather run it from CI on a key of your own? Add .github/workflows/pr-lens.yml with coldteadotai/pr-lens/packages/action@v0 and a model key in your repository secrets, say GEMINI_API_KEY. The Action asks Gemini by default, or OpenAI and any endpoint speaking /chat/completions through its provider input.
  • PR Lens is free for open source. A star on the repository is what keeps it going.
  • Push a new commit and the whole comment re-renders for the new head. An older run never overwrites a newer one, so a slow render cannot put a stale diagram back.
  • The diagrams follow your GitHub theme, so dark mode gets the dark render and light mode the light one, and the moving dots show this pull request's data in motion.

◈ Rendered by PR Lens · crafted with ❤️ by the Coldtea team · Come say hi on Discord

@vercel

vercel Bot commented Sep 9, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
comark-docs-layer Ready Ready Preview Sep 9, 2026 5:23pm UTC

@coderabbitai

coderabbitai Bot commented Sep 9, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 8b93764d-1b75-4252-85d7-37f4caa233e6

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@atinux atinux changed the title feat(tracing): instrument Nuxt rendering feat: trace rendering and persist production ref Sep 9, 2026
Written by an AI agent on behalf of @atinux; not yet human-reviewed.
@atinux
atinux force-pushed the feat/render-tracing-spans branch from 07efea3 to d78ff3e Compare September 9, 2026 17:21
@atinux atinux changed the title feat: trace rendering and persist production ref feat(tracing): instrument Nuxt rendering Sep 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant