Releases: DataDog/dd-trace-java
Releases · DataDog/dd-trace-java
1.47.3
1.47.2
Components
Application Security Management (IAST)
- 🐛 🍒 8549 - Prevent before callsites targeting constructors in super calls (#8582 - @manuel-alvarez-alvarez)
1.47.1
Components
Continuous Integration Visibility
- 🐛 🍒 8521 - Fix NPE when calculating code coverage for Gradle projects with non-standard directory layout (#8546 - @nikita-tkachenko-datadog)
Tracer core
1.47.0
Components
Application Security Management (IAST)
- 🐛 Exclude com.stripe.net.HttpURLConnectionClient to solve IAST SSRF vulnerability false positives (#8483 - @jandro996)
- 🐛 Add exclusion to solve IAST weak randomness vulnerability false positives (#8462 - @jandro996)
- ✨ Fix weak randomness false positive in Kafka client (#8408 - @smola)
- ✨ Fix location for SSRF with Kong Unirest (#8407 - @smola)
- ✨ Exclude IBM Instana from IAST (#8406 - @smola)
- 🐛 Fix org.json iast instrumentation test for latest dependency (#8347 - @jandro996)
- ✨ Configuration to Disable APM Tracing (#8219 - @jandro996)
- ✨ Address cookie vulnerability cardinality issues (#8210 - @jandro996)
- ✨ Email HTML Injection detection in IAST (#8205 - @sezen-datadog)
Application Security Management (WAF)
- 🐛✨ Ensure usr.exists tag is not overridden when UsernameNotFoundException is thrown (#8376 - @manuel-alvarez-alvarez)
- 🐛✨ Ensure usr.exists tag is not overridden by auto instrumentation (#8374 - @manuel-alvarez-alvarez)
- ✨ Update appsec metrics with event_rules_version tag (#8354 - @sezen-datadog)
- ✨ Update metrics: appsec.waf.requests (#8353 - @Mariovido)
- ✨ Improve ASM support in vert.x 5.0 (#8285 - @manuel-alvarez-alvarez)
- ✨ Update metrics: appsec.waf.updates and appsec.waf.init (#8280 - @Mariovido)
- ✨ Configuration to Disable APM Tracing (#8219 - @jandro996)
Build & Tooling
- 🐛 Do not generate Muzzle references for primitive arrays in method body (#8361 - @amarziali)
- 📖 Improve dev env setup documentation for Windows (#8180 - @lucaspimentel)
Continuous Integration Visibility
- ✨ Add support for skip-EFD tagging (#8487 - @nikita-tkachenko-datadog)
- 🐛 Fix an NPE in Gradle Android instrumentation (#8484 - @nikita-tkachenko-datadog)
- ✨ Consider modified tests when applying fail-fast tests ordering (#8474 - @nikita-tkachenko-datadog)
- ✨ Implement tests reordering for TestNG (#8467 - @nikita-tkachenko-datadog)
- 🐛 Fix Gradle Launcher instrumentation to not interfere with Gradle Test Kit (#8465 - @nikita-tkachenko-datadog)
- 🧹 Use separate TestEventHandlers per framework in CI Vis instrumentations (#8451 - @daniel-mohedano)
- ✨ Remove warning log when JUnit 4 test method cannot be retrieved (#8445 - @nikita-tkachenko-datadog)
- 🐛 Fix Scalatest tracing for tests that are reported asynchronously (#8444 - @nikita-tkachenko-datadog)
- ✨ Implement attempt to fix tests (#8393 - @daniel-mohedano)
- ✨ Implement test disabling (#8377 - @daniel-mohedano)
- ✨ Update CODEOWNERS parser to not log errors on comments with leading whitespace (#8349 - @nikita-tkachenko-datadog)
- ✨ Request Test Management tests list (#8345 - @daniel-mohedano)
- ✨ Receive test management settings from CIVis settings request (#8331 - @daniel-mohedano)
- ✨ Implement quarantined tests tagging (#8326 - @nikita-tkachenko-datadog)
- ✨ Implement tests quarantining (#8320 - @nikita-tkachenko-datadog)
- ✨ Add tag to specify if the user is setting DD_SERVICE (#8318 - @daniel-mohedano)
Crash tracking
- ✨ Only fork jps when required (#8419 - @mcculls)
- 🐛 Use Java home of the crashed process to launch crash uploader (#8348 - @jbachorik)
Data Streams Monitoring
- 🐛 Fix error happening when sqs message attributes are readonly (#8473 - @vandonr)
- 🐛 Fix bug on proto schema extraction (#8403 - @vandonr)
- 🐛 Fix service name overrides in consumers (#8387 - @piochelepiotr)
Database Monitoring
Dynamic Instrumentation
- ✨ Look in another location for grpc service methods (#8468 - @evanchooly)
- 🐛 Fix Exception Replay with Lambda proxy classes (#8452 - @jpbempel)
- ✨ Add code origin support for spring-webmvc (#8416 - @evanchooly)
- ✨ Add support for scanning jar from loaded class (#8370 - @jpbempel)
- 🐛 Disable capture of entry values (#8369 - @jpbempel)
- 🐛 Fix CodeOrigin for
@Trace
annotation (#8344 - @jpbempel) - 🐛 Fix equals/hashCode for CodeOrigin probe (#8319 - @jpbempel)
- ✨ Add code origin support to kafka message listeners (#8301 - @evanchooly)
Metrics
- ✨ Create metric: appsec.waf.error (#8381 - @sezen-datadog)
- ✨ Create metric: appsec.rasp.error (#8364 - @sezen-datadog)
Profiling
- ✨ Bump ddprof library to 1.22.0 (#8463 - @jbachorik)
- IBM J9 8u361 corresponds to OpenJDK 8u362 by @jbachorik in DataDog/java-profiler#187
- Fix compatibility with musl libc 1.2.4 by @jbachorik in DataDog/java-profiler#189
- Modify version extraction by @jbachorik in DataDog/java-profiler#179
- Do not write null values to jvminfo event by @jbachorik in DataDog/java-profiler#184
- Productize VMStructs-based stack walker by @jbachorik in DataDog/java-profiler#177
- A few minor downport issues by @jbachorik in DataDog/java-profiler#180
- Enable ASGCT by default on fairly safe J9 JDK versions by @jbachorik in DataDog/java-profiler#181
- 🐛 Exclude OrderedThreadPoolExecutor from queue-time measurements (#8456 - @jbachorik)
- ✨ Record JVM info on JVMs without JFR (#8431 - @jbachorik)
- 🐛 Actually use CleanupTask in TempLocationManager (#8420 - @mcculls)
- ✨ Only fork jps when required (#8419 - @mcculls)
- 🐛 Adjust JFR checks for J9 (#8405 - @jbachorik)
- 🧹 Disable smap RSS parsing by default (#8342 - @MattAlp)
Telemetry
- 🐛 Add support for JBoss jar:file format to DependencyResolver (#8428 - @jandro996)
- ✨ Update metrics: appsec.waf.requests (#8353 - @Mariovido)
Trace context propagation
- ✨ Introduce tracing propagator (#8313 - @PerfectSlayer)
Tracer core
- 🐛 Fix Stable Config telemetry source names (#8460 - @BaptisteFoy)
- ✨ Probe trace endpoints with a valid payload of empty arrays (#8414 - @mcculls)
- ✨ Add 1 minute fail-safe to JUL/JMX class-loading callback (#8399 - @mcculls)
- ✨ Migrate DSM injection calls to context-first APIs (#8383 - @PerfectSlayer)
- 🧹 Move continuation capture methods from scope to tracer (#8371 - @mcculls)
- ✨ Migrate context extraction calls to context-first APIs (#8368 - @PerfectSlayer)
- 🧹 Migrate context injection calls to context-first APIs (#8358 - @PerfectSlayer)
- 💡 Support reading configurations from files (#8338 - @mtoffl01)
- 💡 Implementation of BaggagePropagator and BaggageContext (#8330 - @mhlidd)
- 🧹 Combine continuation implementations into one which supports multiple activations (#8324 - @mcculls)
- ✨ Introduce tracing propagator (#8313 - @PerfectSlayer)
- ✨ Remove old context propagation API (#8271 - @PerfectSlayer)
Instrumentations
AWS Lambda instrumentation
AWS SDK instrumentation
- 🐛 Fix error happening when sqs message attributes are readonly (#8473 - @vandonr)
- 💡 Inject trace context into AWS Step Functions input (#7585 - @DylanLovesCoffee)
Core Java language instrumentation
- ✨ Look in another location for grpc service methods (#8468 - @evanchooly)
- ✨ Add code origin support for spring-webmvc (#8416 - @evanchooly)
- 💡 Implementation of BaggagePropagator and BaggageContext (#8330 - @mhlidd)
- ✨ Add code origin support to kafka message listeners (#8301 - @evanchooly)
gRPC instrumentation
- ✨ Look in another location for grpc service methods (#8468 - @evanchooly)
Kafka instrumentation
- ✨ Add messaging.destination.name tag to kafka integrations (#8366 - @rarguelloF)
Protocol Buffer instrumentation
1.46.1
Components
Dynamic Instrumentation
- 🐛 🍒 8344 - Fix CodeOrigin for @trace annotation (#8425 - @evanchooly)
- 🐛 🍒 8369 - Disable capture of entry values (#8424 - @evanchooly)
Other changes
Library Injection
- 🐛 Address partial library copy failures causing failed application startups in k8s.
1.46.0
Known Bugs
Note
If you are experiencing issues with failed application startups in k8s, please update to the latest version.
Breaking Changes
Warning
jnr-unixsocket is now an external dependency of dd-trace-ot and must be included when deploying dd-trace-ot.
Note
The API TracerScope.setAsync(boolean)
, used to manually control asynchronous span propagation, does no more apply to the scope instance but to the active span scope.
Components
Application Security Management (IAST)
- 🐛 Fix String.replace instrumentation for IAST (#8281 - @Mariovido)
- ✨ Apply the standard nomenclature to the stacktrace configs (#8244 - @jandro996)
- 🐛 Exclude false positive weak randomness (#8232 - @jandro996)
- ✨ Propagation of translateEscapes of String class (#8186 - @sezen-datadog)
- ✨ Add security control metrics (#8175 - @jandro996)
- ✨ Increase IAST propagation to StringBuffer setLength (#8128 - @Mariovido)
- ✨ Add IAST taint tracking for DB values (#8072 - @Mariovido)
Application Security Management (WAF)
- 🐛 Prevents a NPE when there is no subscriber for user events (#8258 - @manuel-alvarez-alvarez)
- ✨ Apply the standard nomenclature to the stacktrace configs (#8244 - @jandro996)
- 🐛 Ensure cached subscriptions are cleared on reconfiguration via RC (#8229 - @manuel-alvarez-alvarez)
- ✨ Add support for session tracking in Vertx (#8167 - @manuel-alvarez-alvarez)
- ✨ Create span tag: _dd.appsec.rasp.timeout (#8269 - @Mariovido)
Build & Tooling
Configuration at Runtime
Continuous Integration Visibility
- 🧹 Generalize TestRetryPolicy to TestExecutionPolicy (#8302 - @nikita-tkachenko-datadog)
- 🧹 Parallelize CI Visibility settings requests (#8299 - @nikita-tkachenko-datadog)
- 🧹 Generalize test retry logic (#8289 - @nikita-tkachenko-datadog)
- 🧹 Generalize tests skipping logic (#8288 - @nikita-tkachenko-datadog)
- 🧹 Remove skip and shouldBeSkipped methods from TestEventsHandler in favor of isSkippable (#8286 - @nikita-tkachenko-datadog)
- ✨⚡ Optimize Git repository information computation (#8270 - @dougqh)
- ✨ Always request known tests from the backend (#8268 - @nikita-tkachenko-datadog)
- ✨ Fix NPE when trying to get retry analyzer in Test NG (#8253 - @nikita-tkachenko-datadog)
- 🐛 Set test framework and test framework version tags atomically (#8252 - @nikita-tkachenko-datadog)
- ✨ Add debug logging to Android Gradle module layout logic (#8251 - @nikita-tkachenko-datadog)
- 🐛 Fix source and destination folders computation for Android Gradle projects (#8190 - @nikita-tkachenko-datadog)
- ✨ Add basic Scala Weaver sbt support (#8189 - @daniel-mohedano)
- ✨ Implement impacted tests detection (#8188 - @nikita-tkachenko-datadog)
Data Streams Monitoring
- ✨ Change hash computation for protobuf to better represent impacting changes + save proto number in schema (#8201 - @vandonr)
Database Monitoring
- Add peer service tag in dbm sql commenter (#7913 - @jordan-wong)
Dynamic Instrumentation
- ✨ Add support for SymDB to scan directories (#8306 - @jpbempel)
- ✨ Add SymDB report for any jar scanning failures (#8300 - @jpbempel)
- ✨ Use two budgets depending on type (#8283 - @evanchooly)
- ✨ Institute a 10 snapshot per probe per trace budget (#8277 - @evanchooly)
- 🐛 Avoid double snapshots for Exception Replay (#8273 - @jpbempel)
- ✨ Simplify code origins. Separate out snapshot generation. (#8263 - @evanchooly)
- ✨ Add Exception probe custom instrumentation (#8230 - @jpbempel)
- ✨ Enhance log probes to honor debug session tags (#8215 - @evanchooly)
- 🐛 Don't redact env tokens from debugger probe snapshots (#8211 - @watson)
- ✨⚡ Move Trace/SpanId capture at commit time (#8184 - @jpbempel)
- 🐛 Capture values at entry for method probe (#8169 - @jpbempel)
JMX fetch
OpenTracing
Profiling
- 🐛 Avoid unsupported API call for creating folders on windows (#8304 - @jbachorik)
- ✨ Tag profiles for serverless (#8279 - @jbachorik)
- ✨ add queue type and length to queue events (#8242 - @richardstartin)
- 🐛 TempLocationManager Fixes and Improvements (#8191 - @jbachorik)
- ✨ Bump ddprof to 1.18.0 (#8173 - @jbachorik)
- ✨ Report profiler initialization and configuration errors to telemetry (#8171 - @jbachorik)
Telemetry
Testing
- ✨ Test http server requests in parallel (#8222 - @amarziali)
Trace context propagation
- ✨ Add non default propagator registration (#8310 - @PerfectSlayer)
Tracer core
- ✨ Probe for existence of IBMSASL or ACCP security providers (#8276 - @mcculls)
- ✨⚡ Overhead improvement to agent feedback based sampling (#8265 - @dougqh)
- 🧹 Move async propagation API from scope to tracer (#8231 - @PerfectSlayer)
- ✨ Introduce context propagation API (#8161 - @PerfectSlayer)
- ✨🧪 Use env-entry to add tags per webapp deployment (#8138 - @amarziali)
- ✨ Introduce context helpers API (#8134 - @PerfectSlayer)
- ✨ Support IPv6 values for
DD_AGENT_HOST
andDD_TRACE_AGENT_URL
(#7984 - @mhlidd)
Instrumentations
Apache HttpComponents
- 🐛 Properly finish spans and support latest apache httpclient5 (#8272 - @amarziali)
AWS Lambda instrumentation
- 🐛 Properly capture lambda payloads for all handler types. (#8264 - @purple4reina)
AWS S3 instrumentation
AWS SDK instrumentation
Cassandra
- ✨ Allow extracting keyspace from statement result (#8239 - @amarziali)
Core Java language instrumentation
- ✨ Propagation of translateEscapes of String class (#8186 - @sezen-datadog)
Eclipse Vert.x instrumentation
- 🐛 Fix vertx worker propagation and error handling (#8237 - @amarziali)
- ✨ Support vertx 5 (#8220 - @amarziali)
- ✨ Add support for session tracking in Vertx (#8167 - @manuel-alvarez-alvarez)
Kafka instrumentation
Mule instrumentation
- 🐛 Fix crash using Mule with JPMS (#8187 - @amarziali)
Protocol Buffer instrumentation
- ✨ Change hash computation for protobuf to better represent impacting changes + save proto number in schema (#8201 - @vandonr)
Spring instrumentation
- 🐛 Preserve getQualifier from spring scheduling runnables (#8293 - @amarziali)
All other instrumentations
- Valkey instrumentation support (#8228 - @AhmadMasry - thanks for the contribution!)
1.45.2
Components
Application Security Management (WAF)
- 🐛 🍒 8258 - Prevents a NPE when there is no subscriber for user events (#8260 - @manuel-alvarez-alvarez)
1.45.1
Components
Build & Tooling
- 🐛 🍒 #8192 - Ensure shaded helpers have unique names when injected into class-loaders (#8193 - @mcculls)
Continuous Integration Visibility
- 🐛 🍒 #8190 - Fix source and destination folders computation for Android Gradle projects (#8194 - @nikita-tkachenko-datadog)
Profiling
- 🐛 🍒 #8173 - Bump ddprof to 1.18.0 (#8200 - @MattAlp)
- 🐛 🍒 #8191 - TempLocationManager Fixes and Improvements (#8199 - @jbachorik)
Instrumentations
Mulesoft
- 🐛 🍒 #8187 - Fix crash using Mule with JPMS (#8195 - @amarziali)
1.45.0
Breaking changes
Warning
Support for custom scope manager using the OpenTracing tracer artifact (dd-trace-ot
) is dropped.
Tracing with OpenTracing API and custom scope manager will continue to work on 1.44.x releases.
Components
Application Security Management (IAST)
- ✨ Add propagation to URI#toURL method (#8146 - @manuel-alvarez-alvarez)
- ✨ Increase IAST propagation to StringBuilder setLength (#8119 - @Mariovido)
- ✨ Increase IAST propagation to StringBuffer append (#8082 - @Mariovido)
- ✨ Handle IAST security controls custom validation and sanitization methods (#7997 - @jandro996)
Application Security Management (WAF)
- ✨ Update user lifecycle tracking to V3 (#8108 - @manuel-alvarez-alvarez)
- ✨ Exploit prevention for Shell Injection / Command Injection (#7615 - @jandro996)
Build & Tooling
- 💡 Support instrumentation of repackaged libraries (#8153 - @mcculls)
- ✨ Configure native image build setting for JDK-22 based GraalVM (#8092 - @MattAlp)
Database Monitoring
- ✨ Add full APM/DBM mode for Oracle (#8090 - @nenadnoveljic)
Dynamic Instrumentation
- 🐛 make local var hoisting disabled by default (#8158 - @jpbempel)
- 🐛 Fix var hoisting issue when no previous store (#8122 - @jpbempel)
- ✨ Only decorate spans without code origin information (#8105 - @evanchooly)
- 🐛 Fix suspend Kotlin methods instrumentation (#8080 - @jpbempel)
- 🐛 Fix class file version detection (#8057 - @jpbempel)
GraalVM native-image
ML Observability (LLMObs)
- ✨🧪 Add LLMObs configuration (#8076 - @gary-huang)
Metrics
- Bump integrations-core submodule to 7.60.0 (#8098 - @mcculls)
- Upgrade to java-dogstatsd-client v4.4.3 (#8096 - @mcculls)
OpenTracing
⚠️ 🧹 Remove custom scope manager support (#8164 - @PerfectSlayer)
Telemetry
- ✨ Retry telemetry requests if CI Visibility is enabled (#8147 - @nikita-tkachenko-datadog)
- ✨ Add configurable Dependency service resolution period (#8079 - @jandro996)
Testing
Tracer core
- ✨ Defer remote components to avoid OkHttp class-loading side-effects (#8131 - @mcculls)
- ✨ Improve Context API null handling and Javadoc (#8129 - @PerfectSlayer)
- 🐛⚡ Avoid performing blocking I/O operation on application thread (#8120 - @mcculls)
- 💡 Introduce a shared context component, independent of tracing (#8117 - @mcculls)
- ✨ Improves ServiceNameCollector (#8109 - @amarziali)
- Upgrade to ASM 9.7.1 (adds new constant for Java 24) (#8097 - @mcculls)
- 🐛 Dynamically evaluate service name for message consumers (#8088 - @amarziali)
Serverless
- 🐛 Add avoid double instrumenting lambda non-streaming handlers. (#8073 - @purple4reina)
Instrumentations
AWS SDK instrumentation
Eclipse Vert.x instrumentation
JDBC instrumentation
- ✨ Add full APM/DBM mode for Oracle (#8090 - @nenadnoveljic)
Jetty instrumentation
- 🐛 Ensure jetty 12 has servlet.path starting with / (#8093 - @github-actions[bot])
JMS instrumentation
- 🧹 Re-use
javax
JMS module forjakarta
namespace (#8155 - @mcculls) - 🧹 Group
javax.jms
instrumentations under a single module (#8154 - @mcculls)
Reactor instrumentation
- 🐛 Reactor: early propagate span in context when subscribing (#8166 - @amarziali)
1.44.1
Components
Continuous Integration Visibility
- 🐛 Fix tracing JUnit5 tests in Maven projects with multiple forks (#8089 - @nikita-tkachenko-datadog)