Skip to content

Releases: DataDog/dd-trace-java

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

  • πŸ› 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

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

1.56.0

20 Nov 14:13
v1.56.0
c05874d

Choose a tag to compare

Known Bugs

Note

If you are experiencing issues with NegativeArraySizeException or JVM crashes, please update to the latest version or disable the CodeOrigin feature using the DD_CODE_ORIGIN_FOR_SPANS_ENABLED=false environment variable or the -Ddd.code.origin.for.spans.enabled=false Java properties.

If you are using the liveheap profiler functionality you may experience occasional JVM crashes. In case you see the crashes happening disable the profiling library via DD_PROFILING_DDPROF_ENABLED=false environment variable or the -Ddd.profiling.ddprof.enabled=false. The fix fix is available in release 1.56.3.

Components

Application Security Management (WAF)

Build & Tooling

Configuration

Continuous Integration Visibility

Crash tracking

Data Streams Monitoring

Database Monitoring

  • ✨⚑ Migrate JDBC instrumentation to singleSpanBuilder (#9927 - @dougqh)
  • πŸ› Fix JDBC's SQLCommenter not taking into account semicolons (#9915 - @na-ji)

Dynamic Instrumentation

ML Observability (LLMObs)

Metrics

  • πŸ› Fix npe on ConflatingMetricsAggregator when the resource is null (#9909 - @amarziali)

OpenFeature

Platform

  • ✨ Add NativeLoader listener support (#9903 - @dougqh)

Profiling

  • ✨ Provide a safe default stackwalker for non-hotspot JVMs (#9930 - @jbachorik)
  • πŸ› Apply critical patch for ddprof dependency. (#9920 - @jbachorik)

Tracer core

  • ✨⚑ Fix oversight with one overload of startSpan not using singleSpanBuilder (#9995 - @dougqh)
  • ✨⚑ Use ClassFile parser when pre-loading class hierarchies (#9969 - @mcculls)
  • ✨ Bump dd-instrument-java to v0.0.3 (#9967 - @mcculls)
  • ✨ Add process tags to agent statsd client (#9904 - @amarziali)
  • ✨⚑ Add feature-flag to enable instrumentation-based class injection (#9901 - @mcculls)
  • ✨⚑ Add feature-flag to enable optimized class parsing (#9894 - @mcculls)

Instrumentations

Apache Spark instrumentation

Couchbase

  • ✨⚑ Reuse SpanBuilder in Couchbase Client (#9936 - @dougqh)

Kafka instrumentation

OpenTelemetry instrumentation

  • πŸ’‘ Support propagating OTel API created baggage via outgoing W3C headers (#9987 - @mcculls)
  • πŸ’‘ Support using the OpenTelemetry API to interact with automatic W3C baggage (#9982 - @mcculls)
  • ✨ In opentelemetry's WithSpan integration, reuse SpanBuilders (#9933 - @dougqh)

Serverless

1.55.0

04 Nov 16:08
v1.55.0
364bb8b

Choose a tag to compare

Known Bugs

Note

If you are using the liveheap profiler functionality you may experience occasional JVM crashes. In case you see the crashes happening disable the profiling library via DD_PROFILING_DDPROF_ENABLED=false environment variable or the -Ddd.profiling.ddprof.enabled=false. The fix fix is available in release 1.56.3.

Components

Application Security Management (IAST)

Application Security Management (WAF)

Build & Tooling

  • 🧹 Make akka-http-10.6 module optional to simplify local build. See BUILDING.md for akka token configuration. (#9767 - @AlexeyKuznetsov-DD)

Continuous Integration Visibility

Crash tracking

Data Streams Monitoring

  • ✨ Add Data Streams Monitoring support for IBM MQ in JMS/Jakarta Messaging (#9768 - @roisinlh)

Database Monitoring

  • ✨ Add option to JDBC instrumentation to always append DBM comment (#9798 - @na-ji)

Dynamic Instrumentation

  • πŸ› Fix logging when uninstrumenting cannot happen (#9851 - @jpbempel)
  • ✨ Extract line information as injectible lines (#9850 - @jpbempel)
  • ⚑🧹 Optimize method probe without condition (#9834 - @jpbempel)
  • πŸ› Fix trigger probe and tests (#9828 - @jpbempel)
  • ⚑🧹 Optimize line probe without condition (#9787 - @jpbempel)
  • πŸ› Fix possible IndexOutOfBoundsException in ExceptionReplay (#9771 - @jpbempel)
  • ✨ Add support for Guava and FastUtil (#9727 - @jpbempel)
  • ✨ Add Capture Expressions (#9694 - @jpbempel)
  • πŸ› Truncate large exception message when serialized (#9686 - @jpbempel)
  • πŸ› Throttle warning log when resolving probe (#9675 - @jpbempel)

JMX fetch

ML Observability (LLMObs)

Metrics

Profiling

  • πŸ› Bump ddprof to 1.34.0 (#9865 - @zhengyu123)
  • πŸ› Keep generic signature aligned when adding TaskWrapper interface (#9794 - @mcculls)
  • πŸ› Protect exception advices from NoClassDefFound (#9769 - @amarziali)
  • ✨ Use 'vm' stackwalker as default for java profiler (#9722 - @jbachorik)

Tracer core

  • 🧹 Simplify InstanceStore API (#9861 - @mcculls)
  • ✨ πŸͺž 9757 - Avoid pending queue wedge if tracer flare is generated multiple times (#9840 - @deejgregor - thanks for the contribution!)
  • ✨ Add span builder reuse variable (#9839 - @dougqh)
  • ✨ Disambiguate normalizeTag from normalizeTagValue (#9816 - @amarziali)
  • πŸ› Protect intercepted null traces from NPE (#9797 - @amarziali)
  • ✨ Safely set context classloader on final blocks (#9795 - @amarziali)
  • ✨⚑ Add quick 'datadog.' prefix check before applying delegation fix (#9793 - @mcculls)
  • ✨ Include dd-instrument-java (#9792 - @mcculls)
  • πŸ› Avoid UnsatisfiedLinkError when constructing statsd client (#9789 - @amarziali)
  • ✨ Use common method to determine telemetry intake url (#9786 - @amarziali)
  • ✨ Exclude safeParse errors from telemetry (#9770 - @amarziali)
  • ✨ Simplify InstanceStore implementation to use simple, synchronized HashMaps (#9739 - @mcculls)
  • ✨ Add support for service discovery using JNA (#9705 - @raphaelgavache)
  • 🧹 Replace jctools NonBlockingHashMap with ConcurrentHashMap (#9700 - @amarziali)
  • ✨ Upgrade byte-buddy to 1.17.7 (#9692 - @mcculls)
  • ✨ Upgrade asm to 9.9 (#9684 - @amarziali)
  • ✨⚑ Create shared DD intake HTTP client (#9660 - @nikita-tkachenko-datadog)
  • ✨ Introduce NativeLoader (#9625 - @dougqh)
  • ✨ Migrate querying of environment variables to ConfigHelper (#9620 - @mhlidd)
  • ✨⚑ Reuse SpanBuilder within a Thread (#9537 - @dougqh)

Tracer public API

  • ✨ Migrate querying of environment variables to ConfigHelper (#9620 - @mhlidd)
  • βœ¨πŸ“– Implement Config Inversion with default strictness of Warning (#9539 - @mhlidd)

Instrumentations

Apache Spark instrumentation

  • πŸ› Fix muzzle mismatch causing Spark jobs on Databricks 17.3 to not be instrumented (#9872 - @aboitreaud)
  • ✨ Extract SparkPlan product and append to trace (#9783 - @charlesmyu)

JDBC instrumentation

  • πŸ› Avoid NPE while accessing JDBC metadata URL (#9815 - @amarziali)
  • ✨ Add option to JDBC instrumentation to always append DBM comment (#9798 - @na-ji)
  • πŸ› Fix generic url parsing in JDBC instrumentation (#9777 - @vandonr)

OpenTelemetry instrumentation

  • πŸ› Fix OpenTelemetry span events (#9864 - @ValentinZakharov)
  • πŸ› Normalize behavior of OTel spans created from custom instrumentation and trace annotations (#9759 - @mhlidd)
  • ✨ Avoid allocating a tracing context when not fully extracted (#9693 - @amarziali)

All other instrumentations

1.54.0

06 Oct 15:24
v1.54.0
20dac8a

Choose a tag to compare

Components

Application Security Management (WAF)

Configuration at Runtime

  • ✨ Add support for org level APM_TRACING configs (#9360 - @shatzi)

Continuous Integration Visibility

Crash tracking

  • πŸ› Properly handle user provided crash/oome script paths (#9496 - @jbachorik)

Dynamic Instrumentation

  • ✨ Fix Exception Probes to not emit any probe status (#9669 - @jpbempel)
  • ✨ Stream the SymDB serialization and compression (#9642 - @jpbempel)
  • ✨ Add CompletableFuture in WellKnownClasses (#9622 - @jpbempel)
  • πŸ› Fix symbol extraction for interface static method (#9597 - @jpbempel)
  • πŸ› Allow pre-Java 6 classes to be transformed in the debugger (#9591 - @deejgregor - thanks for the contribution!)
  • πŸ› Disable exit spans (#9581 - @jpbempel)
  • ✨ Prevent using v1/input endpoint for snapshots (#9573 - @jpbempel)
  • πŸ› Fix error logged for Bridge methods (#9504 - @jpbempel)
  • ✨ Send only snapshots to Debugger Track (#9501 - @jpbempel)
  • ✨ Add support debugger/v2/input endpoint (#9406 - @shatzi)

GraalVM native-image

Library Injection

ML Observability (LLMObs)

  • πŸ› Fix LLM Observability Data Submission (#9476 - @sabrenner)
  • ✨ Default LLM Observability ML Application to Service Name (#9415 - @sabrenner)

Metrics

  • ✨⚑ Defer metrics aggregator classloading to save startup time (#9590 - @amarziali)
  • πŸ› Lazily obtain feature discovery when starting client metrics (#9548 - @amarziali)
  • ✨ Exclude long running partial versions from stats (#9495 - @amarziali)
  • πŸ› Avoid direct casting of base service tag to string (#9489 - @amarziali)
  • πŸ’‘πŸ§ͺ Activate client stats by default for java 17 services (#9463 - @amarziali)

Platform components

Profiling

Realtime User Monitoring

Telemetry

  • πŸ› Error Logs Remediation 2 (#9467 - @ygree)
  • ✨ ConfigProvider iterates over all sources and reports all non-null values to telemetry (#9404 - @mtoffl01)

Testing

Tracer core

  • ✨⚑ Send process tags once per payload (#9657 - @amarziali)
  • 🧹 Remove tracing requirement to be enabled to generate a flare (#9579 - @cecile75)
  • ✨ Replace FixedSizeStripedLongAdder with LongAdder (#9571 - @amarziali)
  • ✨ Disable byte-buddy's Nexus mechanism (#9569 - @mcculls)
  • πŸ› Ensure health metrics are closed when the tracer is closed (#9511 - @amarziali)
  • πŸ’‘ Enable process tags collection by default (#9510 - @raphaelgavache)
  • πŸ› Ensure info discovery state change is atomic (#9497 - @amarziali)
  • ✨⚑ Fixing oversight of missing synchronized on long version of recalibrate (#9480 - @dougqh)
  • 🧹 Improving TagMap coverage (#9470 - @dougqh)
  • πŸ› Fix NPE for keys with empty value in Stable Configuration (#9461 - @BaptisteFoy)
  • πŸ› Update datadog.trace.agent.tooling.bytebuddy.outline.TypeOutline to work with ByteBuddy 1.17.6 (#9457 - @nikita-tkachenko-datadog)
  • ✨⚑ Add UTF8 caching for v0.4 (#9434 - @dougqh)

Tracer public API

Instrumentations

Apache Spark instrumentation

Core Java language instrumentation

JDBC instrumentation

  • ✨ Add a span when waiting for an available database connection from a pool (#9251 #9636 - @deejgregor - thanks for the contribution!)

Kotlin instrumentation

  • πŸ› Improve thread-safety of ScopeContext.restore when swapping Kotlin coroutine contexts (#9491 - @mcculls)

All other instrumentations

1.53.0

04 Sep 10:10
v1.53.0
526075f

Choose a tag to compare

Components

Application Security Management (WAF)

  • πŸ› Fix NullPointerException log in AppSec (#9355 - @jandro996)
  • ✨ Add Forwarded header as a source to client IP resolution (#9310 - @jandro996)

Build & Tooling

Continuous Integration Visibility

Data Streams Monitoring

  • ✨ Create container hash tags propagation (#9282 - @ygree)

Database Monitoring

  • πŸ› Prevent crash in SQL Server's JDBC when tracing execute methods with generated keys (#9321 - @na-ji)
  • ✨ Create container hash tags propagation (#9282 - @ygree)

GraalVM native-image

  • πŸ› Update GraalVM config to reflect TempLocationManager's new package (#9337 - @luneo7 - thanks for the contribution!)

Metrics

Profiling

  • ✨ Create a profile flare reporter (requires tracing or CI vis to be enabled) (#9433 - @MattAlp)
  • πŸ› Properly fall-back on UDS profiling URL (#9401 - @jbachorik)
  • πŸ› Properly handle trace agent IPv6 URL in profiling (#9334 - @jbachorik)

Realtime User Monitoring

  • πŸ› Avoid multiple injections on dispatch on jboss (#9392 - @amarziali)
  • ✨ Support async servlet for RUM injection (#9333 - @amarziali)
  • πŸ› Improve RUM injection matching and avoid truncating responses (#9323 - @amarziali)
  • πŸ’‘ Add telemetry for the RUM injector (#9267 - @sarahchen6)
  • ✨ Make rum injector stream/writer more resilient to errors (#9184 - @amarziali)

Telemetry

  • πŸ› Remediate error logs (#9459 - @ygree)
  • ✨ Report config_id for Hands Off Config files (#9299 - @mtoffl01)
  • ✨ Adding Config Inversion Telemetry component (#9244 - @mhlidd)

Trace context propagation

Tracer core

  • πŸ’‘πŸ§ͺ Enable process level tags for java 21 applications (#9458 - @amarziali)
  • ✨ Move base and peer service adder before span is published (#9408 - @amarziali)
  • ✨ Add ErrorPriorities level for manual instrumentation (#9387 - @cecile75)
  • ✨ Throw InvalidBooleanValueException in ConfigConverter.booleanValueOf (#9370 - @mtoffl01)
  • πŸ› Avoid NPE on featureDiscovery creation (#9353 - @amarziali)
  • ✨ Stable Config improvements (#9259 - @mtoffl01)

Instrumentations

gRPC instrumentation

  • πŸ› Changing GRPC instrumentation codes from status.code to grpc.status.code (#9367 - @mhlidd)

JDBC instrumentation

  • πŸ› Prevent crash in SQL Server's JDBC when tracing execute methods with generated keys (#9321 - @na-ji)

Kotlin instrumentation

  • πŸ› Take defensive copy of original scope stack when restoring on different thread (#9403 - @mcculls)

OpenTelemetry instrumentation

  • πŸ› Fix using SpanAttribute annotation on multiple parameters (#9412 - @cecile75)

1.52.1

14 Aug 15:27
6b6db17

Choose a tag to compare

Components

Application Security Management (WAF)

Continuous Integration Visibility

GraalVM native-image

  • πŸ› Update GraalVM config to reflect TempLocationManager's new package (#9338 - @luneo7 - thanks for the contribution!)

Profiling

  • πŸ› Properly handle trace agent IPv6 URL in profiling (#9339 - @jbachorik)

Realtime User Monitoring

  • ✨ Support async servlet for RUM injection (#9343 - @amarziali)
  • πŸ› Improve RUM injection matching and avoid truncating responses (#9342 - @amarziali)
  • ✨ Make rum injector stream/writer more resilient to errors (#9340 - @amarziali)

Tracer core

1.52.0

04 Aug 16:37
v1.52.0
d7684b9

Choose a tag to compare

Components

Application Security Management (WAF)

Build & Tooling

  • βœ¨πŸ“– Automatically register crashtracking via native extensions (#8851 - @MattAlp)

Configuration at Runtime

Continuous Integration Visibility

Crash tracking

  • βœ¨πŸ“– Automatically register crashtracking via native extensions (#8851 - @MattAlp)

Data Streams Monitoring

  • ✨ Reduce DSM CPU overheard (#9151 - @kr-igor)
  • ✨⚑ DSM optimizations for high throughput scenarios (#9137 - @kr-igor)

Database Monitoring

  • πŸ› Fix duplicate trace injection for SQL Server and Oracle DBM full propagation mode (#9224 - @lu-zhengda)

Dynamic Instrumentation

ML Observability (LLMObs)

Metrics

  • ✨ Change primary client stats configuration key (#9196 - @amarziali)
  • ✨ Calculate client stats also if the span kind is eligible (#9157 - @amarziali)
  • ✨ Backpropagate peer tags (#9144 - @bric3)
  • πŸ› Make client stats reliable in case of downgrade (#9136 - @amarziali)

Platform components

Profiling

Realtime User Monitoring

  • ✨ Wrap servlet original PrintWriter on rum injector (#9146 - @amarziali)

Telemetry

Tracer core

  • ✨⚑ Reduce span construction overhead by switching to optimized TagMap (#8589 - @dougqh)
  • πŸ› Match Hands Off Config selectors on process_arguments value (#9201 - @paullegranddc)
  • ✨ Move JSON generation to sender thread to improve startup time. (#9197 - @AlexeyKuznetsov-DD)
  • ✨ Improve agent to avoid loading global config on main thread (#9190 - @PerfectSlayer)
  • ✨ Add injection metadata fields to telemetry forwarder (#9185 - @sydney-tung)
  • πŸ› Avoid race conditions on feature discovery during Writer creation (#9173 - @daniel-mohedano)
  • ✨ Surface potential root cause when agent initialization errors (#9170 - @AlexeyKuznetsov-DD)
  • πŸ’‘ Support adding W3C baggage as span tags (#9169 - @rachelyangdog)
  • ✨⚑ Align our default classloader excludes with OTel (#9161 - @mcculls)
  • ✨ Backpropagate container tags hash coming from the info endpoint (#9156 - @amarziali)
  • πŸ› Avoid race conditions and multiple agent discovery feature states (#9135 - @amarziali)

Instrumentations

AWS SDK instrumentation

gRPC instrumentation

  • πŸ› Add check to prevent injection of repeated GRPC headers (#9246 - @mhlidd)

JDBC instrumentation

  • πŸ› Fix duplicate trace injection for SQL Server and Oracle DBM full propagation mode (#9224 - @lu-zhengda)

Play Framework instrumentation