dd-trace-java is an APM client library for Java that automatically and manually instruments applications to collect distributed traces and continuous profiling data.
The library solves the problem of observing Java application behavior in production by using bytecode instrumentation via ByteBuddy to automatically capture traces from common frameworks and libraries without requiring code changes. It also supports manual instrumentation through APIs for custom tracing logic. The collected trace data powers distributed tracing visualization, continuous profiling, error tracking, continuous integration visibility, deployment tracking, and code hotspot analysis within the Datadog platform.
Teams running Java applications should adopt this tool if they use Datadog for observability and want automatic instrumentation of their services with minimal configuration overhead. It suits monolithic and microservices architectures where understanding request flows across service boundaries and identifying performance bottlenecks are priorities. The library handles a broad range of integrations across popular frameworks, reducing the need for manual instrumentation in most cases, though custom instrumentation APIs are available for application-specific logic.
The project maintains a predictable release cadence with new minor versions released during the first full week of each month. Development is guided by structured contribution processes documented in building, testing, and instrumentation guides that help contributors understand how the bytecode instrumentation system works and how to add support for new libraries. The repository provides clear documentation for setting up development environments and creating new instrumentations, indicating an organized approach to managing contributions at scale.