Port node-integration-tests to span streaming
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 35/100
- Issue 类型
- 重构
- 描述清晰度
- 描述清楚
- 活跃度
- 活跃
- 技术栈
- node.js, typescript
- 领域
- testing-qa
调研方向
从 dev-packages/node-integration-tests 开始,并将各 suite 与 tracing/httpIntegration-streamed 进行比较。定位 static 和 STREAMED 的 traceLifecycle pin,然后检查受影响 suite 中的 transaction-envelope 断言和 child-span 收集。完成标准是:该 package 全程使用 span streaming,重新合并 streamed 对应项,断言覆盖 span v2,并保留 tracing/sampling-static 以及 public-api/beforeSendSpan-static 作为 static 覆盖。
由索引模型根据 Issue 内容生成。
描述
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
-streamedtwin next to the static original - 20 suites use the env-gated
traceLifecycle: process.env.STREAMED === 'true' ? 'stream' : 'static'pattern
How to port a suite
- Remove the
traceLifecycle: 'static'pin from everySentry.initin the suite. - If a
-streamedtwin 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. - If the suite uses the env-gated
STREAMEDswitch, drop the switch and keep'stream'. - Rewrite the assertions from transaction envelopes to span v2:
.expect({ transaction })becomes.expect({ span }), which gives aSerializedStreamedSpanContainerevent.transactionbecomesspan.namecontexts.trace.opbecomes thesentry.opattribute plusspan.is_segmentcontexts.trace.data['x']becomesspan.attributes['x'], which has the shape{ value, type }transaction_info.sourcebecomes thesentry.segment.name.sourceattribute
- 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.
- 主要语言
- TypeScript
- 星标
- 8.7k
- 派生
- 1.9k
- 平均合并
- 1 天 16 小时
- 30 天内合并 PR
- 576
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
getsentry/sentry-javascript 的其他 Issue
-
Browser Bug Next.js Traces Waiting for: Product Owner
难度 2/5 1-3 小时 新手友好度 75/100
getsentry/sentry-javascript#24672 · 1 条评论 ·
-
Flaky Test React Router Framework Spans Tests
难度 2/5 1-3 小时 新手友好度 68/100
getsentry/sentry-javascript#24348 · 1 条评论 ·
-
javascript
难度 2/5 1-3 小时 新手友好度 75/100
getsentry/sentry-javascript#24200 · 2 条评论 ·
-
javascript Task
难度 2/5 1-3 小时 新手友好度 82/100
getsentry/sentry-javascript#24134 · 1 条评论 ·
-
Cloudflare Workers javascript Tests
难度 2/5 1-3 小时 新手友好度 78/100
getsentry/sentry-javascript#24051 · 1 条评论 ·
查看 getsentry/sentry-javascript 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 70/100
-
难度 2/5 1-3 小时 新手友好度 75/100
mksglu/context-mode#1200 ·
-
难度 2/5 1-3 小时 新手友好度 75/100
jaegertracing/jaeger-ui#4506 ·
-
area:desktop area:ui bug platform:macos
难度 2/5 1-3 小时 新手友好度 75/100
anthropics/claude-code#96687 ·
-
good first issue
难度 1/5 1 小时以内 新手友好度 95/100
AOSSIE-Org/DebateAI#582 · 2 条评论 ·