Releases: DataDog/dd-trace-java
0.8.0
Improvements
- Enabled the following instrumentation by default
- 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
- System property:
- 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
@Traceannotations (#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
- System property:
- List of annotations can be replaced (or disabled with an empty list) using the following setting:
- 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]
- System property:
- 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
- System property:
- Improve naming for
@Tracegenerated 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
- System property:
Bugfixes
0.7.0
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
- System property:
- 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
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
- System property:
- Akka async actor propagation (#264)
- System Property:
dd.integration.java_concurrent.enabled=true - Environment variable:
DD_INTEGRATION_JAVA_CONCURRENT_ENABLED=true
- System Property:
Bugfixes
0.5.0
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
- System Property:
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
Bugfixes
For more details, check the full changeset and the release milestone.
0.4.0
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)
Bugfixes
- Update
DDApiconnection 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
Improvements
- Integrations can now be disabled individually (#213)
- Set the system property
dd.integrations.enabled=falseor environment variableDD_INTEGRATIONS_ENABLED=falseto 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
- System property:
- To disable a specific integration:
- System property:
dd.integration.{integration-name}.enabled=false - Environment variable:
DD_INTEGRATION_{INTEGRATION_NAME}_ENABLED=false
- System property:
- Set the system property
- 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
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
- System property:
- Kafka client and Kafka streams (#209)
- System property:
dd.integration.kafka.enabled=true - Environment variable:
DD_INTEGRATION_KAFKA_ENABLED=true
- System property:
Bugfixes
- Fix instrumentation for servlet 2 (#219)
For more details, see the release milestone.
0.3.2
0.3.0
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.1trace-agent
- This feature requires the
Bugfixes
0.3.0.RC2
Priority Sampling
Priority sampling is a new feature for sampling traces. #192
- The sampling rate is set per service name by the core agent.
- Additionally, a priority flag is propagated for external calls between java hosts.
- This allows sampled traces to be saved across external calls.
- Requires the Datadog Agent 5.19 or greater.
- Further reading: https://github.com/DataDog/datadog-trace-agent/wiki/Distributed-Priority-Sampling
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