Releases: DataDog/dd-trace-java
Releases · DataDog/dd-trace-java
Release list
1.65.1
Components
OpenFeature
- 🐛 Handle gracefully malformed flag evaluations; migrate Date->Instant (#12176 - @leoromanovsky)
Profiling
-
🐛 Update java-profiler (ddprof) to 1.49.0 (#12173 - @kaahos)
Most significant changes/fixes in ddprof 1.49.0:
- Missing
libgcc_s.so.1on the host no longer causes a crash — DataDog/java-profiler#689, DataDog/java-profiler#720 (Alpine/musl) - Avoid retaining invalid VM method pointers — DataDog/java-profiler#699
- Guard
Profiler::recordSample()stack walk against faults — DataDog/java-profiler#687 - Guard
Recording::writeElementagainst SIGSEGV on a corrupted metadata tree — DataDog/java-profiler#692 - Fix memory leak in
JfrMetadata::reset()— DataDog/java-profiler#694 - Remove legacy DirectByteBuffer-based OTEP context storage (Phase 3) — DataDog/java-profiler#696
- Never patch the profiler's own import table — DataDog/java-profiler#721
- Missing
1.65.0
Components
AI Guard
- ✨ Support
DD_APM_TRACING_ENABLED=falsefor AI Guard traces (#11885 - @claponcet)
Application Security Management (WAF)
- ✨ Update default AppSec ruleset to release 1.18.2 (#12099 - @jandro996)
- 🐛 Stamp
_dd.apm.enabledon 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-javato 17.4.0 (#11943 - @jandro996) - ✨ AppSec Lambda: Analyze HTTP response (#11750 - @claponcet)
- ✨ Add
server.request.body.files_contentAppSec address for Undertow and Play (#11726 - @jandro996) - ✨ Add
server.request.body.files_contentAppSec address for Akka HTTP (#11725 - @jandro996) - ✨ Add
server.request.body.files_contentAppSec address for Vert.x 3/4/5 (#11724 - @jandro996) - ✨ Add
server.request.body.files_contentAppSec address for Jetty (#11706 - @jandro996)
Build & Tooling
- ✨ Update JMXFetch to 0.52.1 (#12121 - @sarahchen6)
Continuous Integration Visibility
- 🐛 Restore JUnit4 test ordering on Gradle 9.3+ (#12098 - @daniel-mohedano)
- ✨ Add
ci.pipeline.display_nametag for Buildkite pipelines (#12079 - @gbrandrea) - ✨ Allow Gradle verification of Test Optimization dependencies (#12077 - @daniel-mohedano)
- ✨ Improve codeowners lookup performance (#12058 - @daniel-mohedano)
- 🐛 Fix GitLab codeowners exclusion handling (#12021 - @daniel-mohedano)
- 🐛 Stop retrying aborted Karate scenarios (#12015 - @daniel-mohedano)
- 🐛 Finish Karate tests after scenario post-processing (#12014 - @daniel-mohedano)
- 🐛 Avoid retrying untracked Karate scenarios (#12012 - @daniel-mohedano)
- ✨ Improve GitLab codeowners parsing (#11999 - @daniel-mohedano)
- ✨ Add code coverage report flags (#11981 - @juan-fernandez)
- ✨ Memoize per-test class analysis in a module-wide cache (#11969 - @daniel-mohedano)
- ✨ Add test reporting for Karate v2 (#11923 - @daniel-mohedano)
- ✨ Avoid error logging when parsing optional sections in codeowners file (#11881 - @daniel-mohedano)
- ✨ Add AGP usage visibility for Gradle projects (#11869 - @daniel-mohedano)
- ✨ Add Android/Robolectric visibility to Test Optimization spans (#11852 - @daniel-mohedano)
- ✨ Avoid final field modifications in Cucumber and Spock instrumentations (#11851 - @daniel-mohedano)
- 🐛 Fix Cucumber test retries running under Suite (#11850 - @daniel-mohedano)
- ✨ Avoid final field modification in JUnit5 instrumentation (#11752 - @daniel-mohedano)
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
- 🐛 Avoid calling synchronized wrappers when capturing (#12106 - @tylfin)
- 🐛 Fix initialization of samplers for probe file (#12067 - @jpbempel)
- 🐛 Update record detection for fixed JDK (#12031 - @jpbempel)
- 🐛 Update MethodParameters detection for fixed JDK (#12025 - @jpbempel)
- 🐛 Fix NullPointerException in Exception Replay (#11976 - @jpbempel)
- 🐛 Avoid false warning when no stacktrace (#11971 - @jpbempel)
- ✨ Hoist local vars for exception probes (#11964 - @jpbempel)
- 🐛 Fix instrumenting metric probes for Kotlin (#11890 - @jpbempel)
ML Observability (LLMObs)
- ✨ Add LLMObs Tool Definitions API (#12072 - @sabrenner)
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
- ✨ Add agentless Feature Flagging configuration source (#11892 - @leoromanovsky)
- ✨ Add experimental, gated feature-flag span enrichment (#11658 - @leoromanovsky)
Platform
- ✨ Improve JSON component (#12086 - @PerfectSlayer)
Profiling
- 🐛 Update java-profiler (ddprof) to 1.48.1 (#12133 - @kaahos)
- Gracefully disable the profiler instead of crashing when
libgcc_s.so.1is unavailable by @zhengyu123 in DataDog/java-profiler#689 - Avoid retaining invalid HotSpot VM method pointers during stack walking and JFR serialization by @jbachorik in DataDog/java-profiler#699
- Gracefully disable the profiler instead of crashing when
- 🐛 Update java-profiler (ddprof) to 1.48.0 (#12076 - @kaahos)
- Add native malloc/socket stack capture with profiler-hook frame skipping by @jbachorik in DataDog/java-profiler#648
- Add categorized native-memory accounting by @rkennke in DataDog/java-profiler#669
- Set up signal handlers before initializing VMStructs and protect
VMFlag::name()calls by @zhengyu123 in DataDog/java-profiler#674 - Make CodeCache
memoryUsage()accurate and live by @rkennke in DataDog/java-profiler#677 - Report the actual runtime-stubs cache size by @rkennke in DataDog/java-profiler#681
- Use
sigsetjmp/siglongjmpinstead ofsetjmp/longjmpby @zhengyu123 in DataDog/java-profiler#686
- 🐛 Update java-profiler (ddprof) to 1.47.0 (#12076 - @rkennke)
- Add all-native OTEL context write API — Phase 1 (PROF-15271) by @rkennke in DataDog/java-profiler#631
- Guard line-number-table copy against stale jmethodID by @jbachorik in DataDog/java-profiler#647
- Prevent duplicate trace_id after CallTraceHashTable expansion by @jbachorik in DataDog/java-profiler#659
- Fix native OOM from unbounded CallTraceHashTable expansion by @jbachorik in DataDog/java-profiler#670
- 🔐 Address CVE-2026-59949 by upgrading LZ4 to v1.11.1 (#12091 - @vandonr)
- 🐛 Migrate context bridge to the all-native DDProf API (Phase 2) (#11899 - @rkennke)
Testing
- ✨ Add APM test agent trace decoding (#12089 - @PerfectSlayer)
- ✨ Add decoded span assert rules (#12088 - @PerfectSlayer)
- ✨ Avoid null collection on decoded spans (#12087 - @PerfectSlayer)
- ✨ Add test agent session token support (#12050 - @PerfectSlayer)
Trace context propagation
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
- 💡 Enable secure random ID generation for AWS Lambda MicroVM environments (#11622 - @litianningdatadog)
Instrumentations
Apache Spark instrumentation
- ✨ Add Spark 4.0.0 test suite on JDK 17 to spark_2.13 (#12049 - @aboitreaud)
- ✨ Mix Databricks repair attempt into Spark parent trace id (#12022 - @aboitreaud)
Core Java language instrumentation
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
- 🐛 Tag
@Asyncand@Scheduledspring-scheduling spans as errored on exception (#12071 - @ValentinZakharov)
All other instrumentations
1.64.2
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
- ✨ Bump java-profiler (ddprof) to 1.47.0 (#12065 - @jbachorik)
Realtime User Monitoring
- 🐛 Fix RUM injection for offset response writes (#12064 - @PerfectSlayer)
Instrumentations
Kafka instrumentation
- 🐛 Fix NoSuchElementException from unchecked Optional.get() in Kafka consumer instrumentation (#12066 - @PerfectSlayer)
1.64.1
Components
Tracer core
- 🐛 Guard InternalTagAdder against null prebuilt tagmap entry (#11962 - @amarziali)
1.64.0
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)
1.63.2
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)
- ✨⚡ Improve performance of regexps in IAST and query obfuscator (#11710 - @manuel-alvarez-alvarez)
Continuous Integration Visibility
- ✨ Support Maven generateTestClasspath lookup on 3.6.0+ (#11634 - @daniel-mohedano)
Dynamic Instrumentation
OpenFeature
- 🐛 Skip malformed FFE flags during config parsing (#11648 - @PerfectSlayer)
1.63.1
Note
This release is missing in Docker registries.
Components
Application Security Management (IAST)
- ✨⚡ Improve performance of regexps in IAST and query obfuscator (#11710 - @manuel-alvarez-alvarez)
Continuous Integration Visibility
- ✨ Support Maven generateTestClasspath lookup on 3.6.0+ (#11634 - @daniel-mohedano)
Dynamic Instrumentation
OpenFeature
- 🐛 Skip malformed FFE flags during config parsing (#11648 - @PerfectSlayer)
1.63.0
Components
AI Guard
- ✨ Copy anomaly detection tags to AI Guard spans (#11319 - @smola)
- ✨ Collect client IP tags for AI Guard requests (#11233 - @smola)
Application Security Management (WAF)
- ✨ Collect Datadog security-testing headers on HTTP server entry spans (#11418 - @christophe-papazian)
- ✨ Add server.request.body.filenames and files_content for GlassFish/Payara (#11267 - @jandro996)
Configuration at Runtime
- 🐛 Request feature flag config on the first RC poll (#11465 - @leoromanovsky)
Continuous Integration Visibility
- ✨ Propagate Jenkins custom parent ID (#11348 - @juan-fernandez)
- ✨ Update JUnit4 instrumentation to fire test suite events for Bazel (#11322 - @daniel-mohedano)
- ✨ Propagate test skipping enabled tag to CI Visibility test spans (#11300 - @anmarchenko)
- ✨ Use test_srcdir as virtual repo root for bazel runs (#11273 - @daniel-mohedano)
- 🐛 Consider Gradle wrapper as a wrapper for headless calculations (#11266 - @daniel-mohedano)
- ✨ Report bazel as provider in telemetry for payload-in-files mode (#11207 - @daniel-mohedano)
Crash Tracking
Database Monitoring
- ✨ Add a new dynamic_service DBM propagation mode (#11432 - @amarziali)
- ✨ Improve DBM commenter (#11339 - @amarziali)
Dynamic Instrumentation
- ✨ debugger/symdb: add upload metadata fields to upload event message (#11329 - @andreimatei)
ML Observability (LLMObs)
- 🐛 emit session_id as top-level field + propagate via context (#11371 - @jessicagamio)
Metrics
- ✨⚡ Update client-side stats to use light weight Hashtable (#11382 - @dougqh)
- ✨⚡ Defer MetricKey construction to the aggregator thread (#11381 - @dougqh)
- ✨⚡ Use bitmask SpanKindFilter for per-span eligibility in metrics aggregator (#11380 - @dougqh)
- ✨ Support OTLP runtime metrics with OTel-native naming (#11318 - @link04)
- ✨ Allow ignoring the agent version when checking for trace stats computation support (#11064 - @bric3)
OpenFeature
- 🐛 Recover OpenFeature provider after initialization timeout (#11474 - @leoromanovsky)
- 🐛 Request feature flag config on the first RC poll (#11465 - @leoromanovsky)
- 🐛 use delta temporality for OTLP metrics export (#11426 - @sameerank)
- 🐛 read OTEL_SERVICE_NAME for metrics resource (#11424 - @sameerank)
Profiling
- 🐛 Bump java-profiler to 1.44.0 for more critical stability fixes (#11501 - @jbachorik)
- 🐛 Bump java-profiler to 1.43.0 for critical stability fixes (#11475 - @jbachorik)
- ✨ Enable publishing process context by default (#11288 - @ivoanjo)
Telemetry
- ✨ Add Telemetry for Extension Finder SPIs (#11298 - @mhlidd)
- ✨ Introduce OTel SPI Metrics (#11297 - @mhlidd)
- ✨ Update Baggage Metrics for Extract (#11278 - @mhlidd)
Testing
- ✨ 🪞 9979 - Record detailed instrumentation errors during tests (#10300 - @deejgregor - thanks for the contribution!)
Trace context propagation
- ✨ Add lazy-transformer to KeyClassifier for deferred header decoding (#11466 - @amarziali)
Tracer core
- ✨⚡ Cache hashCode on UTF8BytesString (#11444 - @dougqh)
- 🐛 Fix DDSpan.addThrowable crashing when exception getMessage() throws (#11428 - @ValentinZakharov)
- 🐛 Avoid extracting the baggage from null values (#11396 - @amarziali)
- ✨⚡ Update client-side stats to use light weight Hashtable (#11382 - @dougqh)
- ✨⚡ Defer MetricKey construction to the aggregator thread (#11381 - @dougqh)
- ✨⚡ Use bitmask SpanKindFilter for per-span eligibility in metrics aggregator (#11380 - @dougqh)
- 🐛 Fix bugs in GenerationalUtf8Cache constructor and access-time handling (#11323 - @dougqh)
- ✨ Remove deprecated internal spanBuilder methods (#11287 - @amarziali)
- 🐛 Fix peer IP tag in Play 2.3/2.4/2.5 (#11274 - @smola)
- ✨ Move network.client.ip out of AppSec into HttpServerDecorator (#11208 - @smola)
Instrumentations
AWS Lambda instrumentation
- ✨ force placeholder resource so the Lambda Extension drops dd-tracer-serverless-span (#11313 - @zarirhamza)
AWS SDK instrumentation
- 🐛⚡ Skip ClassCastException on every DynamoDB request in AWS SDK v2 instrumentation (#11285 - @dougqh)
Eclipse Vert.x instrumentation
- 🐛 finish vertx.route-handler via RoutingContext.addEndHandler fallback (#11312 - @zarirhamza)
gRPC instrumentation
- ✨⚡ Avoid Metadata.key allocations on grpc (#11351 - @amarziali)
JDBC instrumentation
- ✨ Mute telemetry when Connection.getClientInfo fails (#11412 - @amarziali)
JMS instrumentation
- ✨ Have a fully JMS 1.0 compatible instrumentation (#11413 - @amarziali)
OpenTelemetry instrumentation
- ✨⚡ Use FAST_LANE prioritization for OTLP trace export (#11447 - @mcculls)
- ✨ Add Additional OTel JVM Runtime Metrics and Gate "Developmental" Metrics (#11411 - @mhlidd)
- 🐛 Fix the behaviour of asynchronous counters and up-down counters (#11332 - @mcculls)
- 🐛 Avoid potential shutdown delay when using GRPC protocol for OTLP (#11321 - @mcculls)
- ✨ Support OTLP runtime metrics with OTel-native naming (#11318 - @link04)
- 🐛 Fix OtelLogRecordProcessor schedule (#11315 - @mcculls)
- 💡⚡ Reduce allocation rate when marshaling OTLP data (#11296 - @mcculls)
- ✨ Enable publishing process context by default (#11288 - @ivoanjo)
Play Framework instrumentation
Reactor instrumentation
- ✨⚡ avoid attaching context if it's already attached (#11393 - @amarziali)
Servlet instrumentation
- 🐛 Tolerate AbstractMethodError for servletRequest remote port (#11403 - @amarziali)
- 🐛 avoid NPE when headerNames is null (#11394 - @amarziali)
All other instrumentations
- 🧹 Remove deprecated startSpan and use integration name for telemetry (#11181 - @amarziali)
1.62.0
Warning
This version contains a known regression in profiler that can cause crashes in the profiled application. Please upgrade to the latest version.
Note
Do not enable Trace Payload protocol V1 until further notice as it is not enabled on all DataDog backends yet.
Components
AI Guard
- ✨ Add ai_guard.event tag to local root span (#11109 - @manuel-alvarez-alvarez)
- ✨ Expose tag probabilities in SDK responses (#11063 - @manuel-alvarez-alvarez)
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_contentAppSec address: commons-fileupload (#11137), Tomcat & Netty multipart (#11198), Jersey & RESTEasy(#11229) - @jandro996 - ✨ Add
server.request.body.filenamesAppSec address: Jersey & RESTEasy (#11171), Akka HTTP (#11173), Undertow & Play (#11174) - @jandro996 - ✨ Expose
server.io.fs.file_writeAppSec address for write file operations (#11084),FileOutputStream/FileInputStreamconstructors(#11113),Files.copyoverloads (#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_TESTmode by default (#11032 - @mhlidd)
Continuous Integration Visibility
- ✨ Honor attempt to fix failures (#11244 - @daniel-mohedano)
- ✨ Avoid feature discover and java.nio.* access in Bazel Mode (#11232 - @daniel-mohedano)
- ✨ Implement Bazel support for CI Visibility (#11150 - @daniel-mohedano)
- 🐛 Fix TestNG session status reported with EFD (#11087 - @daniel-mohedano)
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
- 🐛 Fix NullPointerException on samplers (#11230 - @jpbempel)
- 🐛 Fix NullPointerException in Exception Replay (#11219 - @jpbempel)
- ✨ Add support for case insensitivity file names (#11205 - @jpbempel)
- 🐛 Fix DebuggerAgent commonInit (#11183 - @jpbempel)
- 🐛 🪞 10671 - Fix platform-dependent String.getBytes() calls to use explicit UTF-8 charset (#11149 - @mcculls - thanks @saravadeo for the contribution!)
- ✨ Add support for windows-style path (backslashes) (#11073 - @jpbempel)
Metrics
- ✨ Report dropped stats aggregates in health metrics (#11231 - @amarziali)
- ✨ Upgrade jmxfetch dependency to 0.52.0 (#11127 - @mcculls)
- ✨ Upgrade java-dogstatsd-client dependency to 4.4.5 (#11126 - @mcculls)
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
- ✨ Bump Java profiler library to 1.42.0 (#11222 - @jbachorik)
- (subsumes) Bump Java profiler library to 1.41.0 (#11169 - @jbachorik)
Telemetry
- ✨ Remove noise at boostrap due to telemetry failures (#11218 - @amarziali)
Testing
- 🧹 Migrate OtlpWriterCombinedTest from groovy to junit (#11245 - @mtoffl01)
- ✨ Improve trace assert API (#11209 - @PerfectSlayer)
- 🐛⚡ Improve instrumentation JUnit testing (#11096 - @PerfectSlayer)
- ✨ Improve Config JUnit extension (#11094 - @PerfectSlayer)
- ✨ Add Config and Context JUnit extensions (#11076 - @PerfectSlayer)
- ✨ Update Spock Tests to run with
STRICT_TESTmode by default (#11032 - @mhlidd)
Trace context propagation
- 🐛🔐 Add items and bytes limits to baggage extraction (#11265 - @PerfectSlayer)
- 💡 Add Sofa RPC instrumentation (Bolt, H2C, REST, Triple) (#11135 - @ValentinZakharov)
- 🐛 Preload scope classes to prevent virtual thread deadlock (#11111 - @PerfectSlayer)
Tracer core
- 🐛 Fix peer IP tags in Jetty/Dropwizard (#11237 - @smola)
- ✨ Use ParentBasedAlwaysOnSampler by default when OTLP traces export is enabled (#11225 - @mtoffl01)
- ✨ Introduce a generic JavaModuleOpener for JPMS (#11220 - @amarziali)
- ✨ Allow mapping process tags from env or sysprops (#11204 - @amarziali)
- ✨ Add OtlpWriter for OTLP traces export (#11200 - @mtoffl01)
- 🐛 Add support double quotes as a single token in SQLNormalizer (#11197 - @Eldolfin)
- 🐛 Fix NPE in PayloadDispatcherImpl (#11196 - @amarziali)
- 🐛 Widen info state hashing catch (#11192 - @amarziali)
- ✨ Add classloader exclusions for drools generated classes (#11191 - @amarziali)
- 🐛 🪞 10671 - Fix platform-dependent String.getBytes() calls to use explicit UTF-8 charset (#11149 - @mcculls - thanks @saravadeo for the contribution!)
- 🐛 Abort on IBMJ9's
keytool(#11133 - @bric3) - ✨ Upgrade byte-buddy dependency to 1.18.8 (#11128 - @mcculls)
- ✨⚡ Cache span.kind as byte ordinal for fast isOutbound() (#11116 - @dougqh)
- 🐛 Fix container ID parsing for cgroup v1 in EKS-Fargate (#11110 - @vandonr)
- ✨ Optimize PendingTrace span registration and time tracking (#11078 - @bm1549)
- 🐛 Fix _dd.p.ksr formatting to use 6 decimal places (#11068 - @bm1549)
- ✨ Efficient Trace Payload Protocol (v1 protocol) (#10801 - @AlexeyKuznetsov-DD)
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
- 🐛 Preload scope classes to prevent virtual thread deadlock (#11111 - @PerfectSlayer)
- ✨ Add a jpms opener for HostNameResolver cache (#11095 - @amarziali)
Jetty instrumentation
Kafka instrumentation
- ✨ Add Kafka cluster ID and offset tags to producer/consumer spans (#11107 - @piochelepiotr)
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
- 💡 Add Sofa RPC instrumentation (Bolt, H2C, REST, Triple) (#11135 - @ValentinZakharov)
1.61.1
Instrumentations
Core Java language instrumentation
- 🐛 Preload scope classes to prevent virtual thread deadlock (#11131 - @PerfectSlayer)