dd-trace-java is Datadog's open-source APM client library for Java, and it is aimed at Java teams that need distributed tracing and continuous profiling from a single JVM agent rather than from hand-written instrumentation in every service.
What it is
dd-trace-java is the APM client Java library maintained by Datadog in the DataDog/dd-trace-java repository. The project is written in Java and released under the Apache-2.0 licence, and it carries 737 stars and 360 forks. The README describes it plainly as Datadog's APM client Java library, and it contains APIs for automatically or manually tracing and profiling Java applications. Its topic list places it squarely in the Java and JVM observability ecosystem: java, javaagent, bytebuddy, apm, distributed-trace, distributed-tracing, tracing, profiling, and datadoghq are all attached to the repository.
The concrete problem it addresses is the cost of instrumenting a Java application by hand. Rather than requiring an engineering team to add tracing calls throughout a codebase, dd-trace-java supplies automatic instrumentation, with a custom instrumentation API available for the parts that need manual coverage. Those two capabilities in turn feed Distributed Tracing, Continuous Profiling, Error Tracking, Continuous Integration Visibility, Deployment Tracking, and Code Hotspots, so the same client serves both the tracing and the profiling needs of a Java service instead of leaving them to separate tools.
Key capabilities
- Automatic instrumentation of Java applications, delivered as a JVM agent (
javaagent topic) and built on ByteBuddy (bytebuddy topic).
- Manual tracing through the custom instrumentation API documented at the Datadog custom instrumentation reference.
- Continuous Profiling of Java applications, described in the README as one of the features the library powers.
- Distributed Tracing across services, listed as the headline feature set.
- Error Tracking, which the README lists among the powered features.
- Code Hotspots, which connect traces and profiles together.
- Continuous Integration Visibility and Deployment Tracking, both named in the README's feature list.
Who uses it and how
- Java service teams that run applications with the Datadog APM agent to obtain distributed traces without editing application code.
- Platform and infrastructure groups that use Continuous Integration Visibility to observe build pipelines alongside runtime telemetry.
- Teams that track releases through Deployment Tracking to correlate deploys with changes in service behaviour.
- Performance-focused engineers who read Code Hotspots and the Continuous Profiling output together to find hot code paths.
- Contributors and vendors who add new library instrumentation, following
docs/add_new_instrumentation.md, with setup guidance in BUILDING.md and testing guidance in docs/how_to_test.md.
Getting started
The README does not embed install instructions; it points to the setup documentation at https://docs.datadoghq.com/tracing/languages/java. From there it separates the configuration reference (https://docs.datadoghq.com/tracing/trace_collection/library_config/java) and the custom instrumentation API reference (https://docs.datadoghq.com/tracing/trace_collection/custom_instrumentation/java/).
How it compares
The facts provided name no competing or paid products, so dd-trace-java stands alone in this registry as the Datadog Java APM client. It is not positioned against any alternative tool in the material available here.
When to use it — and when not to
Adopt it when the application is Java and the telemetry is headed to Datadog, since the library is explicitly that vendor's APM client and its reference documentation lives on the Datadog site rather than in the repository. The repository is a working codebase with a substantial backlog — 478 open issues — and a monthly minor release cadence documented in docs/releases.md, so teams should not expect the README itself to answer operational questions. Teams not standardised on Datadog, or those wanting instrumentation documentation held entirely inside the project, should look elsewhere.
project readme (upstream, from github) — read inline

Datadog Java APM

This repository contains dd-trace-java, Datadog's APM client Java library.
dd-trace-java contains APIs to automatically or manually trace and profile Java applications.
These features power Distributed Tracing with Automatic Instrumentation,
Continuous Profiling,
Error Tracking,
Continuous Integration Visibility,
Deployment Tracking,
Code Hotspots and more.
Getting Started
To use and configure, check out the setup documentation.
For advanced usage, check out the configuration reference and custom instrumentation API.
Confused about the terminology of APM?
Take a look at the APM Glossary.
Contributing
Before contributing to the project, please take a moment to read our brief Contribution Guidelines.
Then check our guides:
Or our reference documents:
Releases
Datadog will generally release a new minor version during the first full week of every month.
See release.md for more information.