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
- β¨π Forbid
OkHostnameVerifierto prevent accidental use, CVE-2021-0341 (#11694 - @bric3)
Configuration at Runtime
- β¨ Avoid logging stack trace during expected remote-config exception (#11328 - @sarahchen6)
Configuration
- β¨ Add OTLP Trace Metrics Configs (#11653 - @mhlidd)
- β¨β‘ Optimize collection creation and memory allocation of supported config (#11616 - @PerfectSlayer)
Continuous Integration Visibility
- β¨ Avoid final field modifications in Karate instrumentation (#11753 - @daniel-mohedano)
- β¨ Avoid final field modification in Weaver instrumentation (#11728 - @daniel-mohedano)
- π Disable invokedynamic bytecode for legacy Gradle instrumentation (#11618 - @daniel-mohedano)
- β¨ Support Maven generateTestClasspath lookup on 3.6.0+ (#11577 - @daniel-mohedano)
- β¨ Truncate CI Visibility meta tag values (#11485 - @juan-fernandez)
Crash Tracking
- π‘ Include JVM distribution details in crash report (#11715 - @gyuheon0h)
- β¨ Improve crash report message when signal is absent (#11681 - @amarziali)
- π Avoid crashtracking temp-script path hijack (#11613 - @jbachorik)
Data Streams Monitoring
- β¨ Update EventBridge DSM topic naming (#11603 - @jeastham1993)
Dynamic Instrumentation
- π Fix Kotlin Debug source mapping (#11803 - @jpbempel)
- β¨ Add evaluation timeout for expressions (#11741 - @jpbempel)
- π Fix Spring MethodParameters detection (#11647 - @jpbempel)
- π Fix sampling log probe with capture expressions (#11571 - @jpbempel)
Metrics
- β¨π§Ή Update
AggregateEntryto 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
- π Use agent OTel metrics for OpenFeature evaluations (#11745 - @sameerank)
- π Skip malformed FFE flags during config parsing (#11534 - @leoromanovsky)
- π§Ή Use canonical FFE fixtures (#11355 - @leoromanovsky)
Profiling
- π Bump ddprof to 1.46.0 (#11858 - @jbachorik)
- Add alternative TLS implementation to fix a crash on musl/aarch64 by @zhengyu123 in DataDog/java-profiler#600
- Don't preload jmethodIDs when cstack=vm with hotspot JVM by @zhengyu123 in DataDog/java-profiler#549
- Scope OTEL ThreadContext storage to the carrier thread (PROF-15271) by @rkennke in DataDog/java-profiler#625
- Close two TOCTOU races between SIGPROF handler and JFR lifecycle by @r1viollet in DataDog/java-profiler#614
- π Request carrier-scoped ddprof context storage on JDK 21+ (#11826 - @rkennke)
- π Restore app context attributes wiped by ddprof setContext on span activation (#11646 - @jbachorik)
- π Publish thread context attribute keys at process start (#11558 - @ivoanjo)
- β¨ Add force jmethodID experimental feature support (#11549 - @zhengyu123)
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
AgentScopetoContextScope(#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.setinCoreTracer(#11106 - @dougqh) - πβ‘ List iteration benchmark (#10888 - @dougqh)
- πβ‘ Atomics benchmark (#10862 - @dougqh)
- β¨β‘ Adding lighter String processing methods to Strings (#10640 - @dougqh)
Tracer public API
- π‘
β οΈ Translate asampling.prioritytag set to a positive value toforceKeep(#11621 - @mcculls) - π Fix DDTraceId/DD64bTraceId class-initialization deadlock (#11509 - @bm1549)
Instrumentations
Apache HttpComponents
Apache Spark instrumentation
Armeria Instrumentation
- π Fix Ameria 1.40 instrumentation compatibility (#11827 - @vandonr)
- β¨ Ignore capturing connection continuation for armeria (#11657 - @amarziali)
AWS Lambda instrumentation
- π Don't add empty headers on lambda completion (#11551 - @amarziali)
AWS SDK instrumentation
Azure Functions instrumentation
- β¨ Introduces the api-management inferred proxy spans to Azure (#11804 - @TophrC-dd)
Core Java language instrumentation
- β¨ Avoid leaking continuations on jdk-http-client (#11557 - @amarziali)
Eclipse Vert.x instrumentation
JAX-RS instrumentation
- β¨ Avoid leaking continuations on internal rxjava schedulers (#11540 - @amarziali)
JDBC instrumentation
- ππ Fix password leak from JDBC URL (#11568 - @ValentinZakharov)
- π Fix JDBC URL parsing crash when no port specified (#11550 - @ValentinZakharov)
- π Fix IAST JDBC instrumentation when getMetadata throws non-SQLException (#11420 - @smola)
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
- β¨ Add RxJava 3 instrumentation (#11849 - @ValentinZakharov)
- β¨ Support proper async propagation for GAX retrying futures (#11629 - @amarziali)