Releases: DataDog/dd-trace-js
Releases · DataDog/dd-trace-js
Release list
6.4.0
Features
- electron: Ship dd-trace-electron package with reduced dependencies #8948
- General: Trace core-API HTTP/2 servers #9138
- graphql: Trace Apollo Federation entity resolvers and skip the health-check #9134
- Test Optimization: Add EFD retry count override #9344
- Test Optimization: Diagnose and fix Jest suite skipping #9339
Fixes
- aws-sdk: Record kinesis DSM checkpoint only when context ships #9183
- graphql: Skip Apollo health checks in Mercurius #9363
- LLM Observability: Replace Object.create(span) with delegating wrapper to preserve OTel span private-field access #9152
- proxy: Retain feature modules across tracing reconfiguration #9331
- Test Optimization: Isolate retry status by spec #9340
- Test Optimization: Preserve zero EFD retry budgets #9341
- Test Optimization: Prevent negative test durations #9380
- Test Optimization: Resolve disabled git upload immediately #9338
- Test Optimization: Support cucumber 13.1 results #9370
- Test Optimization: Wait for all worker writers #9349
Performance
- graphql: Reuse filtered variables across resolve spans #9225
Internal (CI, Testing, Benchmarking)
- AppSec: Select mongodb version by Node.js runtime in plugin tests #9322
- ci: Set 16 retries for dd-sts-action #9374
- Dependencies: Bump bullmq #9350
- Dependencies: Bump pnpm #9365
- Dependencies: Bump protobufjs from 8.6.5 to 8.7.0 in /vendor in the vendor-minor-and-patch-dependencies group across 1 directory #9325
- express: Exercise loopback public entry #9291
- express: Trace middleware via layer prototype dispatch #9067
- General: Make no-traces timeout test deterministic #9372
- General: Prepare lint and Vitest for TypeScript 7 #9345
- General: Preserve coverage from custom plugin jobs #9386
- General: Reject when no matching trace arrives before the timeout #9177
- General: Select latest unversioned dependency range #9352
- LLM Observability: Centralize session_id injection in handleLLMObsInjection #9353
- LLM Observability: Cover compatible SDK provider version matrix #9332
- Test Optimization: Assert complete run payloads #9358
- Test Optimization: Make STS API key fetch non-fatal #9320
- undici: Force proxy tunnel in CONNECT regression test #9271
5.115.0
Features
- electron: Ship dd-trace-electron package with reduced dependencies #8948
- General: Trace core-API HTTP/2 servers #9138
- graphql: Trace Apollo Federation entity resolvers and skip the health-check #9134
- Test Optimization: Add EFD retry count override #9344
- Test Optimization: Diagnose and fix Jest suite skipping #9339
Fixes
- aws-sdk: Record kinesis DSM checkpoint only when context ships #9183
- graphql: Skip Apollo health checks in Mercurius #9363
- LLM Observability: Replace Object.create(span) with delegating wrapper to preserve OTel span private-field access #9152
- proxy: Retain feature modules across tracing reconfiguration #9331
- Test Optimization: Isolate retry status by spec #9340
- Test Optimization: Preserve zero EFD retry budgets #9341
- Test Optimization: Prevent negative test durations #9380
- Test Optimization: Resolve disabled git upload immediately #9338
- Test Optimization: Support cucumber 13.1 results #9370
- Test Optimization: Wait for all worker writers #9349
Performance
- graphql: Reuse filtered variables across resolve spans #9225
Internal (CI, Testing, Benchmarking)
- AppSec: Select mongodb version by Node.js runtime in plugin tests #9322
- ci: Set 16 retries for dd-sts-action #9374
- Dependencies: Bump bullmq #9350
- Dependencies: Bump pnpm #9365
- Dependencies: Bump protobufjs from 8.6.5 to 8.7.0 in /vendor in the vendor-minor-and-patch-dependencies group across 1 directory #9325
- express: Exercise loopback public entry #9291
- express: Trace middleware via layer prototype dispatch #9067
- General: Make no-traces timeout test deterministic #9372
- General: Prepare lint and Vitest for TypeScript 7 #9345
- General: Preserve coverage from custom plugin jobs #9386
- General: Reject when no matching trace arrives before the timeout #9177
- General: Select latest unversioned dependency range #9352
- LLM Observability: Centralize session_id injection in handleLLMObsInjection #9353
- LLM Observability: Cover compatible SDK provider version matrix #9332
- Test Optimization: Assert complete run payloads #9358
- Test Optimization: Make STS API key fetch non-fatal #9320
- undici: Force proxy tunnel in CONNECT regression test #9271
6.3.0
Features
- @modelcontextprotocol/sdk: Add tracing for MCP server requests and client operations #8916
- General: Sample event loop delay per iteration on Node 26.5+ #9273
- LLM Observability: Propagate session_id to following spans and across services MLOB-7756 #9279
Fixes
- AppSec: Instrument cookie parseCookie for cookie >=1.1 #9272
- AppSec: Log the error when the native WAF binding fails to load #9288
- AppSec: Suppress informational responses after blocking requests #9290
- azure: Enable Web Crypto on Node 18 #9311
- azure-functions: Fix span links and missing telemetry for non-HTTP triggers #9278
- General: Handle invalid programmatic option values #9312
- graphql: Honor errorExtensions on the mercurius request span #9284
- OpenTelemetry: Wire span processors passed to the provider constructor #9285
- Test Optimization: Do not mark unchanged tests as impacted #9314
- Test Optimization: Handle disabled tests in serial retries #9313
- Test Optimization: Omit empty FTR capture containers #9304
Internal (CI, Testing, Benchmarking)
- AppSec: Deflake api-security telemetry metrics integration tests #9303
- General: Select version targets by Node.js runtime #9306
- lint: Revert editorconfig checker from npm to docker #9315
- OpenTelemetry: Deflake OTLP metrics HTTP export test with fake timers #9287
- readme: Update eol column for v5 #9267
5.114.0
Features
- @modelcontextprotocol/sdk: Add tracing for MCP server requests and client operations #8916
- General: Sample event loop delay per iteration on Node 26.5+ #9273
- LLM Observability: Propagate session_id to following spans and across services MLOB-7756 #9279
Fixes
- AppSec: Instrument cookie parseCookie for cookie >=1.1 #9272
- AppSec: Log the error when the native WAF binding fails to load #9288
- AppSec: Suppress informational responses after blocking requests #9290
- azure: Enable Web Crypto on Node 18 #9311
- azure-functions: Fix span links and missing telemetry for non-HTTP triggers #9278
- General: Handle invalid programmatic option values #9312
- graphql: Honor errorExtensions on the mercurius request span #9284
- OpenTelemetry: Wire span processors passed to the provider constructor #9285
- Test Optimization: Do not mark unchanged tests as impacted #9314
- Test Optimization: Handle disabled tests in serial retries #9313
- Test Optimization: Omit empty FTR capture containers #9304
Internal (CI, Testing, Benchmarking)
- AppSec: Deflake api-security telemetry metrics integration tests #9303
- General: Select version targets by Node.js runtime #9306
- lint: Revert editorconfig checker from npm to docker #9315
- OpenTelemetry: Deflake OTLP metrics HTTP export test with fake timers #9287
- readme: Update eol column for v5 #9267
6.2.0
Features
- graphql: Add mercurius support with a top-level graphql.request span #9142
Fixes
- AppSec: Report request headers on Lambda spans when AppSec is enabled #9257
- General: Avoid rewriter source map marker in source #9212
- General: Skip loader hook registration when instrumentation bails out #9242
- guardrails: Forward abort telemetry synchronously to avoid a hung exit #9268
- instrumentations: Preserve asyncEnd wait with code-transformer 0.16 #9256
- msgpack: Cap MsgpackChunk growth at the agent intake limit #8672
- OpenTelemetry: Wrap sdk-trace TracerProvider for sdk-node 0.220+ #9255
- ssi: Run ssi in current proposal branch #9223
- Test Optimization: Stop propagating metadata to workers #9261
Documentation
- Serverless: Add serverless integrations skill #9188
Internal (CI, Testing, Benchmarking)
- benchmarks: Support BP_EXTERNAL_S3_URL override #9155
- guardrails: Skip node 24 initialize runtime checks #9283
- init: Skip node 22 loader guardrails #9277
- Test Optimization: Cover msw preload regression #9262
- Test Optimization: Stabilize atf final status assertion #9253
- Test Optimization: Stabilize request error tag reporting #9254
5.113.0
Features
- graphql: Add mercurius support with a top-level graphql.request span #9142
Fixes
- AppSec: Report request headers on Lambda spans when AppSec is enabled #9257
- General: Avoid rewriter source map marker in source #9212
- General: Skip loader hook registration when instrumentation bails out #9242
- guardrails: Forward abort telemetry synchronously to avoid a hung exit #9268
- instrumentations: Preserve asyncEnd wait with code-transformer 0.16 #9256
- msgpack: Cap MsgpackChunk growth at the agent intake limit #8672
- OpenTelemetry: Wrap sdk-trace TracerProvider for sdk-node 0.220+ #9255
- ssi: Run ssi in current proposal branch #9223
- Test Optimization: Stop propagating metadata to workers #9261
Documentation
- Serverless: Add serverless integrations skill #9188
Internal (CI, Testing, Benchmarking)
- benchmarks: Support BP_EXTERNAL_S3_URL override #9155
- guardrails: Skip node 24 initialize runtime checks #9283
- init: Skip node 22 loader guardrails #9277
- Test Optimization: Cover msw preload regression #9262
- Test Optimization: Stabilize atf final status assertion #9253
- Test Optimization: Stabilize request error tag reporting #9254
6.1.0
Features
- claude-agent-sdk: Add support for
@anthropic-ai/claude-agent-sdk#9202 - graphql: Support collapse, depth, variables, and error extensions via env #9111
- LLM Observability: Support vercel ai sdk v7 #8949
- mongodb: Open a parent span for Collection#bulkWrite #9109
- Test Optimization: Tag failure screenshot upload result #9232
- Test Optimization: Upload failure screenshots to the v2 media endpoint #8981
Fixes
- AppSec: Support apollo v5 blocking #9007
- aws-durable-execution-sdk-js: SVLS-8588 set span type to serverless #9162
- child_process: Stabilize promisified exec spans #9180
- Crash Tracking: Resolve frames out-of-process on Linux #9237
- fastify: Bound avvio's boot re-drive and stop swallowing async hook rejections #9118
- graphql: Make the resolve span the active scope inside resolvers #8208
- OpenTelemetry: Apply global/resource tags to OTel-bridged spans #9229
- Profiling: Abort profile upload on socket timeout #9217
- Test Optimization: Changed DD_MAJOR guards to greater than or equal #9199
- Test Optimization: Ignore intermediate retry failures in aggregate status #9231
- Test Optimization: Instrument build index module loads #9211
- Test Optimization: Propagate no-worker request error tags #9189
- Test Optimization: Report tests from custom environments #9194
- Test Optimization: Stabilize failed test replay waits #9193
- Test Optimization: Support concurrent Vitest tests #8412
- Test Optimization: Support test.concurrent #9209
Internal (CI, Testing, Benchmarking)
- AI Guard: Rework aiguard integrations #9185
- AppSec: Remove dead code and fix stale comments in nosql mongodb analyzer #9168
- coverage: Collect integration coverage with native V8 instead of istanbul #9091
- Dependencies: Bump import-in-the-middle to 3.3.1 #9235
- Dependencies: Bump npm #9205
- General: Reject non-string version ranges in withVersions #9187
- plugin-env: Read apm-integrations.yml after workflow rename #9224
- Test Optimization: Stabilize Playwright retry tagging flake #9216
5.112.0
Features
- claude-agent-sdk: Add support for
@anthropic-ai/claude-agent-sdk#9202 - graphql: Support collapse, depth, variables, and error extensions via env #9111
- LLM Observability: Support vercel ai sdk v7 #8949
- mongodb: Open a parent span for Collection#bulkWrite #9109
- Test Optimization: Tag failure screenshot upload result #9232
- Test Optimization: Upload failure screenshots to the v2 media endpoint #8981
Fixes
- AppSec: Support apollo v5 blocking #9007
- aws-durable-execution-sdk-js: SVLS-8588 set span type to serverless #9162
- child_process: Stabilize promisified exec spans #9180
- Crash Tracking: Resolve frames out-of-process on Linux #9237
- fastify: Bound avvio's boot re-drive and stop swallowing async hook rejections #9118
- graphql: Make the resolve span the active scope inside resolvers #8208
- OpenTelemetry: Apply global/resource tags to OTel-bridged spans #9229
- Profiling: Abort profile upload on socket timeout #9217
- Test Optimization: Changed DD_MAJOR guards to greater than or equal #9199
- Test Optimization: Ignore intermediate retry failures in aggregate status #9231
- Test Optimization: Instrument build index module loads #9211
- Test Optimization: Propagate no-worker request error tags #9189
- Test Optimization: Report tests from custom environments #9194
- Test Optimization: Stabilize failed test replay waits #9193
- Test Optimization: Support concurrent Vitest tests #8412
- Test Optimization: Support test.concurrent #9209
Internal (CI, Testing, Benchmarking)
- AI Guard: Rework aiguard integrations #9185
- AppSec: Remove dead code and fix stale comments in nosql mongodb analyzer #9168
- coverage: Collect integration coverage with native V8 instead of istanbul #9091
- Dependencies: Bump import-in-the-middle to 3.3.1 #9235
- Dependencies: Bump npm #9205
- General: Reject non-string version ranges in withVersions #9187
- plugin-env: Read apm-integrations.yml after workflow rename #9224
- Test Optimization: Stabilize Playwright retry tagging flake #9216
6.0.0
Breaking Changes
- AppSec: Drop deprecated securityControls type #8315
- General: Drop support for Node.js 18 and 20 in v6 #9104
- General: Drop deprecated whitelist/blacklist plugin types from v6 surface #8321
- General: Gate addLink(spanContext, attributes) legacy overload off in v6 #8319
- graphql: Decouple resolver depth from path collapsing #8774
- LLM Observability: Change span resource names to be consistent between openai v3 and v4 #5638
- loader-hook: Add include configuration for import-in-the-middle #6455
- v6.0.0-pre #3919
- Test Optimization: Change default test session name #5409
- Test Optimization: Default Nx and Lage names #8268
- Test Optimization: Raise Cypress minimum version to 10.2.0 #5397
- Test Optimization: Raise Cypress minimum version to 12.0.0 #8247
- Test Optimization: Raise Jest minimum version to 28.0.0 #8246
- Test Optimization: Raise Mocha minimum version to 8.0.0 #8245
- Test Optimization: Raise Playwright minimum version to 1.38.0 #5596
Features
- AppSec: In App WAF support for lambda #7783
- General: SVLS-9168 add aws.durable.operation_attempt tag to durable operation spans #8595
- OpenTelemetry: OTLP trace metrics support #8206
- release: Add breaking changes to release proposal #9196
- Test Optimization: Add vitest no-worker init mode #9173
Fixes
- AppSec: Scope the mongodb nosql-analysis marker per query #9076
- aws-durable-execution-sdk-js: Treat FAILED checkpoints as replays #9160
- datastreams: Flush on write when flushInterval is 0 #9120
- General: Wrap lazily defined fs.opendir on Node 20 #9094
- Test Optimization: Handle missing beforeEach task result #9129
- Test Optimization: Report typecheck tests #9176
- Test Optimization: Route thread workers through main process #9169
Performance
- General: Load the GCP pubsub push plugin lazily #9178
- loader: Match instrumented modules with a shouldInclude predicate #9026
Documentation
Internal (CI, Testing, Benchmarking)
- child_process: Fix Bluebird flake that cascades to every later spec #9078
- child_process: Load the mock agent once per suite #9113
- coverage: Merge per-integration coverage in All Green before upload #9086
- Dependencies: Bump bullmq #9164
- Dependencies: Bump openai #9122
- Dependencies: Bump the vendor-minor-and-patch-dependencies group across 1 directory with 2 updates #9163
- Dynamic Instrumentation: Cover breakpoint error paths #8996
- engines: Widen engines.node to >=18 in CI to keep Node 18/20 jobs running #9145
- General: Derive supported config paths from canonical names #9112
- General: Drop dead profile assert helper and fix telemetry typo #7686
- General: Introduce namespace field and start pruning internalPropertyName #8943
- General: Key plugin version folders by single-digit major #9052
- General: Widen GC pause p95 bound to deflake #9121
- graphql: Migrate shimmer to orchestrion instrumentation #7757
- kafkajs: Drop retries:0 from header-disable producer tests #9106
- kafkajs: Stop pinning the produce offset in the sendBatch test #9074
- LLM Observability: Bump tested langchain versions with new cassette #9135
- LLM Observability: Use DD_LLMOBS_ENABLED in tagger sampling fixtures #9107
- oracledb: Bound connect and query timeouts in the ESM integration fixture #9105
- Add runtime family tag on appsec lambda span #9153
- feat(test optimization) Add Test Optimization HTTP cache reader #8860
- release: Add v6 into release workflows #9103
- release: Fix branch-diff Infinity crash on scientific notation SHAs #9101
- release: Fix publish by dropping dist-tag add #9100
- scripts: Disable V8 Maglev for Windows test children #9131
- Test Optimization: Handle 5xx retry in getKnownTests error test #9110
- Test Optimization: Prepare test metadata in main #9171
- Test Optimization: Split main and worker instrumentation #9170
Contributors
5.111.0
Features
- AppSec: In App WAF support for lambda #7783
- General: SVLS-9168 add aws.durable.operation_attempt tag to durable operation spans #8595
- OpenTelemetry: OTLP trace metrics support #8206
- release: Add breaking changes to release proposal #9196
- Test Optimization: Add vitest no-worker init mode #9173
Fixes
- AppSec: Scope the mongodb nosql-analysis marker per query #9076
- aws-durable-execution-sdk-js: Treat FAILED checkpoints as replays #9160
- datastreams: Flush on write when flushInterval is 0 #9120
- General: Wrap lazily defined fs.opendir on Node 20 #9094
- Test Optimization: Handle missing beforeEach task result #9129
- Test Optimization: Report typecheck tests #9176
- Test Optimization: Route thread workers through main process #9169
Performance
- General: Load the GCP pubsub push plugin lazily #9178
- loader: Match instrumented modules with a shouldInclude predicate #9026
Documentation
Internal (CI, Testing, Benchmarking)
- child_process: Fix Bluebird flake that cascades to every later spec #9078
- child_process: Load the mock agent once per suite #9113
- coverage: Merge per-integration coverage in All Green before upload #9086
- Dependencies: Bump bullmq #9164
- Dependencies: Bump openai #9122
- Dependencies: Bump the vendor-minor-and-patch-dependencies group across 1 directory with 2 updates #9163
- Dynamic Instrumentation: Cover breakpoint error paths #8996
- engines: Widen engines.node to >=18 in CI to keep Node 18/20 jobs running #9145
- General: Derive supported config paths from canonical names #9112
- General: Drop dead profile assert helper and fix telemetry typo #7686
- General: Introduce namespace field and start pruning internalPropertyName #8943
- General: Key plugin version folders by single-digit major #9052
- General: Widen GC pause p95 bound to deflake #9121
- graphql: Migrate shimmer to orchestrion instrumentation #7757
- kafkajs: Drop retries:0 from header-disable producer tests #9106
- kafkajs: Stop pinning the produce offset in the sendBatch test #9074
- LLM Observability: Bump tested langchain versions with new cassette #9135
- LLM Observability: Use DD_LLMOBS_ENABLED in tagger sampling fixtures #9107
- oracledb: Bound connect and query timeouts in the ESM integration fixture #9105
- Add runtime family tag on appsec lambda span #9153
- feat(test optimization) Add Test Optimization HTTP cache reader #8860
- release: Add v6 into release workflows #9103
- release: Fix branch-diff Infinity crash on scientific notation SHAs #9101
- release: Fix publish by dropping dist-tag add #9100
- scripts: Disable V8 Maglev for Windows test children #9131
- Test Optimization: Handle 5xx retry in getKnownTests error test #9110
- Test Optimization: Prepare test metadata in main #9171
- Test Optimization: Split main and worker instrumentation #9170