Releases · DataDog/dd-trace-java
1.60.3
23 Mar 18:01
v1.60.3
This tag was signed with the committer’s verified signature.
PerfectSlayer
Bruce Bujon
14f1ebbThis commit was created on GitHub.com and signed with GitHub’s verified signature.
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
19 Mar 17:11
v1.60.2
This tag was signed with the committer’s verified signature.
jandro996
Alejandro González García
428d682This commit was created on GitHub.com and signed with GitHub’s verified signature.
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
04 Mar 17:58
d84b442This commit was created on GitHub.com and signed with GitHub’s verified signature.
Instrumentations
OpenTelemetry instrumentation
- 🐛 Restore OpenTelemetry instrumentation library support. (#10738 - @bric3)
1.60.0
03 Mar 10:06
v1.60.0
This tag was signed with the committer’s verified signature.
daniel-mohedano
Daniel Mohedano
0f5d84fThis commit was created on GitHub.com and signed with GitHub’s verified signature.
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
02 Feb 14:49
v1.59.0
This tag was signed with the committer’s verified signature.
jandro996
Alejandro González García
7e1bb03This commit was created on GitHub.com and signed with GitHub’s verified signature.
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
23 Jan 19:13
0612221This commit was created on GitHub.com and signed with GitHub’s verified signature.
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
14 Jan 14:33
55d9235This commit was created on GitHub.com and signed with GitHub’s verified signature.
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
06 Jan 10:41
bd3f6f5This commit was created on GitHub.com and signed with GitHub’s verified signature.
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)
1.57.0
18 Dec 10:37
7f969eaThis commit was created on GitHub.com and signed with GitHub’s verified signature.
Components
Application Security Management (IAST)
- 🐛 Fix IllegalFormatConversionException StringModuleImpl#onStringFormat (#9907 - @jandro996)
Application Security Management (WAF)
- 🐛 Fix API Security sampling in standalone mode (#10165 - @jandro996)
- ✨ AI Guard - Ensure messages are not modified before span serialization (#10116 - @manuel-alvarez-alvarez)
Build & Tooling
- ✨ Remove native libraries for unsupported environment (#10079 - @PerfectSlayer)
Configuration
- 🐛 Using stable config when a security manager is enabled should not prevent tracer startup (#10006 - @amarziali)
Continuous Integration Visibility
- ✨ Add support for Weaver Framework v0.11 (#10012 - @daniel-mohedano)
Crash Tracking
- 🐛 Don't send crash-ping to error tracking if not enabled (#10170 - @amarziali)
- ✨ Improve OOM parsing for Zulu8 (#10038 - @amarziali)
- ✨ Store some crashtracking options on initialisation (#10036 - @amarziali)
- ✨ Dual ship to error tracking (#10000 - @amarziali)
Data Streams Monitoring
- 🐛 Fix Kafka consumer instrumentation (#10100 - @piochelepiotr)
Dynamic Instrumentation
- 🐛 Fix metric expressions with
@return(#10178 - @jpbempel) - 🧹 fix method reference in comment (#10101 - @andreimatei)
- ✨ Make SymbolDB stand alone (#10064 - @jpbempel)
- 🐛 Make Code Origin fingerprint map concurrent (#10043 - @jpbempel)
- 🐛 Disable CodeOrigin by default (#10027 - @jpbempel)
- 🐛⚡ Avoid expensive
Class.getMethodcall in code-origin advice (#10019 - @mcculls)
Metrics
- ✨⚡ Avoid getTag overhead in ConflatingMetricsAggregator (#10070 - @amarziali)
- 🐛 Only enable client side stats if the host agent is at least 7.65.0 (#10041 - @bric3)
Platform
- ✨ Improve support for virtual thread detection (#9852 - @PerfectSlayer)
Profiling
- ✨ Bump ddprof-java to 1.34.4 (#10097 - @jbachorik)
- 🐛 Fix deadlock in dd-task-scheduler (#10096 - @rkennke)
Realtime User Monitoring
- 🐛 Filter setContentType headers (#10150 - @amarziali)
- 🐛 Prevent any Content-Length header from being set upon injection (#10081 - @amarziali)
Telemetry
- ✨ Don't send OutOfMemoryError to the telemetry (#10211 - @amarziali)
Trace context propagation
- ✨ Add context tracking support for virtual threads (#10040 - @PerfectSlayer)
Tracer core
- ✨ Don't send IO failures to telemetry logs (#10210 - @amarziali)
- 🐛 Avoid NPE on BaseDecorator (#10209 - @amarziali)
- ✨⚡ Support
aot_trainingmode to be used when creating AOT caches (#10166 - @mcculls) - ✨⚡ Optimize TagMap lookup & insertion for String literals (#10138 - @dougqh)
- 🐛 Remove colons from process tags values (#10109 - @vandonr)
- 🐛 Fix field-injection of ForkJoinTask on Java 25 (#10084 - @mcculls)
- ✨⚡ Use
ClassLoaderValues to track class-loader state (#10075 - @mcculls) - ✨⚡ Add primitive setters to DDSpanContext to take advantage of TagMap (#10018 - @dougqh)
- 🐛 Safely handle Files.exist on discovery and config when a Security Manager is present (#10009 - @amarziali)
- ✨⚡ Avoid SpanBuilder allocation for startSpan (#9998 - @dougqh)
- ✨ Add request-id to lambda start/end invocation calls (#9991 - @ojproductions)
- ✨⚡ Use
ClassLoaderIndexto index class-loader related information (#9980 - @mcculls) - ⚡🧹 Use
ClassNameFilterto track uninteresting classes (#9976 - @mcculls) - ✨⚡ Reduce PendingTrace Lock Contention (#9932 - @dougqh)
- ✨ Remove dependency on
memfd_createfor service discovery (#9913 - @raphaelgavache)
Instrumentations
Apache Spark instrumentation
- 🐛 Support Spark 4.1 by removing mention to StreamExecution class (#10228 - @aboitreaud)
- ✨ Duplicate service name in meta so it's not truncated in spark integration (#10063 - @aboitreaud)
- ✨ Add dd_tags into djm.tags spark.application span attribute (#10004 - @pawel-big-lebowski)
AWS SDK instrumentation
- 💡 Add inject Datadog attribute config (#9943 - @ojproductions)
Core Java language instrumentation
- ✨ Add context tracking support for virtual threads (#10040 - @PerfectSlayer)
JDBC instrumentation
- 🐛 Log injection issues in JDBC only once + promote to WARN (#10214 - @vandonr)
- 💡 Add a feature flag to disable extra calls to the DB in JDBC instrumentation (#9774 - @vandonr)
Kafka instrumentation
- 🐛 Fix Kafka consumer instrumentation (#10100 - @piochelepiotr)
- 🐛 Extract trace context from Kafka producer record headers (#10020 - @PlugaruT - thanks for the contribution!)
Servlet instrumentation
- 🐛 Avoid NPE when enumerating servlet headers (#10213 - @amarziali)
Spring instrumentation
- 🐛 Make spring-webflux instrumentation compatible with 7.0.0 (#10110 - @amarziali)
All other instrumentations
- 🐛 Avoid NPE on QuartzDecorator (#10181 - @amarziali)
- 🐛 Avoid NPE when setting resource with null path (#10180 - @amarziali)
- 🐛 Fix
VerifyErrorwhen instrumentingorg.apache.synapse.transport.passthru.SourceHandler(#10154 - @mcculls) - 🐛 Ensure compatibility with jboss modules 2.2 (#10111 - @amarziali)
1.56.3
11 Dec 16:21
caf0522This commit was created on GitHub.com and signed with GitHub’s verified signature.
Components
Profiling
- ✨ Bump ddprof-java to 1.34.4 (#10153 - @jbachorik)
(see DataDog/java-profiler@v_1.34.0...v_1.34.4 for details)