Releases: DataDog/dd-trace-java
1.61.0
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.jsonw/ Missing Configs (#11046 - @mhlidd) - ✨ Update JUnit Tests to run with
STRICT_TESTmode by default (#11045 - @mhlidd) - ✨ Update
ConfigHelperto throw error inSTRICT_TESTmode and capture undocumented Configs (#11031 - @mhlidd)
Continuous Integration Visibility
- 🐛 Include all candidate paths for duplicate keys in coverage reports (#10997 - @daniel-mohedano)
- ✨ Implement configuration error tagging for all backend requests (#10963 - @daniel-mohedano)
- 🐛 Fix Test Management telemetry (#10962 - @daniel-mohedano)
- ✨ Add support for Weaver 0.12 release (#10903 - @daniel-mohedano)
- ✨ Consider empty parameters as null in TestIdentifier creation (#10902 - @daniel-mohedano)
- ✨ Add error tag for library configuration request (#10856 - @daniel-mohedano)
- ✨ Add Java 26 support to CI Visibility (#10839 - @daniel-mohedano)
- ✨⚡ Use HashingUtils hash in CI Visibility (#10784 - @dougqh)
Crash Tracking
- ✨ Feature flag crashtracking extended info, and improve runtime args filtering (#11048 - @bric3)
- 🐛 Unset
ld_preloadanddyld_insert_librariesfor 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
- 🐛 Fix Oracle DBM trace correlation (#10829 - @azhou-datadog)
Dynamic Instrumentation
- 🐛 Fix NullPointerException in ExceptionProbe (#11051 - @jpbempel)
- 🐛 Fix NullPointerException in Fingerprinter (#11049 - @jpbempel)
- 🐛 Fix capture limit for capture expressions (#11042 - @jpbempel)
- 🐛 Fix CodeOrigin for interface endpoints (#11017 - @jpbempel)
- ✨ Optimize Lambda proxy class matching on filtering (#10905 - @jpbempel)
- 🐛 Fix Kotlin fake source mapping (#10880 - @jpbempel)
- 🐛 Fix NullPointerException in SymbolExtractor (#10858 - @jpbempel)
- 🐛 Handle exception from retrieving git info (#10853 - @jpbempel)
- 🐛 Change MethodParameters detection reporting (#10849 - @jpbempel)
- 🐛 Prevent retransforming record with type annotation (#10824 - @jpbempel)
- 🐛 Prevent instrumenting debugger agent classes (#10803 - @jpbempel)
- 🐛 Catch exception from detecting MethodParameters (#10779 - @jpbempel)
- 🐛 Prevent instrumenting first line of a constructor (#10772 - @jpbempel)
- 🐛 Catch exceptions in registerSourceFile (#10752 - @jpbempel)
- 🐛 Use SpringVersion to detect MethodParameters usage (#10750 - @jpbempel)
- 🐛 Fix Spring detection (#10740 - @jpbempel)
- 🐛 Add an error sampler for Log probes (#10638 - @jpbempel)
Logs Product
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
- ✨ Add GitCommitSha to the client stats (#10833 - @amarziali)
- 🐛 Report gRPC status code in client-computed stats (#10805 - @bric3)
- ✨⚡ Reduce memory allocation from client-side stats (#10705 - @dougqh)
- ✨ Reduce verbosity of StatsD connection errors (#10618 - @PerfectSlayer)
OpenFeature
- 🐛 Allow null targeting key for static and rule-only flags (#10990 - @leoromanovsky)
Platform
- ✨ Add HTTP component API module (#10770 - @PerfectSlayer)
Profiling
- ✨ Enable live heap profiling by default on safe JVM versions (#11039 - @jbachorik)
- ✨ Update Java profiler library to 1.40.1 (#10995 - @jbachorik)
- ✨ Remove experimental jvmti wallclock profiler (#10872 - @zhengyu123)
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
- ✨ Update JUnit Tests to run with
STRICT_TESTmode by default (#11045 - @mhlidd) - 🐛 Fix final_status workaround (#10852 - @cbeauchesne)
- 🧹 Refactor tests following Java migration (#10733 - @jpbempel)
Trace context propagation
- 🐛 Improve VirtualThread context tracking instrumentation (#11009 - @PerfectSlayer)
- 🐛 Fix VirtualThread support on multiple unmount/remount cycles (#10931 - @PerfectSlayer)
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
- 🐛 Fix EMR Spark support by using Seq instead of ArrayBuffer for externalAccums (#10987 - @aboitreaud)
- 🐛 Fix spark application spans status on sql analysis failure (#10981 - @aboitreaud)
- 🐛 Fix sql plan nodes order causing test flakiness (#10911 - @aboitreaud)
- 🐛 Fix flaky test assertion by normalizing column ref and plan_id num (#10757 - @aboitreaud)
- ✨ Capture time app-related metrics for launchers (#10708 - @aboitreaud)
- 🐛 Remove Wrong Spark Spans for Inactive Databricks Clusters (#10651 - @larakulkarni1)
- ✨ Store accumulator-stage lookups directly (#10645 - @charlesmyu)
- ✨ Track external accumulators in tracer instead of using SparkInfo values (#10553 - @charlesmyu)
Armeria Instrumentation
AWS SDK instrumentation
Core Java language instrumentation
- 🐛 Improve VirtualThread context tracking instrumentation (#11009 - @PerfectSlayer)
- 🐛 Fix VirtualThread support on multiple unmount/remount cycles (#10931 - @PerfectSlayer)
- 🧹 Disable outdated RMI instrumentation (#10897 - @PerfectSlayer)
- 🐛🔐 Use primitive types for RMI context payload serialization (#10935 - @PerfectSlayer)
- ✨ Mute tracing for agent http calls (#10690 - @PerfectSlayer)
gRPC instrumentation
JDBC instrumentation
1.60.4
Important
This release fixes a possibility of profiler deadlocking a thread if a library intercepting SIGSEGV is present
Components
Profiling
- 🐛 Update Java profiler library to 1.40.1 (#11012 - @jbachorik)
1.60.3
Announcement
Important
This release fixes CVE-2026-33728.
Components
Continuous Integration Visibility
- ✨ Add Java 26 support to CI Visibility (#10929 - @daniel-mohedano)
Profiling
- ✨ Update Java profiler library to 1.40.0 (#10932 - @jbachorik)
Instrumentations
RMI
- 🐛🔐 Use primitive types for RMI context payload serialization (#10937 - @PerfectSlayer)
1.60.2
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
- ✨ Update Java profiler library to 1.39.0 (#10869 - @jbachorik) (contains also 1.38.0)
1.60.1
Instrumentations
OpenTelemetry instrumentation
- 🐛 Restore OpenTelemetry instrumentation library support. (#10738 - @bric3)
1.60.0
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
Continuous Integration Visibility
- 🐛 Fix usage of deprecated field in AndroidGradleUtils (#10710 - @daniel-mohedano)
- 🧹 Refactor execution policies (#10676 - @daniel-mohedano)
- ✨ Add display name as parameter in JUnit5 dynamic tests (#10649 - @daniel-mohedano)
- ✨ Avoid computing merge base for PR info in DDCI legacy mode (#10624 - @daniel-mohedano)
- ✨⚡ Saving buildGitInfo lambda into a member variable (#10615 - @dougqh)
- ✨ Implement early exit for retry mechanisms (#10604 - @daniel-mohedano)
- 🐛 Validate path traversals in repo root (#10568 - @daniel-mohedano)
- ✨ Introduce pagination support for known tests API (#10536 - @daniel-mohedano)
- ✨ Create final status tag on test events (#10528 - @daniel-mohedano)
- ✨ Fix Job URL format for Github Actions (#10514 - @daniel-mohedano)
- ✨ Improve git security settings (#10486 - @daniel-mohedano)
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
Dynamic Instrumentation
- 🐛 Fix race condition for Failed Test Replay (#10679 - @daniel-mohedano)
- 🐛 Fix Windows path parsing in JarScanner (#10664 - @tylfin)
- ✨ Refactor to store samplers inside probes (#10605 - @jpbempel)
- 🐛 Fix SymDB jar processing (#10592 - @jpbempel)
- ✨ Send debugger logs to DEBUGGER track (#10585 - @jpbempel)
- 🐛 Fix Capture Expression on primitives (#10549 - @jpbempel)
- 🐛 Add rate limit on span decoration probe errors (#10529 - @jpbempel)
- 🐛 Fix method parameters JVM bug (#10521 - @jpbempel)
- 🐛 Fix Capture Expressions support for multi-probes (#10519 - @jpbempel)
- 🐛 Fix Exception Replay in Lambda (#10505 - @jpbempel)
Profiling
- ✨ Bump aircompressor to 2.0.3 (#10673 - @jbachorik)
- 🐛 Disable jdk.CPUTimeSample when ddprof handles CPU profiling (#10634 - @jbachorik)
- ✨ Add JFR scrubbing before profile upload (#10577 - @jbachorik)
Trace context propagation
Tracer core
- ✨ Add manual service name source (#10704 - @amarziali)
- 🐛 Do not remove the version tag if manually set (#10703 - @amarziali)
- 🧹 Upgrade to jctools 4.0.6 (#10691 - @amarziali)
- ✨ Refine service name sources for configuration options (#10658 - @amarziali)
- ✨ Add service name source to trace stats (#10653 - @amarziali)
- ✨⚡ Creating HashingUtils as alternative to Objects.hash (#10628 - @dougqh)
- ✨ Track service name source (#10607 - @amarziali)
- 🐛 Make MemFDUnixWriterFFM compatible with early SegmentAllocator jdk implementations (#10602 - @amarziali)
- ⚡🧹 Remove use of AtomicReferenceArray in RadixTreeCache (#10600 - @mcculls)
- ✨ Propagate response body in case of non 200 status code. (#10593 - @AlexeyKuznetsov-DD)
- ✨ Update
jnr-unixsocketdependency to 0.38.24 (#10565 - @mcculls) - 🐛 Avoid potential
ConcurrentModificationExceptioninTunnelingJdkSocket(#10564 - @mcculls) - ✨ Add primitive versions of setMetric to DDSpanContext (#10516 - @dougqh)
- ✨⚡ Reuse SpanKind Entry in ClientDecorator (#10503 - @dougqh)
- ✨⚡ Reducing Allocation from GitInfo (#10498 - @dougqh)
- ✨⚡ Caching the primaryInstrumentationName (#10477 - @dougqh)
- ✨⚡ Adds methods for setting TagMap.Entry directly on AgentSpan/DDSpan (#10472 - @dougqh)
- 🐛 Remove RadixTreeCache for int status and protect httpStatus short cache (#10236 - @amarziali)
Tracer internal logging
Instrumentations
Apache Spark instrumentation
- ✨ Spark instrumentation: capture emr step id when spark runs as EMR step (#10670 - @aboitreaud)
- ✨ Initial spark launcher instrumentation (#10629 - @aboitreaud)
AWS Lambda instrumentation
Core Java language instrumentation
- 🐛 Fixed issue with recursive calls which can cause StackOverflowError. (#10535 - @AlexeyKuznetsov-DD)
- ✨⚡ Reuse TagMap.Entry objects in BaseDecorator (#10501 - @dougqh)
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.limitsystem property (#10541 - @mcculls) - 💡 Implement OpenTelemetry meter storage and aggregations (#10534 - @mcculls)
Play Framework instrumentation
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
- ✨ Fix Synapse passthru spans finishing before status code is available (#10478 - @ValentinZakharov)
1.59.0
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)
- ✨🧪 Add support for content parts and image URLs in AI Guard (#10449 - @smola)
- ✨ Analyze okhttp client redirections as separated request (#10252 - @manuel-alvarez-alvarez)
Continuous Integration Visibility
- ✨ Use component as framework tag in manual API (#10313 - @daniel-mohedano)
Crash Tracking
- ✨ Strip temp suffix from known library names (#10335 - @amarziali)
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
- 🐛 Fix SymDB startup (#10493 - @jpbempel)
- ✨ Enable Code Origin by default for JDK21+ (#10468 - @jpbempel)
- 🐛 Avoid throwing exception for invalid modifiers (#10458 - @jpbempel)
- 🐛 Fix SymDB when processing corrupted jars (#10453 - @jpbempel)
- ✨ Add support of Kotlin's SourceDebugExtension (#10448 - @jpbempel)
- 🐛 Fix debugger start when endpoints aren't available (#10401 - @jpbempel)
- 🐛 Fix NullPointerException when scope failure (#10333 - @jpbempel)
- 🐛 Fix exceptions raised from Collection values (#10322 - @jpbempel)
- 🐛 fix NullPointerException in ClassesToRetransformFinder (#10316 - @jpbempel)
- 🐛 Fix ArrayOutOfBoundsException in ER sanity checks (#10314 - @jpbempel)
- 🐛 fix Capture Expressions for line probes (#10303 - @jpbempel)
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
- 🧹 Extract metrics from communication (#10399 - @PerfectSlayer)
OpenFeature
- 🐛 Add test case for OF.7: empty targeting key compliance (#10445 - @leoromanovsky)
- 🐛 Bump OpenFeature SDK to 1.20.1 (#10438 - @leoromanovsky)
- 🐛 Fix ISO 8601 date parsing to support variable precision (#10419 - @leoromanovsky)
Profiling
- ✨ Bump ddprof to 1.37.0 (#10487 - @jbachorik)
(see DataDog/java-profiler@v_1.34.4...v_1.37.0 for details) - 🐛 Should not access the thread states of none Java threads by @zhengyu123 in DataDog/java-profiler#346
- 🐛 Add alignment checks to NativeFunc mark methods by @jbachorik in DataDog/java-profiler#348
- ✨ Log profiler flare messages at WARN level (#10444 - @jbachorik)
- 🐛 Allow running wallclock profiler even without tracer (#10298 - @jbachorik)
Trace context propagation
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
GraphQL instrumentation
- 🐛 Add Custom Exception Handler to Unwrap
CompletionExceptionfor GraphQL Instrumentations (#10389 - @mhlidd)
Kafka instrumentation
- 🐛 Fix missing consumer_group and topic tags in DSM Kafka 3.8+ metrics (#10464 - @johannbotha)
- ✨ Use WithTypeStructure to check declaresField (#10307 - @amarziali)
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
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
1.58.1
Components
Continuous Integration Visibility
- ✨ Use component as framework tag in manual API (#10374 - @daniel-mohedano)
Instrumentations
All other instrumentations
- 🐛 Add InstrumenterModule.Tracing for Aerospike (#10373 - @amarziali)
1.58.0
Known Bugs
Warning
The Aerospike instrumentation does not apply in this dd-java-agent release. If you are instrumenting Aerospike, please upgrade to the latest version.
Breaking Changes
Note
We now limit the number of elements processed in Mongo documents (#10277). This only affects unusually long Mongo resource names derived from documents with more than 256 list elements.
Components
Application Security Management (WAF)
- 🐛 Fix synchronization of ASM_DD Product listeners (#10226 - @jandro996)
- ✨ Add Security Response ID (#10133 - @jandro996)
Data Streams Monitoring
- 🐛 Remove high cardinality tags from Data Streams hashes (#10287 - @piochelepiotr)
Database Monitoring
Dynamic Instrumentation
- 🐛⚡ Batch re-transformations when there are a high number of inner classes (#10289 - @jpbempel)
- ✨ Add support for Agrona collections (#10235 - @jpbempel)
- ✨ Enable Code Origin by default for JDK25+ (#10234 - @jpbempel)
Tracer core
- ✨ Upgrade to byte-buddy 1.18.3 (#10275 - @mcculls)
- ✨ Force early classloading for PublishState (#10273 - @amarziali)
- ✨⚡ Support creating AOT caches for Spring apps with custom trace interceptors (#10272 - @mcculls)
- 🐛 Ensure the class name is valid when enhancing with SerialVersionUIDAdder (#10270 - @amarziali)
- 🐛 Silence non-critical PayloadTagsProcessor parsing exception alert (#10263 - @ygree)
Tracer internal logging
- ✨ Support
DD_LOG_FORMAT_JSON(#10223 - @mcculls) - 💡 Add App Logs Collection feature (#10156 - @jpbempel)
Instrumentations
Apache Spark instrumentation
- ✨ Enable Spark Plan metadata parsing by default (#10169 - @charlesmyu)
Couchbase instrumentation
- 🐛 Multi-tracing support for Couchbase 3.2+ (#10147 - @ValentinZakharov)
JMS instrumentation
- 🐛 Do not break the JMS instrumentation when unable to access a property (#10255 - @amarziali)
MongoDB instrumentation
- 🐛
⚠️ Add a limit to the number of elements we process in a Mongo document (#10277 - @vandonr) - ✨ Add support for DBM comment injection with MongoDB (#9589 - @Yoone)
Servlet instrumentation
- 🐛 Protect jsp decorator from NPE (#10250 - @amarziali)
Spring instrumentation
- 🐛 Avoid NPE when inspecting spring messaging headers (#10254 - @amarziali)
All other instrumentations
- 🐛 Avoid NPE in tomcat classloading instrumentation (#10256 - @amarziali)