Skip to content

Releases: DataDog/dd-trace-java

1.60.1

04 Mar 17:58
v1.60.1
d84b442

Choose a tag to compare

Instrumentations

OpenTelemetry instrumentation

1.60.0

03 Mar 10:06
v1.60.0
0f5d84f

Choose a tag to compare

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

  • ✨ Add DD_OTLP_METRICS_COMPRESSION setting and map OTel env-vars to it (#10680 - @mcculls)

Continuous Integration Visibility

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

  • 🐛 Write base hash to current span when injected in DBM comment (#10450 - @vandonr)

Dynamic Instrumentation

Profiling

Trace context propagation

  • ✨⚡ Changing traceSource to volatile rather than an AtomicInteger (#10614 - @dougqh)

Tracer core

Tracer internal logging

Instrumentations

Apache Spark instrumentation

AWS Lambda instrumentation

Core Java language instrumentation

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.limit system property (#10541 - @mcculls)
  • 💡 Implement OpenTelemetry meter storage and aggregations (#10534 - @mcculls)

Play Framework instrumentation

  • 🐛 Combine play spans with surrounding framework context before attaching them (#10554 - @mcculls)

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

1.59.0

02 Feb 14:49
v1.59.0
7e1bb03

Choose a tag to compare

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)

Continuous Integration Visibility

Crash Tracking

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

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

OpenFeature

Profiling

Trace context propagation

  • 🐛⚠️ Always record force keep decisions for future distributed trace propagation (#10308 - @mcculls)

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

  • 🐛 Have Vertx 4.0 prioritize path and fallback to name (#10382 - @mhlidd)

GraphQL instrumentation

  • 🐛 Add Custom Exception Handler to Unwrap CompletionException for GraphQL Instrumentations (#10389 - @mhlidd)

Kafka instrumentation

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
v1.58.2
0612221

Choose a tag to compare

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
v1.58.1
55d9235

Choose a tag to compare

Components

Continuous Integration Visibility

Instrumentations

All other instrumentations

1.58.0

06 Jan 10:41
v1.58.0
bd3f6f5

Choose a tag to compare

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)

Data Streams Monitoring

Database Monitoring

  • ✨ Add support for DBM comment injection with MongoDB (#9589 - @Yoone)

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

Instrumentations

Apache Spark instrumentation

Couchbase instrumentation

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

Spring instrumentation

All other instrumentations

1.57.0

18 Dec 10:37
v1.57.0
7f969ea

Choose a tag to compare

Components

Application Security Management (IAST)

  • 🐛 Fix IllegalFormatConversionException StringModuleImpl#onStringFormat (#9907 - @jandro996)

Application Security Management (WAF)

Build & Tooling

Configuration

  • 🐛 Using stable config when a security manager is enabled should not prevent tracer startup (#10006 - @amarziali)

Continuous Integration Visibility

Crash Tracking

Data Streams Monitoring

Dynamic Instrumentation

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

Profiling

Realtime User Monitoring

Telemetry

Trace context propagation

Tracer core

  • ✨ Don't send IO failures to telemetry logs (#10210 - @amarziali)
  • 🐛 Avoid NPE on BaseDecorator (#10209 - @amarziali)
  • ✨⚡ Support aot_training mode 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 ClassLoaderIndex to index class-loader related information (#9980 - @mcculls)
  • ⚡🧹 Use ClassNameFilter to track uninteresting classes (#9976 - @mcculls)
  • ✨⚡ Reduce PendingTrace Lock Contention (#9932 - @dougqh)
  • ✨ Remove dependency on memfd_create for service discovery (#9913 - @raphaelgavache)

Instrumentations

Apache Spark instrumentation

AWS SDK instrumentation

Core Java language instrumentation

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

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 VerifyError when instrumenting org.apache.synapse.transport.passthru.SourceHandler (#10154 - @mcculls)
  • 🐛 Ensure compatibility with jboss modules 2.2 (#10111 - @amarziali)

1.56.3

11 Dec 16:21
v1.56.3
caf0522

Choose a tag to compare

Components

Profiling

Instrumentations

JDBC instrumentation

  • 💡 Add a feature flag to disable extra calls to the DB in JDBC instrumentation (#10161 - @vandonr)

1.56.2

08 Dec 21:15
v1.56.2
cf52dcd

Choose a tag to compare

Components

Data Streams Monitoring

Instrumentations

Kafka instrumentation

1.56.1

25 Nov 13:26
v1.56.1
b8849a9

Choose a tag to compare

Components

Dynamic Instrumentation