Split out of #23812, which ported the Deno E2E apps (deno, deno-mysql, deno-pg, deno-redis) to span streaming in #24002 and #24003.
The dev-packages/deno-integration-tests suites still carry the traceLifecycle: 'static' pin from #22590: 25 suites, 51 pins, mostly the orchestrion-* suites plus deno-serve-request-bodies.
Why this is separate
These suites don't go through the event proxy. They assert via a transactionSink() helper wired into beforeSendTransaction in dev-packages/deno-integration-tests/src/index.ts, so porting them is a harness change, not a spec rewrite:
- Replace the
beforeSendTransaction sink with a span sink (e.g. beforeSendSpan or a mock transport capturing span v2 envelopes). - Rewrite the per-suite assertions from
transaction.spans[] / contexts.trace to streamed span shape (span.name, getSpanOp, span.attributes['x'].value, is_segment). - Streamed db/http/gen_ai span names are low cardinality, so every name assertion in the orchestrion suites changes.
What to do
- Add a streamed-span sink to
src/index.ts next to transactionSink(). - Remove the
traceLifecycle: 'static' pins from every suites/**/test.ts. - Rewrite the assertions per suite.
Consider keeping one suite on the static pin (or duplicating one) so the static trace lifecycle stays covered for this harness, mirroring the *-static E2E apps.
Split out of #23812, which ported the Deno E2E apps (
deno,deno-mysql,deno-pg,deno-redis) to span streaming in #24002 and #24003.The
dev-packages/deno-integration-testssuites still carry thetraceLifecycle: 'static'pin from #22590: 25 suites, 51 pins, mostly theorchestrion-*suites plusdeno-serve-request-bodies.Why this is separate
These suites don't go through the event proxy. They assert via a
transactionSink()helper wired intobeforeSendTransactionindev-packages/deno-integration-tests/src/index.ts, so porting them is a harness change, not a spec rewrite:beforeSendTransactionsink with a span sink (e.g.beforeSendSpanor a mock transport capturing span v2 envelopes).transaction.spans[]/contexts.traceto streamed span shape (span.name,getSpanOp,span.attributes['x'].value,is_segment).What to do
src/index.tsnext totransactionSink().traceLifecycle: 'static'pins from everysuites/**/test.ts.Consider keeping one suite on the static pin (or duplicating one) so the static trace lifecycle stays covered for this harness, mirroring the
*-staticE2E apps.