Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Port node-integration-tests to span streaming

Aperta
#24,130 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Refactoring
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
node.js, typescript
Ambito
testing-qa

Direzione di ricerca

Inizia in dev-packages/node-integration-tests e confronta le suite con tracing/httpIntegration-streamed. Individua i pin statici e STREAMED di traceLifecycle, quindi esamina le asserzioni di transaction-envelope e la raccolta di child-span nelle suite interessate. Il lavoro è completo quando il package utilizza lo span streaming ovunque, i gemelli streamed vengono reintegrati, le asserzioni coprono span v2 e tracing/sampling-static e public-api/beforeSendSpan-static restano la copertura statica.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

javascript Task

Port dev-packages/node-integration-tests to span streaming. Span streaming is the default, so every suite that still pins traceLifecycle: 'static' covers behaviour we no longer ship.

Part of SDK-1425, one tracking issue per integration test package.

Scope

  • 299 traceLifecycle: 'static' pins across 188 suite directories
  • 111 suite directories assert on transaction envelopes and need a real rewrite
  • 19 suites already have a -streamed twin next to the static original
  • 20 suites use the env-gated traceLifecycle: process.env.STREAMED === 'true' ? 'stream' : 'static' pattern

How to port a suite

  1. Remove the traceLifecycle: 'static' pin from every Sentry.init in the suite.
  2. If a -streamed twin exists, fold it back: delete the static original and rename the twin to the base name. Do not keep both, or the coverage doubles and the two copies drift.
  3. If the suite uses the env-gated STREAMED switch, drop the switch and keep 'stream'.
  4. Rewrite the assertions from transaction envelopes to span v2:
    • .expect({ transaction }) becomes .expect({ span }), which gives a SerializedStreamedSpanContainer
    • event.transaction becomes span.name
    • contexts.trace.op becomes the sentry.op attribute plus span.is_segment
    • contexts.trace.data['x'] becomes span.attributes['x'], which has the shape { value, type }
    • transaction_info.source becomes the sentry.segment.name.source attribute
  5. Streamed child spans arrive across several envelopes, so collect across envelopes wherever a test asserts on children of a segment span.

Watch for span names that become low cardinality under streaming: http.server, http.client, db, cache, gen_ai and graphql. Those assertions change, not just the helper.

Reference suite: suites/tracing/httpIntegration-streamed.

Keep static trace lifecycle coverage

Do not add a -static copy per suite. tracing/sampling-static and public-api/beforeSendSpan-static already guard the static lifecycle for this package.

Lingua principale
TypeScript
Stelle
8.7k
Fork
1.9k
Merge medio
1g 18h
PR unite (30g)
562

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di getsentry/sentry-javascript

Tutte le issue di getsentry/sentry-javascript

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.