Releases: DataDog/dd-trace-java
Releases · DataDog/dd-trace-java
0.3.3
Improvements
- Integrations can now be disabled individually (#213)
- Set the system property
dd.integrations.enabled=false
or environment variableDD_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
- 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.1
trace-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
0.3.0-RC1
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 for0.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 yourdd-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 thejavaagent
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
toimport datadog.trace.api.Trace
- If you're using the OpenTracing bindings, you'll need to update how the
DDTracer
is created. Instead of usingDDTracerFactory
, you should call aDDTracer
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
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
Internal Changes
0.2.11
0.2.10
0.2.9
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