Skip to content

Releases: DataDog/dd-trace-java

1.67.1

Choose a tag to compare

@github-actions github-actions released this 08 Oct 14:21
v1.67.1
5941040

Announcement

Important

Fixes a security vulnerability, as described in GHSA-9x8v-5f43-c55r.

Components

Tracer core

Instrumentations

Core Java language instrumentation

1.67.0

Choose a tag to compare

@github-actions github-actions released this 07 Oct 09:11
v1.67.0
1380b85

Warning

This version contains a regression that can cause application hangs when virtual threads are used heavily at startup, on JDK versions from 21+ up to January 2025.

Components

AI Guard

Application Security Management (WAF)

  • 🐛 Finish HTTP client spans and close scopes when AppSec blocks requests (#12611 - @amarziali)
  • 🐛 Complete AWS Lambda AppSec telemetry integration (#12587 - @claponcet)
  • 🐛 Restore the no-arg constructors the Moshi reflective adapters require (#12566 - @claponcet)
  • 🐛 Fix concurrent access to AppSec derivatives during tracing (#12523 - @claponcet)
  • ✨ Add block_failure telemetry to jersey, resteasy, commons-fileupload and okhttp (#12519 - @jandro996)
  • ✨ Infer status 200 for implicit-success Lambda responses (#12494 - @claponcet)
  • 🐛 Consult AppSec trace rate limiter only when the WAF requests trace retention (#12482 - @claponcet)
  • 🐛 Report v1 SDK custom events as sdk_version:v1 in telemetry (#12438 - @claponcet)
  • ✨ Parse Lambda AppSec request bodies according to their content type (#12363 - @claponcet)
  • ✨ Add block-outcome telemetry for Netty blocking enforcement failures (#12316 - @jandro996)
  • 🐛 Fix AppSec instrumentation hooks lost after Remote Config reload (#12271 - @jandro996)
  • 🐛 Fix multipart body-map cap bypass and charset handling in RESTEasy (#12085 - @jandro996)

Build & Tooling

Configuration

Continuous Integration Visibility

Crash Tracking

  • 🐛 Fix crash-tracking script/directory permission lockdown (#12330 - @jbachorik)

Database Monitoring

  • ✨⚡ Reduce DBM comment buffer allocation (#12582 - @amarziali)
  • 🐛 Fix NPE in JDBC instrumentation when connection has no database type (#12371 - @dougqh)
  • ✨ Propagate Oracle dynamic service hash without SQL comments (#12234 - @joelmarcotte)

Dynamic Instrumentation

GraalVM native-image

  • 🐛 Fix stale _dd.base_service on GraalVM/Mandrel native-image builds (#12571 - @Yeison2020)

ML Observability (LLMObs)

  • 🐛 Carry the agent manifest inside metadata so it reaches the backend (#12512 - @ncybul)
  • ✨ Emit gen_ai.* attributes on APM spans (#12450 - @mz1119)
  • ✨ Propagate LLM Observability context across service boundaries (#12416 - @ncybul)

OpenFeature

Profiling

Telemetry

  • ✨ Introduce Tags/OTLP Resource Attributes for OTLP Adoption Metrics (#12516 - @mhlidd)

Trace context propagation

Tracer core

  • 🐛 Fix application service names beneath inferred proxy spans (#12553 - @mhlidd)
  • 🐛 Fix agent sampling rates being ignored when sampling rules are configured (#12490 - @mhlidd)
  • ✨⚡ Use ObjectStore to track context bound to arbitrary objects (#12463 - @mcculls)
  • 🧹 Improve concurrent hash table insertion performance (#12462 - @dougqh)
  • 🐛 Fix null trace config returned from extracted spans (#12413 - @mcculls)
  • 🐛 Keep JDK Unix socket timeouts from stopping trace delivery (#12322 - @bric3)

Instrumentations

Akka and Pekko instrumentation

  • 🐛 Release Akka message continuations when discarded to dead letters (#12616 - @amarziali)
  • 🐛 Prevent Akka HTTP timeout cleanup from retaining request context (#12615 - @amarziali)
  • 🐛 Use context swap for Akka and Pekko HTTP flows (#12507 - @amarziali)
  • 🐛 Prevent Pekko callbacks from retaining request contexts (#12675 - @amarziali)
  • 🐛 Prevent Pekko stream lifecycle context retention (#12470 - @amarziali)

Apache Spark instrumentation

AWS Lambda instrumentation

AWS SDK instrumentation

  • 🐛 Tag http.status_code on AWS SDK spans for non-2xx service errors (#12749 - @Yeison2020)
  • ✨⚡ Reduce SQS body propagation parsing overhead (#12568 - @amarziali)
  • ✨⚡ Reduce SQS propagation attribute formatting overhead (#12562 - @amarziali)

Core Java language instrumentation

  • ✨ Preserve trace context in delayed ForkJoinPool tasks (#12600 - @amarziali)
  • 🐛 Fix Java HTTP async continuation lifecycle (#12498 - @amarziali)
  • 🐛 Fix continuation cleanup when TimerTask is cancelled (#12464 - @amarziali)
  • ✨ Reduce virtual-thread context-propagation overhead on park/unpark (#11893 - @amarziali)

Couchbase instrumentation

  • 🐛 Prevent Couchbase Netty initialization from capturing context (#12520 - @amarziali)

Eclipse Vert.x instrumentation

  • 🐛 Prevent Vert.x 4 session reaper from retaining request contexts (#12667 - @bric3)

Guidewire instrumentation

JAX-RS instrumentation

  • 🐛 Fix multipart body-map cap bypass and charset handling in RESTEasy (#12085 - @jandro996)
  • ✨ Add block_failure telemetry to jersey, resteasy, commons-fileupload and okhttp (#12519 - @jandro996)

JDBC instrumentation

Jetty instrumentation

Kotlin instrumentation

  • 🐛 Prevent duplicate Kotlin coroutine continuation release (#12466 - @amarziali)

Lettuce instrumentation

  • 🐛 Fix Redis peer tags for Lettuce cluster-mode connections and commands (#12433 - @ygree)

MongoDB instrumentation

Netty instrumentation

  • ✨⚡ Reuse Netty request-context attributes between requests (#12584 - @amarziali)
  • 🧹 Fix context propagation for delayed Netty scheduled task (#12541 - @amarziali)
  • 🐛 Prevent Netty idle timers from retaining request context (#12503 - @amarziali)
  • 🐛 Prevent Netty periodic purge tasks from inheriting context (#12499 - @amarziali)
  • ✨ Add block-outcome telemetry for Netty blocking enforcement failures (#12316 - @jandro996)

Spring instrumentation

  • ✨ Share the WebFlux parsed-route cache across requests (#12561 - @amarziali)
  • ✨⚡ Avoid repeated controller attribute-key allocation in Spring MVC (#12547 - @amarziali)

Square OkHttp instrumentation

  • ✨⚡ Reduce OkHttp AppSec header conversion overhead (#12567 - @amarziali)
  • ✨ Add block_failure...
Read more

1.66.0

Choose a tag to compare

@github-actions github-actions released this 08 Sep 10:21
v1.66.0
a099fff

Components

Application Security Management (IAST)

Application Security Management (WAF)

  • ✨ Add API Security schema extraction and missing-route metrics (#12300 - @jandro996)
  • 🐛 Bound unresolved-artifact retry loop in ScaReachabilityTransformer (#12245 - @jandro996)
  • ✨ Add HTTP span tags to the AWS Lambda invocation span (#12226 - @claponcet)
  • ✨ Bump libsqreen (libddwaf-java) to 17.5.0 for libddwaf 2.0.1 (#12118 - @jandro996)

Configuration

  • 🐛 Support OpenTelemetry deployment environment names (#12324 - @tylfin)

Continuous Integration Visibility

Crash Tracking

Data Streams Monitoring

Dynamic Instrumentation

ML Observability (LLMObs)

Metrics

  • 🐛 Fix OTLP trace-metrics attribute compliance gaps (#12144 - @mabdinur)
  • ✨ Report stats span collapses over telemetry (client-side stats) (#12070 - @dougqh)

OpenFeature

Profiling

Telemetry

  • ✨ Add API Security schema extraction and missing-route metrics (#12300 - @jandro996)
  • 🐛 Aggregate span.finished telemetry counts per interval (#12136 - @Yun-Kim)
  • 🐛 Guard core-metric telemetry drain against queue-full delta loss (#12081 - @dougqh)
  • ✨ Redact OTLP header and Datadog key configs in telemetry (#11583 - @bm1549)

Trace context propagation

Tracer core

  • 🐛 Preserve deterministic sampler rates (#12382 - @MilanGarnier)
  • ✨ Support using GlobalObjectStore for non-field-injected contexts (#12381 - @mcculls)
  • 🐛 Fix span link span ID hex padding (#12279 - @itsamenathan - thanks for the contribution!)
  • 🐛 Only warn about trace buffer overflow when a kept trace is lost (#12348 - @dougqh)
  • ✨ Update dd-instrument-java to v0.0.5 (#12344 - @mcculls)
  • ✨ Update byte-buddy dependency to 1.18.12 (#12325 - @sarahchen6)
  • 💡 Allow tracer clock to be resynced after an AWS Lambda SnapStart restore (#11882 - @sheldon-nadarajah-sft - thanks for the contribution!)
  • ✨ Add agent attribution to Java SDK (#12238 - @yahya-mouman)
  • 🐛 Fix uncaught StackOverflowError in StackTraces.getStackTrace (#12233 - @dougqh)
  • 🐛 Fix trailing element separator rejecting valid dd tracestate (#12229 - @mcculls)
  • ⚡🧹 Recalibrate the UTF8 caches every N spans instead of per span (#11945 - @dougqh)
  • 🧹 Wire mergedTracerTags as a read-through parent at span build (level-split) (phase 1a) (#11932 - @dougqh)

Tracer internal logging

  • 🐛 Only warn about trace buffer overflow when a kept trace is lost (#12348 - @dougqh)

Instrumentations

Apache Spark instrumentation

AWS SDK instrumentation

Core Java language instrumentation

  • 🐛 Prevent NPE in HttpClientDecorator.isAgentRequest for a null request (#12376 - @dougqh)
  • 🐛 Fix NullPointerException in OSGi BundleWiringHelper when bundle reference is stale (#12241 - @dougqh)

Guidewire instrumentation

Kafka instrumentation

Netty instrumentation

  • 🐛 Treat Netty native client aborts as non-error responses (#12295 - @ygree)

OpenTelemetry instrumentation

  • 🐛 Fix concurrent span event recording in OTel shim (#12053 - @Meemaw - thanks for the contribution!)

1.65.1

Choose a tag to compare

@github-actions github-actions released this 10 Aug 16:55
v1.65.1
83d0540

Components

OpenFeature

  • 🐛 Handle gracefully malformed flag evaluations; migrate Date->Instant (#12176 - @leoromanovsky)

Profiling

1.65.0

Choose a tag to compare

@github-actions github-actions released this 04 Aug 19:23
v1.65.0
dd00372

Components

AI Guard

  • ✨ Support DD_APM_TRACING_ENABLED=false for AI Guard traces (#11885 - @claponcet)

Application Security Management (WAF)

  • ✨ Update default AppSec ruleset to release 1.18.2 (#12099 - @jandro996)
  • 🐛 Stamp _dd.apm.enabled on every exported chunk when APM tracing is disabled (#12028 - @claponcet)
  • 🐛 Fix WafContext TOCTOU race resurrecting orphaned native contexts (#12024 - @jandro996)
  • 🐛 Fix Metaspace leak in SCA Reachability retransform and opcode injection (#12013 - @jandro996)
  • ✨ Report agentic onboarding marker in configuration telemetry (RFC-1113) (#11983 - @christophe-papazian)
  • 🐛 Bound multipart text/plain field materialization in Jersey AppSec (#11944 - @jandro996)
  • 🐛 Update libddwaf-java to 17.4.0 (#11943 - @jandro996)
  • ✨ AppSec Lambda: Analyze HTTP response (#11750 - @claponcet)
  • ✨ Add server.request.body.files_content AppSec address for Undertow and Play (#11726 - @jandro996)
  • ✨ Add server.request.body.files_content AppSec address for Akka HTTP (#11725 - @jandro996)
  • ✨ Add server.request.body.files_content AppSec address for Vert.x 3/4/5 (#11724 - @jandro996)
  • ✨ Add server.request.body.files_content AppSec address for Jetty (#11706 - @jandro996)

Build & Tooling

Continuous Integration Visibility

Data Streams Monitoring

  • 🧹 Remove full schema collection from Kafka, Avro, and Protobuf instrumentation (#12038 - @piochelepiotr)
  • 🐛 Tag consumer spans with the pathway hash on every data streams checkpoint (#11808 - @ericfirth)

Dynamic Instrumentation

ML Observability (LLMObs)

Metrics

  • ✨ Emit additional metric tags on the OTLP stats export path (client-side stats) (#12069 - @dougqh)
  • ✨ Add span-derived primary tags (CSS v1.3.0) (#11402 - @dougqh)

OpenFeature

Platform

Profiling

Testing

Trace context propagation

  • 🐛 Decouple W3C lastParentId from shared propagation-tag mutation (#11702 - @dougqh)

Tracer core

  • ✨ Fix propagation tag serialization for trace chunks (#12096 - @sarahchen6)
  • ✨ Report OTLP export status in tracer startup log (#12062 - @bm1549)
  • 🐛 Fix lookup-then-read race in GenerationalUtf8Cache.getUtf8 (#11917 - @dougqh)
  • ✨ Wire per-component cardinality limits from Config (#11732 - @dougqh)

Tracer internal logging

Instrumentations

Apache Spark instrumentation

Core Java language instrumentation

  • ⚡🧹 Replace ThreadPoolExecutor context-store with ClassValue cache (#12105 - @mcculls)

Kafka instrumentation

  • 🧹 Remove full schema collection from Kafka, Avro, and Protobuf instrumentation (#12038 - @piochelepiotr)
  • 🐛 Fix NoSuchElementException from unchecked Optional.get() in Kafka consumer instrumentation (#12007 - @piochelepiotr)

Netty instrumentation

  • 🐛 Keep Netty 4.1 server spans open until streaming responses complete (#11941 - @ygree)
  • 🐛 Fix Netty 4.1 tracing for pipelined HTTP/1.1 responses (#11937 - @ygree)

OpenTelemetry instrumentation

  • ✨ Telemetry for OTLP traces/metrics/logs (#12057 - @mcculls)
  • ✨⚡ Limit growth of OTLP trace buffer (#12052 - @mcculls)
  • ✨ Support OTLP export over "http/json" for traces, metrics, and logs (#12018 - @mcculls)

Protocol Buffer instrumentation

  • 🧹 Remove full schema collection from Kafka, Avro, and Protobuf instrumentation (#12038 - @piochelepiotr)

RabbitMQ instrumentation

  • 🐛 Use routing key as DSM topic for RabbitMQ default-exchange publishes (#11805 - @ericfirth)

Reactor instrumentation

  • ✨ Support W3C baggage propagation across reactor-netty connect hand-off (#12027 - @mcculls)
  • 🐛 Fix multicast context propagation race in reactor/reactive-streams (#11825 - @amarziali)

Spring instrumentation

All other instrumentations

  • ✨ Support W3C baggage propagation across various async instrumentation (#12033 - @mcculls)
  • 🐛 Add missing throwable suppression on instrumentation advice (#12019 - @PerfectSlayer)
  • 🐛 Fix Undertow versions > 2.2.40, 2.3.25 and 2.4.0 (#11844 - @vandonr)

1.64.2

Choose a tag to compare

@github-actions github-actions released this 27 Jul 11:59
v1.64.2
936160c

Components

Application Security Management (WAF)

  • 🐛 Fix Metaspace leak in SCA Reachability retransform and opcode injection (#12075 - @claponcet)
  • 🐛 Stamp _dd.apm.enabled on every exported chunk when APM tracing is disabled (#12068 - @claponcet)

Profiling

Realtime User Monitoring

Instrumentations

Kafka instrumentation

  • 🐛 Fix NoSuchElementException from unchecked Optional.get() in Kafka consumer instrumentation (#12066 - @PerfectSlayer)

1.64.1

Choose a tag to compare

@github-actions github-actions released this 16 Jul 21:05
v1.64.1
5b36a52

Components

Tracer core

  • 🐛 Guard InternalTagAdder against null prebuilt tagmap entry (#11962 - @amarziali)

1.64.0

Choose a tag to compare

@github-actions github-actions released this 08 Jul 15:06
v1.64.0
b767c68

Note

When the sampling.priority tag has a positive value we now translate that to forceKeep to ensure the trace segment is kept regardless of any previous sampling decision

Components

Application Security Management (IAST)

  • 🐛🔐 Fix AppSec/IAST context dropped when trace.propagation.behavior.extract=ignore/restart (#11666 - @dougqh)
  • ✨⚡ Improve performance of regexps in IAST and query obfuscator (#11649 - @manuel-alvarez-alvarez)
  • 🐛 Fix IAST JDBC instrumentation when getMetadata throws non-SQLException (#11420 - @smola)

Application Security Management (WAF)

  • 🐛 Fix unbounded multipart form-field buffering in Jetty 8 PartHelper (#11876 - @jandro996)
  • ✨ Add request_excluded tag to appsec.waf.requests metric (#11744 - @jandro996)
  • 🐛 Fix rasp.rule.match metric always reporting block:N/A (#11723 - @jandro996)
  • 🐛🔐 Fix AppSec/IAST context dropped when trace.propagation.behavior.extract=ignore/restart (#11666 - @dougqh)
  • ✨ Fix waf.updates metric success:N/A tag from sequential counter metric values (#11604 - @jandro996)
  • ✨ Implement SCA Reachability runtime detection: report vulnerable classes and callsites via telemetry (#11352 - @jandro996)
  • ✨ Add server.request.body.filenames AppSec address for Vert.x 3.4, 4.0 and 5.0 (#11268 - @jandro996)
  • ✨ Add server.request.body.filenames support for Jetty (#10988 - @jandro996)

Build & Tooling

Configuration at Runtime

  • ✨ Avoid logging stack trace during expected remote-config exception (#11328 - @sarahchen6)

Configuration

Continuous Integration Visibility

Crash Tracking

Data Streams Monitoring

Dynamic Instrumentation

Metrics

  • ✨🧹 Update AggregateEntry to Split OK/Error Latencies (#11719 - @mhlidd)
  • ✨⚡ Lazy-allocate error latency histogram on AggregateEntry (#11478 - @dougqh)
  • ✨⚡ Introduce per-component / tag cardinality limits in client-side stats (#11387 - @dougqh)

OpenFeature

Profiling

Telemetry

  • ✨ Migrate SCA Reachability to method-level symbol database (sca-reachability-symbols) (#11614 - @jandro996)
  • ✨ Fix waf.updates metric success:N/A tag from sequential counter metric values (#11604 - @jandro996)
  • ✨ Implement SCA Reachability runtime detection: report vulnerable classes and callsites via telemetry (#11352 - @jandro996)

Trace context propagation

  • 🐛🔐 Fix AppSec/IAST context dropped when trace.propagation.behavior.extract=ignore/restart (#11666 - @dougqh)
  • ✨ Implement an Org Propagation Guard mechanism (#11289 - @amarziali)

Tracer core

  • ✨ Introduce api-management inferred proxy spans to Azure (#11804 - @TophrC-dd)
  • 🧹 Migrate simple try-with-resources use of AgentScope to ContextScope (#11763 - @mcculls)
  • ⚡🧹 Overhaul set benchmarks: split Immutable / SingleThreaded, add Set.copyOf (#11721 - @dougqh)
  • ✨ Wire -Pjmh.includes and -PtestJvm into internal-api JMH config (#11703 - @dougqh)
  • 🐛🔐 Fix AppSec/IAST context dropped when trace.propagation.behavior.extract=ignore/restart (#11666 - @dougqh)
  • ✨ Update jnr-unixsocket dependency to 0.38.25 (#11615 - @mcculls)
  • ✨ Update dd-instrument-java dependency to v0.0.4 (#11567 - @mcculls)
  • ✨ Update byte-buddy dependency to 1.18.10 (#11565 - @mcculls)
  • ✨⚡ Pre-construct TagMap.Entry objects in InternalTagsAdder (#11555 - @dougqh)
  • 🐛 Fix JDBC URL parsing crash when no port specified (#11550 - @ValentinZakharov)
  • 🐛 Build DatadogClassLoader resource URL from agent jar URL, not OS path (#11480 - @dougqh)
  • ✨ Include advice class name in instrumentation exception handler log (#11457 - @amarziali)
  • ✨⚡ Use TagMap.set in CoreTracer (#11106 - @dougqh)
  • 📖⚡ List iteration benchmark (#10888 - @dougqh)
  • 📖⚡ Atomics benchmark (#10862 - @dougqh)
  • ✨⚡ Adding lighter String processing methods to Strings (#10640 - @dougqh)

Tracer public API

  • 💡⚠️ Translate a sampling.priority tag set to a positive value to forceKeep (#11621 - @mcculls)
  • 🐛 Fix DDTraceId/DD64bTraceId class-initialization deadlock (#11509 - @bm1549)

Instrumentations

Apache HttpComponents

  • 🐛🔐 Fix private headers leaking to a different origin on redirect (#11671 - @vandonr)

Apache Spark instrumentation

  • ✨ Inject ol_env into ol spark run tags (#11786 - @ajyu)

Armeria Instrumentation

  • 🐛 Fix Ameria 1.40 instrumentation compatibility (#11827 - @vandonr)
  • ✨ Ignore capturing connection continuation for armeria (#11657 - @amarziali)

AWS Lambda instrumentation

AWS SDK instrumentation

  • 🐛 Fix message handler spans appear disconnected from the incoming SQS trace (#11511 - @ygree)

Azure Functions instrumentation

  • ✨ Introduces the api-management inferred proxy spans to Azure (#11804 - @TophrC-dd)

Core Java language instrumentation

Eclipse Vert.x instrumentation

JAX-RS instrumentation

  • ✨ Avoid leaking continuations on internal rxjava schedulers (#11540 - @amarziali)

JDBC instrumentation

Kafka instrumentation

  • 🐛 Add safe extraction for malformed base64 kafka headers (#11472 - @amarziali)

Lettuce instrumentation

  • 🐛 Fix Redis command span decoration to resolve node connection for master-replica providers in Lettuce 5+ (#11819 - @ygree)
  • 🐛 Fine tune async propagation for lettuce 5 (#11607 - @amarziali)

Netty instrumentation

  • ✨ Do not capture continuation on netty GlobalEventExecutor static init (#11654 - @amarziali)
  • 🐛 Fix continuation leakage on netty http2 client pipeline (#11595 - @amarziali)

Reactor instrumentation

  • 🧹 Make reactor-core / reactive-streams context propagation Context-first (#11578 - @amarziali)

Servlet instrumentation

  • 🐛 Fix StackOverflowError in caused by missing re-entrancy guard (#11838 - @ValentinZakharov)
  • 🐛 Tolerate servlet 2.x wrappers used on servlet-3 classpath for isAsyncStarted calls (#11542 - @amarziali)

Spring instrumentation

  • ✨ Drop the duplicate handler resolution in Spring Web 6 instrumentation (#11533 - @amarziali)
  • 🐛 Build DatadogClassLoader resource URL from agent jar URL, not OS path (#11480 - @dougqh)

All other instrumentations

1.63.2

Choose a tag to compare

@github-actions github-actions released this 26 Jun 17:17
v1.63.2
7f95de2

Note

This release contains the same changes as in release 1.63.1. Release 1.63.1 is not flawed in any way.

Components

Application Security Management (IAST)

Continuous Integration Visibility

Dynamic Instrumentation

  • 🐛 Fix sampling log probe with capture expressions (#11628 - @jpbempel)

OpenFeature

1.63.1

Choose a tag to compare

@github-actions github-actions released this 25 Jun 15:12
v1.63.1
7ed9344

Note

This release is missing in Docker registries.

Components

Application Security Management (IAST)

Continuous Integration Visibility

Dynamic Instrumentation

  • 🐛 Fix sampling log probe with capture expressions (#11628 - @jpbempel)

OpenFeature