Skip to content

Releases: DataDog/dd-trace-java

0.8.0

15 May 02:28

Choose a tag to compare

Improvements

  • Enabled the following instrumentation by default
    • Java Executor Service (#295)
      • Caveat: you still need to manually toggle it in your custom instrumentation.
        ((TraceScope) scope).setAsyncPropagation(true);
      • Some frameworks (servlets and jms message listeners) have this flag toggled automatically (#316)
  • Dynamically rename services via configuration (#314)
    • Useful for making databases have distinct names across different services.
    • Configure mapping as follows:
      • System property: dd.service.mapping=mysql:my-service-db,cassandra:my-service-cassandra
      • Environment variable: DD_SERVICE_MAPPING=mysql:my-service-db,cassandra:my-service-cassandra
  • Automatically set service name based on servlet context (war file name) if not already configured or configured, but empty. (#320)
  • Improved instrumentation for AWS client: (#299)
    • This includes a change to the resource name.
  • Automatically detect non-Datadog @Trace annotations (#311)
    • List of annotations can be replaced (or disabled with an empty list) using the following setting:
      • System property: dd.trace.annotations=com.some.Trace;io.other.Trace
      • Environment variable: DD_TRACE_ANNOTATIONS=com.some.Trace;io.other.Trace
  • Configure additional methods to be traced without code change: (#311)
    • System property: dd.trace.methods=package.ClassName[method1,method2,...];AnonymousClass$1[call]
    • Environment variable: DD_TRACE_METHODS=package.ClassName[method1,method2];AnonymousClass$1[call]
  • Automatically set a configured header value as a span tag (#317)
    • System property: dd.trace.header.tags=CASE-insensitive-Header:my-tag-name,User-ID:userId
    • Environment variable: DD_TRACE_HEADER_TAGS=CASE-insensitive-Header:my-tag-name,User-ID:userId
  • Improve naming for @Trace generated spans on methods inside anonymous classes: now includes more class name. (#303)
  • Upgraded to Byte Buddy 1.8.8 (#293)
  • Remove guava dependency for dd-trace-ot (#307)

New Instrumentation (disabled by default)

  • Hystrix (#306)
    • System property: dd.integration.hystrix.enabled=true
    • Environment variable: DD_INTEGRATION_HYSTRIX_ENABLED=true

Bugfixes

  • Fixed Ratpack instrumentation -- still need to manually enable it (#301) (Thanks @jonmort!)
  • Minor Kafka instrumentation change to reduce chance of breaking (#297)
  • Prevent nested JDBC spans (#302)

0.7.0

27 Apr 20:00

Choose a tag to compare

Improvements

  • Add startTime and duration to MutableSpan interface #283
  • Improve trace count accuracy #289
  • Priority Sampling config for Javaagent users #288

New Instrumentation (disabled by default)

  • Play 2.4 - 2.6 #277 #282
    • System property: -Ddd.integration.java_concurrent.enabled=true -Ddd.integration.play.enabled=true
    • Environment variable: DD_INTEGRATION_JAVA_CONCURRENT_ENABLED=true DD_INTEGRATION_PLAY_ENABLED=true
  • Support for Ratpack #276
    • Shoutout to @jonmort for the third-party contribution!
    • System property: -Ddd.integration.ratpack.enabled=true
    • Environment variable: DD_INTEGRATION_RATPACK_ENABLED=true
  • Support for Spark Java #254
    • Shoutout to @JorgenG for the third-party contribution!
    • System property: -Ddd.integration.sparkjava.enabled=true -Ddd.integration.jetty.enabled=true
    • Environment variable: DD_INTEGRATION_SPARKJAVA_ENABLED=true DD_INTEGRATION_JETTY_ENABLED=true

Bugfixes

  • Fix NoClassDefFoundError in jaxrs instrumentation #294
  • Decrease log level for hot paths #291
  • Correct units for start timestamp parameter name #286
  • Instrument IBM-DB2 #281
  • Fixed missing httpclient traces #296

For more details, check the full changeset and the release milestone.

0.6.0

30 Mar 05:09

Choose a tag to compare

Improvements

  • Enabled the following instrumentation by default (#274)
    • JAX-RS annotation based resource naming
    • Jedis
    • Kafka client
  • Upgraded to Byte Buddy 1.8.1 (#271)

New Instrumentation (disabled by default)

  • JAX-RS Clients (#265)
    • System property: dd.integration.jax-rs.enabled=true
    • Environment variable: DD_INTEGRATION_JAX_RS_ENABLED=true
  • Akka async actor propagation (#264)
    • System Property: dd.integration.java_concurrent.enabled=true
    • Environment variable: DD_INTEGRATION_JAVA_CONCURRENT_ENABLED=true

Bugfixes

  • Fix instrumentation not loading for servlet 2 in some environments (#270)
  • Instrumentation for Kafka Consumers weren't loading correctly in some environments (#275)
  • Instrumenting old (pre Java 1.5) class files no longer fails (#266)
  • Dectect Tibco temporary queue names properly (#268)

0.5.0

13 Mar 21:36

Choose a tag to compare

Improvements

  • Configure tags to add to every span #245
  • New TraceInterceptor API to modify and examine traces before sending to trace-agent #253

New Instrumentation (disabled by default)
(Will be default enabled in a future release. For this release, enable with the below config)

  • scala async propagation for Promises and Futures #255
    • System Property: dd.integration.java_concurrent.enabled=true
    • Environment variable: DD_INTEGRATION_JAVA_CONCURRENT_ENABLED=true

Bugfixes

  • Set max stack size correctly for error trapping #256
  • Fix NPE edge-case in httpclient #258
  • Mark all spans with an http status code of 5xx as an error #261
  • Check up the classloader hierarchy to locate resources #259

For more details, check the full changeset and the release milestone.

0.4.1

02 Mar 21:10

Choose a tag to compare

Bugfixes

  • [aws] Fix ClassNotFoundException when parsing aws headers (#244, #247)

For more details, check the full changeset and the release milestone.

0.4.0

27 Feb 20:35

Choose a tag to compare

Improvements

  • Update javaagent bootstrap process to support enterprise application servers (#228)

New Instrumentation (disabled by default)
(Will be default enabled in a future release. For this release, enable with the below config)

  • Jedis redis client (#212)
    • Big shoutout to from @gihad from @uken for the first community contribution!
    • System Property: dd.integration.jedis.enabled=true
    • Environment variable: DD_INTEGRATION_JEDIS_ENABLED=true

Bugfixes

  • Update DDApi connection with Datadog Agent v4 endpoint (#240)
  • Use nanotime for additional clock resolution (#239)

For more details, check the full changeset and the release milestone.

0.3.3

15 Feb 01:41

Choose a tag to compare

Improvements

  • Integrations can now be disabled individually (#213)
    • Set the system property dd.integrations.enabled=false or environment variable DD_INTEGRATIONS_ENABLED=false to disable all instrumentation by default.
    • Individual integrations can be enabled by name even if all are disabled by default:
      • System property: dd.integration.{integration-name}.enabled=true
      • Environment variable: DD_INTEGRATION_{INTEGRATION_NAME}_ENABLED=true
    • To disable a specific integration:
      • System property: dd.integration.{integration-name}.enabled=false
      • Environment variable: DD_INTEGRATION_{INTEGRATION_NAME}_ENABLED=false
  • Spring Web exceptions that are handled via an error handler are now captured as errors on the span. (#227)
  • Better URL based resource naming to reduce high cardinality issues (#221, #224)
  • Improved AWS integration
    • Additional details captured for AWS Requests (#220)
    • Instrumentation now applies on the client constructor, not just the builder (#214)

New Instrumentation (disabled by default)
(Will be default enabled in a future release. For this release, enable with the below config.)

  • JAX-RS annotations for resource naming (#230)
    • System property: dd.integration.jax-rs.enabled=true
    • Environment variable: DD_INTEGRATION_JAX_RS_ENABLED=true
  • Kafka client and Kafka streams (#209)
    • System property: dd.integration.kafka.enabled=true
    • Environment variable: DD_INTEGRATION_KAFKA_ENABLED=true

Bugfixes

  • Fix instrumentation for servlet 2 (#219)

For more details, see the release milestone.

0.3.2

05 Feb 19:15

Choose a tag to compare

Bugfixes

  • Java Client no longer initializes the global java.util.logging.Logger: #210

0.3.0

01 Feb 17:45

Choose a tag to compare

General Availability
As of this release, Datadog Java APM is now generally available to the public.

Improvements

  • Display trace service type in UI: #207
    • This feature requires the 5.21.1 trace-agent

Bugfixes

  • Prevent breaking modification of signed aws client calls: #206
  • Use thread safe map for jdbc connection storage: #203

0.3.0.RC2

24 Jan 17:53

Choose a tag to compare

0.3.0.RC2 Pre-release
Pre-release

Priority Sampling
Priority sampling is a new feature for sampling traces. #192

Bugfixes

  • Log exceptions to datadog debug log instead of stderr #196
  • Defend against NPEs in Spring Instrumentation #195

Internal Changes

  • Test Java 7 and 9 in CI #201