Skip to content

Releases: DataDog/dd-trace-java

0.12.0

01 Aug 03:00
Compare
Choose a tag to compare

New Instrumentation (disabled by default)

  • gRPC client and server 1.5+ #388
    • System property: dd.integration.grpc.enabled=true
    • Environment variable: DD_INTEGRATION_GRPC_ENABLED=true
  • Akka HTTP client #377
    • System property: dd.integration.akka-http.enabled=true
    • Environment variable: DD_INTEGRATION_AKKA-HTTP_ENABLED=true

Improvements

  • Better compatibility with other trace clients #392
    • Support unsigned 64 bit, instead of just 63 bits (signed).
  • Allow mapping on configured service name #398
  • Restructure spans created by HttpUrlConnection instrumentation #386
    • Still disabled by default. Enable as follows:
      • System property: dd.integration.httpurlconnection.enabled=true
      • Environment variable: DD_INTEGRATION_HTTPURLCONNECTION_ENABLED=true
  • Improve Java 10 compatibility by removing cases of reflection #400 #414
  • Simplify Servlet instrumentation and improve async handling #405
  • Support OpenTracing service and peer.service tags for service naming #394
  • Allow DDTraceResolver to be disabled via config #415
    • System property: dd.trace.resolver.enabled=false
    • Environment variable: DD_TRACE_RESOLVER_ENABLED=false
  • Ignore empty value tags for dd.span.tags config #418
  • Improve netty instrumentation handling when not using the netty-all dependency #411
    • Known issue with instrumentation when ChannelPipeline interface isn't loaded before the implementing class. Fixed in 0.13.0 #426

0.11.0

20 Jul 00:47
Compare
Choose a tag to compare

Improvements

  • Make Lettuce instrumentation enabled by default #387
  • Implement additional checks framework to prevent intrumentations being applied when dependencies are missing #383
  • Add test build for Java 10 #384

Bugfixes

  • Fix JDBC instrumentation causing additional requests to certain databases when using connection pools #382, fixes #379.

0.10.0

28 Jun 21:21
Compare
Choose a tag to compare

New Instrumentation (disabled by default)

  • Netty Http Server and Client Instrumentation #352
    • System property: dd.integration.netty.enabled=true
    • Environment variable: DD_INTEGRATION_NETTY_ENABLED=true
  • Generic JSP Instrumentation and Tomcat Jasper JSP Compilation Instrumentation #354
    • System property: dd.integration.jsp.enabled=true
    • Environment variable: DD_INTEGRATION_JSP_ENABLED=true
  • Akka-Http Server Instrumentation #350
    • Instrumentation supports the Lagom Framework as well
    • System property: dd.integration.akka-http.enabled=true
    • Environment variable: DD_INTEGRATION_AKKA-HTTP_ENABLED=true
  • Lettuce 5 redis client integration #336
    • System property: dd.integration.lettuce.enabled=true
    • Environment variable: DD_INTEGRATION_LETTUCE_ENABLED=true
  • Elasticsearch Client Instrumentation #329
    • System property: dd.integration.elasticsearch.enabled=true
    • Environment variable: DD_INTEGRATION_ELASTICSEARCH_ENABLED=true
  • URLConnection Instrumentation #340
    • Includes HttpURLConnection
    • System property: dd.integration.httpurlconnection.enabled=true
    • Environment variable: DD_INTEGRATION_HTTPURLCONNECTION_ENABLED=true
  • Spymemcached Instrumentation #353
    • System property: dd.integration. spymemcached.enabled=true
    • Environment variable: DD_INTEGRATION_SPYMEMCACHED_ENABLED=true

Improvements

  • Add Correlation Identifier for use with logging MDC Frameworks #345
  • Set Servlet’s user-principal as a tag when available #371
  • Reduce rounding errors for sub-ms spans #358
  • Enhance JMS receive instrumentation #360
    • Trace calls without messages to consume
    • Instrument wait(timeout) calls
  • Enhance threadpool instrumentation to work with SlickDB #341

Bugfixes

  • Priority Sampling Implementation bug #373
  • Async Servlet stops reporting traces #357 #364
  • Cassandra Instrumentation fails to apply due to missing guava dependency #378
  • Improve shutdown handling for apps without an explicit exit statement #347

0.9.0

29 May 08:38
Compare
Choose a tag to compare

Improvements

  • Enabled the following instrumentation by default: (#332)
    • Play 2
    • Hystrix
    • Jax-RS Client

Bugfixes

  • Fixed naming issue with Unknown services. Those are now properly labeled as Databases. (#324)
  • Fixed identifying JDBC connections when an exception is thrown in the constructor. (#322)
  • Prevent casting error by not instrumenting slick's threadpool (#327)
  • Prevent nested JDBC spans (#302)

0.8.0

15 May 02:28
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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.