Skip to content

Releases: DataDog/dd-trace-java

0.3.3

15 Feb 01:41
Compare
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
Compare
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
Compare
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
Compare
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

0.3.0-RC1

18 Jan 19:05
Compare
Choose a tag to compare
0.3.0-RC1 Pre-release
Pre-release

Breaking changes

  • Deprecated dd-trace.yaml config has been removed. Going forward, config must be done using environment variables or system properties (#183)
  • Artifact names have changed: (#184)
    • dd-trace -> dd-trace-ot
    • dd-trace-annotations -> dd-trace-api
  • Package names have been standardized: (#184)
    • datadog.trace
    • datadog.opentracing
  • OpenTracing bindings have been upgraded to 0.31.0. If you need support for 0.30.0, consider using the compatibility layer (#126)

Bugfixes

  • Prevent ClassNotFoundException by ensuring consistent load order of helper classes. (#187 #190 #194)

Migrate from 0.2.x to 0.3.0-RC1

  • If you're only using dd-java-agent then you only need to migrate your configuration. Reference your dd-trace.yaml file and set the appropriate environment variables or system properties according to your application server. System properties can usually be set along side the javaagent flag.
  • If you're using the @Trace annotation, you will need to:
    • Update the artifact name in your gradle or maven config
    • Replace package names from import com.datadoghq.trace.Trace to import datadog.trace.api.Trace
  • If you're using the OpenTracing bindings, you'll need to update how the DDTracer is created. Instead of using DDTracerFactory, you should call a DDTracer constructor directly. Alternatively, you could consider using TracerResolver.

For example:

Tracer tracer = DDTracerFactory.createFromConfigurationFile();
io.opentracing.util.GlobalTracer.register(tracer);

Would change to:

Tracer tracer = new DDTracer();
io.opentracing.util.GlobalTracer.register(tracer);

For assistance migrating manual instrumentation, please contact support.

0.2.12

03 Jan 17:26
Compare
Choose a tag to compare
0.2.12 Pre-release
Pre-release

Known Issues

  • This release is a bit picky about overriding default configs. This will be resolved in the next release, but for now:
    • To override host or port, you must specify the type, host, and port, otherwise it won't work and fall back to the default.
  • For systems using non-system classloaders (for example Spring Boot Executable Jars), there is a problem with some helpers that presents as a ClassNotFoundException.

Improvements

  • Configure the Java Client with system properties and environment variables (#178)
    • NOTE: Beginning with this release, YAML config is deprecated and will be removed in the next release.
    • Please migrate config using Java Client Config Documentation before updating further.
  • Enhance servlet Instrumentation
    • Include Servlet Filters in timing (#179)
    • Fix Jersey bypassing instrumentation (#175)

Internal Changes

  • Support helper classes in instrumentation modules (#174)
  • Spock Instrumentation Test Framework (#177)
  • Improve CI report gathering (#176)
  • Fix types for Intellij (#181)
  • Better support for eclipse+buildship (#173)
  • Integration benchmarks for Jetty (#180)

0.2.11

11 Dec 18:05
Compare
Choose a tag to compare
0.2.11 Pre-release
Pre-release

Improvements

  • Enhance support for SpringBoot classloaders (#168, #171)
  • Better support getting connection info for proxy connections (e.g. c3p0) (#169)
  • Reduce classloading time and add jmh benchmarks (#172, #163)

Internal Changes

  • Byteman removed from the agent (#167)
    • Apache HTTPClient migrated to ByteBuddy (#161)
    • OK Http migrated to ByteBuddy (#166)
  • Better naming for agent threadpools (#164)
  • Update gradle wrapper to latest version (#162)
  • Fix mongo module compilation for idea (#170)

0.2.10

01 Dec 19:38
Compare
Choose a tag to compare
0.2.10 Pre-release
Pre-release

Improvements

  • Support for JMS 1 (#156)
  • Support for Mongo Async Driver (>= 3.3). (#154)
  • Add documentation for error reporting. (#158)

Major Changes

  • Instrumentation migrated from byteman to bytebuddy to improve performance and stability. This is an internal change and does not affect supported instrumentation versions.

0.2.9

13 Nov 20:53
Compare
Choose a tag to compare
0.2.9 Pre-release
Pre-release

Improvements

  • Significant reduction to agent classload cost by changing the framework used for instrumentation. (#148)
  • Safer integrations by preventing errors in integrations from bubbling up. (#148)

Bugfixes

  • Handle a potential null pointer exception in cases where the SQL query isn't available. (#149)
  • Fix the mongo integration query sanitization. (#152)

Read the full changeset

0.2.8

01 Nov 22:28
Compare
Choose a tag to compare
0.2.8 Pre-release
Pre-release

Improvements

  • Apply rate limiting to connection failure log messages when trying to send data to DD Agent. ( #147 )

Bugfixes

  • Prevent a NullPointerException from the new JDBC instrumentation released in 0.2.7 caused by a null URL connection string. ( #146 )