getsentry / getsentry/sentry-javascript

Synthesize shell cache spans from RDC enumeration

Offen
#24,297 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
javascript
Vorherrschende Sprache
TypeScript
Sterne
8.7k
Forks
1.8k
Ø Merge
1 T. 17 Std.
Gemergte PRs (30 T.)
523

Beschreibung

*Example:*

```
export default function Page() {
return (<> {/* 'use cache', baked into the static shell */}
}>);
}
```

A request serves the shell, including the cached header, from the [Resume Data Cache]() before any of our code runs. The handler instrumentation never fires. The trace shows `LiveStock` and nothing about the cached half of the page.

*Solves:* "was my cached content used, and how old was it?" for shell-served entries.

*Fix idea:* from code in the dynamic hole (the server-component wrapper), read the request work-unit store's `resumeDataCache`, enumerate its entries, and emit synthetic `cache.get` spans with key digest and item age. Research verified that enumeration works and read interception does not. Pages without a dynamic hole stay invisible. Document that limit instead of fighting it.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Start in the server-component wrapper and trace how the request work-unit store exposes its resumeDataCache; confirm the cache entries can be enumerated without relying on read interception. Emit synthetic cache.get spans containing each key digest and item age, and document that pages without a dynamic hole remain invisible.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
nextjs, typescript
Bereich
observability
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Aktiv
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
66/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.