Skip to content

Releases: DataDog/dd-trace-java

1.62.0

04 May 15:42
v1.62.0
16c6a5f

Choose a tag to compare

Note

Do not enable Trace Payload protocol V1 until further notice as it is not enabled on all DataDog backends yet.

Components

AI Guard

Application Security Management (IAST)

  • 🐛 🪞 10671 - Fix platform-dependent String.getBytes() calls to use explicit UTF-8 charset (#11149 - @mcculls - thanks @saravadeo for the contribution!)

Application Security Management (WAF)

  • ✨ Add server.request.body.files_content AppSec address: commons-fileupload (#11137), Tomcat & Netty multipart (#11198), Jersey & RESTEasy(#11229) - @jandro996
  • ✨ Add server.request.body.filenames AppSec address: Jersey & RESTEasy (#11171), Akka HTTP (#11173), Undertow & Play (#11174) - @jandro996
  • ✨ Expose server.io.fs.file_write AppSec address for write file operations (#11084),FileOutputStream/FileInputStream constructors(#11113), Files.copy overloads (#11179) - @jandro996
  • ✨ Add AppSec Java support for AWS Lambdas (#10570 - @claponcet)
  • 🐛 Restore original tracer during LambdaAppSecHandlerTest cleanup (#11172 - @claponcet)

Configuration

  • ✨ Add Integration Specific Handling for Config Inversion Linter (#11074 - @mhlidd)
  • ✨ Add Profiling Specific Handling for Config Inversion Linter (#11066 - @mhlidd)
  • ✨ Update Spock Tests to run with STRICT_TEST mode by default (#11032 - @mhlidd)

Continuous Integration Visibility

Crash Tracking

  • ✨ Enable sending crashtracking reports to errors intake by default (#11243 - @amarziali)
  • 🐛 🪞 10671 - Fix platform-dependent String.getBytes() calls to use explicit UTF-8 charset (#11149 - @mcculls - thanks @saravadeo for the contribution!)
  • ✨ Do not use java.nio in crashtracking init (premain) (#11080 - @amarziali)

Dynamic Instrumentation

Metrics

OpenFeature

  • 💡 Add flag evaluation metrics via OTel counter and OpenFeature Hook (#11040 - @typotter)
  • ✨ Refine variant reason computation to include SPLIT and STATIC (#11037 - @typotter)
  • 🐛 Strictly check variant types in Flag Evaluations (#11036 - @typotter)

Profiling

Telemetry

Testing

Trace context propagation

Tracer core

Instrumentations

Apache Spark instrumentation

  • ✨ Add spark.openlineage.appName tag to spark.application spans (#11246 - @aboitreaud)
  • 🐛 Fall back to jobGroupId when jobRunId equals taskRunId (#11199 - @aboitreaud)
  • ✨ Instrument QueryExecution.assertAnalyzed() to catch DataFrame analysis failures (#11033 - @aboitreaud)

AWS SDK instrumentation

Core Java language instrumentation

Jetty instrumentation

  • 🐛 Fix peer IP tags in Jetty/Dropwizard (#11237 - @smola)

Kafka instrumentation

OpenTelemetry instrumentation

  • 🐛 Correctly export overflow histogram bucket over OTLP (#11261 - @mcculls)
  • 💡 Support sending OpenTelemetry logs over OTLP (http/protobuf) (#11253 - @mcculls)
  • 🐛⚡ Miscellaneous OpenTelemetry Metrics fixes (#11240 - @mcculls)
  • 💡 Implement OpenTelemetry Logs API (#11224 - @mcculls)
  • 💡 Add telemetry attributes to OTLP payloads (#11125 - @mcculls)
  • 💡 Provide optimized writers for OpenTelemetry's "trace.proto" wire protocol (#11120 - @mcculls)

Sofa RPC

1.61.1

16 Apr 14:46
v1.61.1
e32291a

Choose a tag to compare

Instrumentations

Core Java language instrumentation

1.61.0

08 Apr 15:11
v1.61.0
aa7c70f

Choose a tag to compare

Warning

This version contains a known regression that can cause application hangs when virtual threads are used heavily at startup, on JDK versions from 21+ up to January 2025. If you use virtual threads, please upgrade to the latest version.

Components

Application Security Management (IAST)

  • 🐛 Skip XSS check for freemarker built-in escaping expressions in 2.3.24 instrumentation (#10865 - @jandro996)

Application Security Management (WAF)

  • ✨ Add server.request.body.filenames support for Tomcat and Netty 4.1 (#10973 - @jandro996)
  • ✨ Add server.request.body.filenames AppSec address for commons-fileupload (#10949 - @jandro996)
  • ✨🧪 Return AI Guard SDS findings into SDK Response (#10821 - @obordeau)
  • 🐛 Fix ObjectIntrospection exposing JDK internal toString() to the WAF (#10820 - @jandro996)
  • ✨ Honor in-app blocking settings by default in AI Guard evaluate (#10818 - @smola)
  • 🐛 Fix HttpEndpointPostProcessor incorrectly overwriting span resource name (#10754 - @jandro996)
  • ✨ Add http.status_code, error, and http.useragent to inferred proxy spans (#10749 - @jandro996)
  • 🐛 Fix content-type extraction for akka-http (#10742 - @jandro996)
  • ✨🧪 Attach SDS findings to ai_guard spans (#10721 - @obordeau)
  • 🐛 Fix missing http.response.headers.content-type span tag on blocking responses (#10711 - @jandro996)
  • 🐛 Fix AWS API Gateway endpoints correlation HTTP span tags - Inferred Proxy Spans (#10561 - @jandro996)

Configuration

  • ✨ Guarantee OTel Configs to run through ConfigHelper (#11057 - @mhlidd)
  • ✨ Update supported-configurations.json w/ Missing Configs (#11046 - @mhlidd)
  • ✨ Update JUnit Tests to run with STRICT_TEST mode by default (#11045 - @mhlidd)
  • ✨ Update ConfigHelper to throw error in STRICT_TEST mode and capture undocumented Configs (#11031 - @mhlidd)

Continuous Integration Visibility

Crash Tracking

  • ✨ Feature flag crashtracking extended info, and improve runtime args filtering (#11048 - @bric3)
  • 🐛 Unset ld_preload and dyld_insert_libraries for crashtracker child JVM (#11041 - @gyuheon0h)
  • ✨ Report JVM argument flags for crash tracking (#11013 - @bric3)
  • ✨ Reports loaded libraries in crashtracking reports (#11000 - @bric3)
  • 🐛✨ Add crashtracking addresses and error thread name (#10984 - @bric3)
  • ✨ Properly handle OpenJ9 crash report (#10976 - @bric3)
  • 🐛 Fix crashtracking siginfo missed some information (#10907 - @bric3)
  • 🐛 Change error tracking crashtracker source (#10848 - @amarziali)
  • 🐛 Unset inherited JVM env vars in crashtracking scripts (#10819 - @jbachorik)

Database Monitoring

Dynamic Instrumentation

Logs Product

  • 🐛 Fix check raw file injection smoke test (#10920 - @bm1549)

ML Observability (LLMObs)

  • ✨ Propagate global dd_tags to LLMObs span tags (#10978 - @ygree)
  • 🐛 Fix openai-java payload mapping for responses, tool metadata, and prompt tracking (#10644 - @ygree)

Metrics

OpenFeature

Platform

Profiling

Telemetry

  • ✨ Update Environment Variable Normalization to not add DD prefix for OTel Configs (#11044 - @mhlidd)
  • 🐛 Report dd-java-agent itself as a Maven dependency in SCA telemetry (#10975 - @jandro996)
  • ✨ Add stable session ID headers to telemetry requests (#10914 - @khanayan123)
  • ✨ Update Telemetry Key Normalization to Use Environment Variables (#10823 - @mhlidd)
  • ✨⚡ Replace Objects.hash with HashingUtils.hash in telemetry (#10813 - @dougqh)
  • ✨⚡ Reduce allocation overhead of ExceptionLogger / LogCollector (#10684 - @dougqh)

Testing

Trace context propagation

Tracer core

  • ✨ Use TagMap.set in CoreTracer tracer tags (#11004 - @dougqh)
  • ✨⚡ Replace interceptors ConcurrentSkipListSet with priority ordered copy on write "list" (#11002 - @dougqh)
  • ✨⚡ Cache Tracer Host Entry to reduce allocation in RemoteHostnameAdder (#10968 - @dougqh)
  • ✨ Add ObjectInputStream.readObject to forbidden apis (#10952 - @dougqh)
  • ✨ Add ParentBasedAlwaysOnSampler as default sampler for OTLP trace export mode (#10915 - @mtoffl01)
  • 🐛 Handle the case the info response does not contain endpoints / empty (#10838 - @amarziali)
  • ✨⚡ Use forEach to avoid Iterator allocation (#10830 - @dougqh)
  • ✨⚡ Avoid ArrayList copying from TraceInterceptors (#10828 - @dougqh)
  • ✨⚡ Avoid creation of empty CopyOnWriteArrayList for span links (#10822 - @dougqh)
  • ✨ Update BaseHash when process tags are updated (#10809 - @amarziali)
  • ✨ Add _dd.p.ksr propagated tag for Knuth sampling rate (#10802 - @bm1549)
  • ✨ Add capped sampling rate increases (#10715 - @raphaelgavache)
  • ✨⚡ Avoid boxing by using TagMap.set in PayloadTagsProcessor (#10964 - @dougqh)
  • ✨🧪 Add tracing support for native method calls via Java FFM API (#10718 - @amarziali)

Tracer internal logging

Instrumentations

Apache Spark instrumentation

Armeria Instrumentation

  • 🐛 Report gRPC status code in client-computed stats (#10805 - @bric3)

AWS SDK instrumentation

  • 🐛 Inject APM trace headers into SQS _datadog message attribute on send (#10843 - @ygree)

Core Java language instrumentation

Read more

1.60.4

01 Apr 14:04
v1.60.4
e6fe2ab

Choose a tag to compare

Important

This release fixes a possibility of profiler deadlocking a thread if a library intercepting SIGSEGV is present

Components

Profiling

1.60.3

23 Mar 18:01
v1.60.3
14f1ebb

Choose a tag to compare

Announcement

Important

This release fixes CVE-2026-33728.

Components

Continuous Integration Visibility

Profiling

Instrumentations

RMI

1.60.2

19 Mar 17:11
v1.60.2
428d682

Choose a tag to compare

Components

Application Security Management (WAF)

  • 🐛 Add http.response.headers.content-type span tag on blocking responses (#10884 - @jandro996)
  • 🐛 Fix ObjectIntrospection exposing JDK internal toString() to the WAF (#10882 - @jandro996)

Profiling

1.60.1

04 Mar 17:58
v1.60.1
d84b442

Choose a tag to compare

Instrumentations

OpenTelemetry instrumentation

1.60.0

03 Mar 10:06
v1.60.0
0f5d84f

Choose a tag to compare

Known Bugs

Warning

This version broke the OpenTelemetry instrumentation library support.
If you use this feature, please upgrade to the latest version.

Components

Application Security Management (WAF)

  • 🐛 Forbidden attempt to set different raw URI for given request context - issue #10700 (#10709 - @jandro996)
  • ✨🧪 Set sampling decision maker for AI Guard (#10702 - @smola)
  • 🐛 Always collect response headers in span when AppSec is enabled (#10648 - @jandro996)
  • ✨ Force manual keep of traces for AI Guard (#10625 - @smola)
  • 🐛 Optimize AppSecRequestContext numeric conversion to eliminate exceptions on hot path (#10520 - @jandro996)
  • ✨ Improve API Security sampling when tracers lack HTTP routes(#10424 - @jandro996)
  • ✨ HTTP Endpoint Inference for Trace Resource Renaming (#10393 - @jandro996)

Configuration

  • ✨ Add DD_OTLP_METRICS_COMPRESSION setting and map OTel env-vars to it (#10680 - @mcculls)

Continuous Integration Visibility

Crash Tracking

  • ✨ Preserve the function relative address when parsing a crash (#10544 - @amarziali)
  • ✨ Add J9/OpenJ9 crash tracking support (#10496 - @jbachorik)
  • ✨ Improve crashtracking payload and add build_id and relative address (#10469 - @amarziali)

Data Streams Monitoring

Database Monitoring

  • 🐛 Write base hash to current span when injected in DBM comment (#10450 - @vandonr)

Dynamic Instrumentation

Profiling

Trace context propagation

  • ✨⚡ Changing traceSource to volatile rather than an AtomicInteger (#10614 - @dougqh)

Tracer core

Tracer internal logging

Instrumentations

Apache Spark instrumentation

AWS Lambda instrumentation

Core Java language instrumentation

JDBC instrumentation

JMS instrumentation

Netty instrumentation

  • 🐛 Track server context in netty4 instrumentation (#10556 - @mcculls)
  • 🐛 Track server context in netty3 instrumentation (#10555 - @mcculls)

OpenTelemetry instrumentation

  • ✨ Add DD_OTLP_METRICS_COMPRESSION setting and map OTel env-vars to it (#10680 - @mcculls)
  • 💡 Implement OpenTelemetry Observable Metrics API (#10631 - @mcculls)
  • 💡 Adjust OpenTelemetry metrics temporality according to global preference and instrument type (#10545 - @mcculls)
  • 💡 Add support for otel.java.metrics.cardinality.limit system property (#10541 - @mcculls)
  • 💡 Implement OpenTelemetry meter storage and aggregations (#10534 - @mcculls)

Play Framework instrumentation

  • 🐛 Combine play spans with surrounding framework context before attaching them (#10554 - @mcculls)

Servlet instrumentation

  • 🐛 Combine dispatch span with request context in generic Servlet3 advice (#10557 - @mcculls)
  • ✨⚡ Reuse TagMap.Entry objects in BaseDecorator (#10501 - @dougqh)
  • ✨⚡ Extracting span kind & language into static TagMap.Entry objects (#10495 - @dougqh)
  • ✨⚡ Caching the primaryInstrumentationName (#10477 - @dougqh)

Synapse Instrumentation

1.59.0

02 Feb 14:49
v1.59.0
7e1bb03

Choose a tag to compare

Breaking Changes

Note

Manually overriding a sampling decision now always overrides the decision maker tag for future distributed trace propagation.

Components

Application Security Management (WAF)

Continuous Integration Visibility

Crash Tracking

Data Streams Monitoring

  • 🐛 Avoid NPE on DSM context extraction (#10491 - @amarziali)
  • 🐛 Fix DSM queue names with Kafka Connect IBM MQ connectors (#10318 - @johannbotha)
  • ✨ Initial version of transactions tracking implementation for DSM (#9899 - @kr-igor)

Dynamic Instrumentation

Library Injection

ML Observability (LLMObs)

  • 🐛 Fix LLMObs trace batching and payload size telemetry (#10395 - @ygree)
  • 🐛 Avoid sending empty payloads to the LLMObs endpoint (#10372 - @ygree)
  • 💡 Add openai-java v3.0+ instrumentation (#9959 - @ygree)

Metrics

OpenFeature

Profiling

Trace context propagation

  • 🐛⚠️ Always record force keep decisions for future distributed trace propagation (#10308 - @mcculls)

Tracer core

  • ✨ Add process tags related to service naming (#10480 - @amarziali)
  • ✨⚡ Avoid primitive boxing in v0.5 serializer (#10471 - @dougqh)
  • ✨ Add safety check for TargetSystem encoding limits (#10451 - @amarziali)
  • ✨ Compute basehash without allocating a stringbuilder (#10411 - @vandonr)
  • ✨⚡ Avoid primitive boxing in v0.4 serializer (#10408 - @dougqh)
  • ✨ Introduce @AppliesOn to override advices InstrumenterModule target system (#10404 - @amarziali)
  • ✨⚡ Introducing TagMap EntryReader (#10339 - @dougqh)
  • 🐛 Ledger.reset should reset containsRemoval status (#10338 - @dougqh)
  • ✨ Service discovery: defer FFM methodhandles resolutions (#10312 - @amarziali)
  • ✨ Use pure FFM to write on service discovery memfd from java 22 (#10295 - @amarziali)
  • ✨⚡ Enabling optimized map by default (#10016 - @dougqh)
  • ✨ Replace JCTools queues with VarHandle-based implementations for Java 25+ (#9896 - @amarziali)

Tracer internal logging

Instrumentations

Eclipse Vert.x instrumentation

  • 🐛 Have Vertx 4.0 prioritize path and fallback to name (#10382 - @mhlidd)

GraphQL instrumentation

  • 🐛 Add Custom Exception Handler to Unwrap CompletionException for GraphQL Instrumentations (#10389 - @mhlidd)

Kafka instrumentation

WebSocket Instrumentation

All other instrumentations

  • 🧹 Move pure context tracking instrumenter to InstrumenterModule.ContexTracking (#10425 - @amarziali)
  • 🐛 Avoid duplicate headers when injecting on java.net http client (#10315 - @amarziali)
  • ✨ CICS tracing (#10301 - @deejgregor - thanks for the contribution!)
  • 🐛 Avoid null store put on Ignite instrumentation (#10291 - @amarziali)
  • 💡 Add openai-java v3.0+ instrumentation (#9959 - @ygree)

1.58.2

23 Jan 19:13
v1.58.2
0612221

Choose a tag to compare

Known Bugs

Warning

The a bug in the profiler can cause crashes on libmusl. If running on libmusl based distribution, consider not upgrading or, if absolutely unavoidable, use -Ddd.profiling.ddprof.enabled=false to fall back to JFR-only profiling to avoid the possibility of crash.

Components

ML Observability (LLMObs)

  • 🐛 Fix LLMObs trace batching and payload size telemetry (#10417 - @ygree)
  • 🐛 Avoid sending empty payloads to the LLMObs endpoint (#10410 - @ygree)

Profiling